{
  "meta": {
    "version": 1,
    "nodeCount": 10730,
    "edgeCount": 23866,
    "languages": [
      "python"
    ],
    "scopes": [
      {
        "prefix": "",
        "label": "",
        "markers": [
          "pyproject.toml"
        ]
      }
    ]
  },
  "nodes": [
    {
      "id": "scan_pr_skills.py",
      "name": "scan_pr_skills.py",
      "kind": "file",
      "path": "scan_pr_skills.py",
      "span": "L1-L272",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c8874942d93cae70489c1481d55ed54043c544811e75ca9d1dda686d731b0d28",
      "chars": 9974,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_pr_skills.py#_loc",
      "name": "_loc",
      "kind": "function",
      "path": "scan_pr_skills.py",
      "span": "L106-L112",
      "signature": "def _loc(finding) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "60b3be0d677e184e5280d0f47f16f4cef5d6b2df7efff94b6940c6a4b6e33f9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_pr_skills.py#_sev_str",
      "name": "_sev_str",
      "kind": "function",
      "path": "scan_pr_skills.py",
      "span": "L51-L55",
      "signature": "def _sev_str(obj) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "dc74380833ed42692593db1e6e3210372d4b75205222d8dc191acf1427d2c179",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_pr_skills.py#_should_block",
      "name": "_should_block",
      "kind": "function",
      "path": "scan_pr_skills.py",
      "span": "L187-L195",
      "signature": "def _should_block(report: Report, fail_on: str) -> tuple[bool, str | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f5c898f8187b8701e76605b8f81d16e1682d356b2303c0aed50a5c347ac0caa0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_pr_skills.py#format_comment",
      "name": "format_comment",
      "kind": "function",
      "path": "scan_pr_skills.py",
      "span": "L115-L184",
      "signature": "def format_comment(report: Report, scanned_dirs: list[Path]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e94d627e53709cf920b3ca8a67d3d3767840470a64b7aa20f269ffe8bfb1a63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_pr_skills.py#main",
      "name": "main",
      "kind": "function",
      "path": "scan_pr_skills.py",
      "span": "L198-L267",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c33892b0459774cdc59abf491451c09e959893c81c5627af7a748b0e875e9eae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_pr_skills.py#scan_skill_dirs",
      "name": "scan_skill_dirs",
      "kind": "function",
      "path": "scan_pr_skills.py",
      "span": "L58-L103",
      "signature": "def scan_skill_dirs(scanner, skill_dirs: list[Path]) -> Report",
      "exported": true,
      "origin": "ast",
      "body_hash": "e06864ff9e8108ce7e1451898998b915fa79f3d3a752eb0d7e6d1a1d4d580856",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py",
      "name": "scan_skills.py",
      "kind": "file",
      "path": "scan_skills.py",
      "span": "L1-L616",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fadcceb71a30bdae7b9a6a7413b8781c41bbc10bee39ec805f388689969ae5bf",
      "chars": 23315,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#_enum_value",
      "name": "_enum_value",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L216-L218",
      "signature": "def _enum_value(value) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "304c6a04c5d8e94182124563d172ae64859f63f32118517aa493e451a5277525",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#_finding_dict",
      "name": "_finding_dict",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L221-L236",
      "signature": "def _finding_dict(finding) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "3440b2bfa3bf67a88051cdfeebd084eaf985e37dca4c893472dc34f6deef946e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#_finding_from_dict",
      "name": "_finding_from_dict",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L239-L253",
      "signature": "def _finding_from_dict(data: dict) -> Finding",
      "exported": false,
      "origin": "ast",
      "body_hash": "8671aef812fc365ab6dedd47d30fa0c3e9057ccb7ea32dea9aa9373e69bf0085",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#_result_from_dict",
      "name": "_result_from_dict",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L256-L268",
      "signature": "def _result_from_dict(data: dict) -> ScanResult",
      "exported": false,
      "origin": "ast",
      "body_hash": "7e1da2c9e3b060386f1018752f1a17ac8ffa228e1e68bcdd43e2b252705c1e64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#build_scanner",
      "name": "build_scanner",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L95-L112",
      "signature": "def build_scanner() -> SkillScanner",
      "exported": true,
      "origin": "ast",
      "body_hash": "36d97c3ec3a51570d39ded63db83b8fd936092bb87d35541ad5f69078f3042b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#cache_invalidation_reason",
      "name": "cache_invalidation_reason",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L338-L370",
      "signature": "def cache_invalidation_reason(previous: dict | None, max_age_days: int) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd6d1336a201b26d7224a74312e1bd58ab112a910c0a6589c12323f5a40dff8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#content_hash",
      "name": "content_hash",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L75-L92",
      "signature": "def content_hash(skill_dir: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "85a7f34b0697e46f61f2ef95afeafbb873bae48521f78b60d67dd2307abb2ef6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#generate_json_report",
      "name": "generate_json_report",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L271-L323",
      "signature": "def generate_json_report(report, skill_meta: dict | None = None, run_meta: dict | None = None) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f4a7f416d2a6488ed5941ec9bd953bf57fd395a6dcbb259e684f8624ca06175",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#generate_report",
      "name": "generate_report",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L127-L213",
      "signature": "def generate_report(report, run_meta: dict | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "da178b9c89af32196c223c02a38468dff0517b2b504e311438a9c13ceb2de1af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#llm_model_id",
      "name": "llm_model_id",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L71-L72",
      "signature": "def llm_model_id() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b6add989d21358de2a7613ff1e20854791a0e03423dc4f442906cc70859f0e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#load_previous_report",
      "name": "load_previous_report",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L326-L335",
      "signature": "def load_previous_report(path: str | None = None) -> dict | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b8cb0c648cdfc9652e2034d0fc2c36e83b09bed0f57b29032ccbfea4f9649a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#main",
      "name": "main",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L557-L611",
      "signature": "def main(argv=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4250a0eca482645c3b47213195afe25b0d31514014a0563c06a6940d39b69476",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#parse_args",
      "name": "parse_args",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L534-L554",
      "signature": "def parse_args(argv=None) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ffdaaef307fe64610a3d5471dbb86408f2fbf4aa0f1fdc4d9267a4950325cce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#scan_with_progress",
      "name": "scan_with_progress",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L373-L531",
      "signature": "def scan_with_progress( scanner: SkillScanner, skills_dir: str, *, workers: int = DEFAULT_WORKERS, previous: dict | None = None, ) -> tuple[Report, dict, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bea1201c3328b967187672e1ec64ae31472a0cfefd3adc31a344e499de7b8a41",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#scan_with_progress.scan_one",
      "name": "scan_one",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L453-L462",
      "signature": "def scan_one(skill_dir: Path) -> tuple[Path, ScanResult | None, str | None, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0b20a1e969f88ab234abd5d14378170b0e56dfd6e2304e59e6e5483d6b26f33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#scan_with_progress.worker_scanner",
      "name": "worker_scanner",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L448-L451",
      "signature": "def worker_scanner() -> SkillScanner",
      "exported": true,
      "origin": "ast",
      "body_hash": "e320c24963658dadb09922917834888a1095c0cffb10480750253ce40901b83e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#scanner_version",
      "name": "scanner_version",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L64-L68",
      "signature": "def scanner_version() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a057623d2b43b2c7ff1fbeb1f6e099442ea063f451a1bf07655dafcddfca279e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scan_skills.py#severity_badge",
      "name": "severity_badge",
      "kind": "function",
      "path": "scan_skills.py",
      "span": "L115-L124",
      "signature": "def severity_badge(sev: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "44def3662e974b8efe5fd6508cbde1a6ae7026197ba84bc70a331c679a9678f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py",
      "name": "generate_skill_image.py",
      "kind": "file",
      "path": "scripts/generate_skill_image.py",
      "span": "L1-L870",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "281a6f7de2f364076fc9b96cbbbfaf3d79966aecb1e0222f024e4fac5b6966c6",
      "chars": 34679,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#all_skill_dirs",
      "name": "all_skill_dirs",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L516-L520",
      "signature": "def all_skill_dirs() -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d019e892965ad3ae182360446a87b401247a631ee099429fbb0bf4e7c21d668",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L600-L728",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb58c225fee0bb28a2aa2371a05f9a5aba0a75b175c6d9da5df80b3a33e6017f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#build_payload",
      "name": "build_payload",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L755-L774",
      "signature": "def build_payload(prompt: str, args: argparse.Namespace) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ec0231d1f0125efc1469b989f7ee73b51534ea9f1ceeb2d5bd9edd787ce3f93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#chat_completion",
      "name": "chat_completion",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L316-L344",
      "signature": "def chat_completion( api_key: str, model: str, system: str, user: str, timeout: float ) -> tuple[str, float | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab0557bbbf280556339055cf815ba977bbc525cce9f088a5adf3d92fbd386bb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#collect_skill_text",
      "name": "collect_skill_text",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L259-L313",
      "signature": "def collect_skill_text(skill_dir: Path, max_chars: int) -> tuple[str, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "320e8370e50124a021223225fccb5cf0ec7965b08d8d265b05d13fdad3f947f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#default_output",
      "name": "default_output",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L731-L735",
      "signature": "def default_output(skill_dir: Path | None) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed66fbfd75a6e791ef283ebdae9af9920ab4c241578ce16f2fac70f6061180ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#distil_diagram_prompt",
      "name": "distil_diagram_prompt",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L347-L352",
      "signature": "def distil_diagram_prompt( skill_dir: Path, document: str, api_key: str, model: str, timeout: float ) -> tuple[str, float | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "63df17c5c56ee0139518547bfeac9ff8f3a9a185880da586e87df0a5d25d347d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#encode_reference",
      "name": "encode_reference",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L355-L371",
      "signature": "def encode_reference(source: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e79c67a87c812a6fd20c099bb6ca57a842a3c3af42e35d0f73ef4056c06a219c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#fair_share",
      "name": "fair_share",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L230-L256",
      "signature": "def fair_share(sizes: dict[Path, int], budget: int) -> dict[Path, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a46633181c44e5268fb930bde8977eaca75e34d1feb4e8fda4b7a9c5ced46dbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#find_api_key",
      "name": "find_api_key",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L184-L213",
      "signature": "def find_api_key(explicit: str | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7f0c544078a80e1780d8aa7432e43a7e35afe3ef52c14b9cdf18db2c35ae0fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#generate_for_skill",
      "name": "generate_for_skill",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L468-L513",
      "signature": "def generate_for_skill( skill_dir: Path | None, args: argparse.Namespace, api_key: str, output: Path, verbose: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4575f7087a5e4d1ca4c59a644daf63a9533e7b7f039d15c5d3b21dfa699c0ca7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#main",
      "name": "main",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L777-L865",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed5e00e8a8deca3b678d7bd571f460a8b599ed7805ba75bff5c475f9c2d6e8b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#output_paths",
      "name": "output_paths",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L423-L438",
      "signature": "def output_paths(base: Path, media_type: str, count: int, warn: bool = True) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5730255b06f0568ec24745b77387374ac2bb203307e54eca80aca7eb9b8c44ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#post_json",
      "name": "post_json",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L378-L420",
      "signature": "def post_json(url: str, api_key: str, payload: dict, timeout: float) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6c8d11b4b30c935f8513e948f1fcd0b2dfedaa34d50682e2a7781421cf95b79",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#resolve_skill",
      "name": "resolve_skill",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L216-L227",
      "signature": "def resolve_skill(name: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "b182c265fd424e932bb4461f34f4a0be59bd00a5e6b61d0bcc144423a7a698c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#run_batch",
      "name": "run_batch",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L523-L597",
      "signature": "def run_batch(skill_dirs: list[Path], args: argparse.Namespace, api_key: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c9e89eda31b51d51d5d7735b17da05c308f1ed5c5900e9beb40bfd4f0c66fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#run_batch.work",
      "name": "work",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L548-L559",
      "signature": "def work(item: tuple[Path, Path]) -> tuple[Path, dict | None, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "372018d37a7679f5426350118971a402838e9336d6e3921f556ba10919dafee7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#save_images",
      "name": "save_images",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L441-L465",
      "signature": "def save_images(result: dict, base: Path) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "acbf7155e0ba0e867409c0a373cb2a989b4e42e43bc0a6c383171ddcaccb128c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#ScriptError",
      "name": "ScriptError",
      "kind": "class",
      "path": "scripts/generate_skill_image.py",
      "span": "L180-L181",
      "signature": "class ScriptError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1442dbd79e55e9739464d3b106f188975a5ea801b409e99ce18116035238af1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "scripts/generate_skill_image.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "scripts/generate_skill_image.py",
      "span": "L738-L752",
      "signature": "def validate(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "23d186da428ce1fa53c9fa80a4dd410838307d16316a67f8037b7e9c8c178b5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L1-L512",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "225b476d555e0db377fad62e7ac35f874ef5a4724870f59e3e2d2c01e7640116",
      "chars": 19437,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#_split_delimited",
      "name": "_split_delimited",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L212-L229",
      "signature": "def _split_delimited(path: Path) -> tuple[list[str], list[list[str]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1fb49c5e68331c4153634144eafd2ac27f6bce272252d3f0c9dd87823860483d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#_stringify",
      "name": "_stringify",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L437-L444",
      "signature": "def _stringify(value: object) -> object",
      "exported": false,
      "origin": "ast",
      "body_hash": "de77d3d3a44d4ddeb96f2ac50f44209da9524dc5391a81db8e67b6b0afaec840",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#cdf_to_tail_and_phred",
      "name": "cdf_to_tail_and_phred",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L393-L404",
      "signature": "def cdf_to_tail_and_phred(cdf_quantile: float, floor: float = 1e-7) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "75a02f5b06ad0be20395d458eb13ac1839993021f3a393155027d24bee68db6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#chunked",
      "name": "chunked",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L509-L511",
      "signature": "def chunked(items: Sequence, size: int) -> Iterable[Sequence]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7b794681e73b366eb40d3e69eb615b2aef99c095a01dc5074d2bd2d11bd9200",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#collect_variants",
      "name": "collect_variants",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L338-L351",
      "signature": "def collect_variants( variant_args: Sequence[str] | None, input_path: str | None, ) -> tuple[list[VariantSpec], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea779d9e67e1b8e19b7781ce5f51075fb41c2fcfb50e86a098590ecb3b5a6e93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#feature_display_name",
      "name": "feature_display_name",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L414-L416",
      "signature": "def feature_display_name(key: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f8925560dccffae7f180dbfd9bacc5b4f08c223de91d3e2d2dec3b31d53e922",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#format_from_output",
      "name": "format_from_output",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L496-L506",
      "signature": "def format_from_output(output: str | None, explicit: str | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f10a52a788160693b0102496f61a34408119df149c39685f835cdfd0c8b68db9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#interval_width",
      "name": "interval_width",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L208-L209",
      "signature": "def interval_width(start0: int, end: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "963ec379af4758e1cf21c71e2c5e627930bfdf4faaacfbaabe968e48677012d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#load_api_key",
      "name": "load_api_key",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L359-L375",
      "signature": "def load_api_key(env_var: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "93d939a76d2043d65fde28a174b94db58a3e4b932cf9f5303c5d052ad484d1d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#normalize_chromosome",
      "name": "normalize_chromosome",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L137-L150",
      "signature": "def normalize_chromosome(contig: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "19ec60c3bef5a080e5740f7826fa34faa47fdfc934ca53090cca7e67084ab6a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#parse_interval_string",
      "name": "parse_interval_string",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L190-L205",
      "signature": "def parse_interval_string(text: str) -> tuple[str, int, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a273f66f3f94f57a5b1153bdabe208b8c69b517fe1a8336d351b3e5a7285fbb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#parse_variant_string",
      "name": "parse_variant_string",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L164-L187",
      "signature": "def parse_variant_string(text: str, name: str = \"\") -> VariantSpec",
      "exported": true,
      "origin": "ast",
      "body_hash": "f676fae241674d74a38bf9c682afd542edf336e1a6d29ff8882e41c1da1fe8a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#phred_to_top_percent",
      "name": "phred_to_top_percent",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L407-L411",
      "signature": "def phred_to_top_percent(phred: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "f104162237359411760fb7b26445d5e5abbdb9da835283f87e268e56bb5f1da4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#portal_variant_url",
      "name": "portal_variant_url",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L419-L427",
      "signature": "def portal_variant_url(variant: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0a05a8ec58acbde3ab04580684f8046d0e64ee74775d608e3569e7e4b87520d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "name": "read_variant_table",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L271-L335",
      "signature": "def read_variant_table(path: str | Path) -> tuple[list[VariantSpec], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a9ba4f297c9ac7c180f41806f54c1274913d32b29f4ce377060f43218f72a92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#read_variant_table.column",
      "name": "column",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L292-L296",
      "signature": "def column(*names: str) -> int | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c2c18e12d8d08d77434989b81b16266d5c75dc67d04d32d08c53869ea6ab5ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#read_vcf",
      "name": "read_vcf",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L235-L268",
      "signature": "def read_vcf(path: Path) -> tuple[list[VariantSpec], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e7fb9969ab9cb3d9711fb11cbf86f752c9782abdeb0e5e455b5f0379c9dd3ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#require_alphagenome",
      "name": "require_alphagenome",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L378-L385",
      "signature": "def require_alphagenome()",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae95faf0929717fc2628e4cacd82b89abba566ae65db31314b8acb43f2ad03d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "name": "VariantSpec",
      "kind": "class",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L110-L134",
      "signature": "class VariantSpec",
      "exported": true,
      "origin": "ast",
      "body_hash": "3baa556f37e1b11f1209a51f9c612098d10f07d7edc42cdf3673801f3e39a352",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#VariantSpec.__str__",
      "name": "__str__",
      "kind": "method",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L119-L120",
      "signature": "def __str__(self) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "271fe2dcf7fcc9312b1d1bdbef2cfa08cadbc85f1ef201b04c5c5784e72982c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantSpec"
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#VariantSpec.is_snv",
      "name": "is_snv",
      "kind": "method",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L123-L124",
      "signature": "def is_snv(self) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c99bc3884860fec3e46cb1bb9d4e7aee27e00c93e4079715fe6458ae5e832d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantSpec"
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#VariantSpec.to_row",
      "name": "to_row",
      "kind": "method",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L126-L134",
      "signature": "def to_row(self) -> dict[str, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b254305f123a64364b75084c5f1ea871f045f09cd14008eb325355843838a516",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantSpec"
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#warn",
      "name": "warn",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L492-L493",
      "signature": "def warn(message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "44e01b63aa6571b2698e5df6580be12886c3f1abc62101d8323705a08422b767",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/_common.py#write_rows",
      "name": "write_rows",
      "kind": "function",
      "path": "skills/alphagenome/scripts/_common.py",
      "span": "L447-L489",
      "signature": "def write_rows( rows: Sequence[Mapping[str, object]], output: str | None, fmt: str = \"tsv\", columns: Sequence[str] | None = None, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "70bdaa3a0c3a3d71e5d9d3b112a02138ddf3f8c004abfb5ebdff40a164ac6a4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py",
      "name": "atlas_link.py",
      "kind": "file",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L1-L203",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8c5df8e1972406367e6220f7b66452364d354ac80e5cc2f99909de176e7013c4",
      "chars": 7487,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py#build_filter",
      "name": "build_filter",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L78-L107",
      "signature": "def build_filter( biosample: str | None = None, modalities: Sequence[str] = (), tfs: Sequence[str] = (), histone_marks: Sequence[str] = (), ) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf6b546d1afdcf230a06ab1130783e3ec00adab7d33f54be02787c93388fb660",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py#build_layout",
      "name": "build_layout",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L110-L113",
      "signature": "def build_layout(include_avi: bool = True, modalities: Sequence[str] = ()) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7c9b31b3e4ff2953f44dbc6b71294160c57590b8a013960503cec5ff0fb4209",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L159-L175",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d22b4b76ee1b41631a85866659212f8b07eb272966a397b20d257c7bf138a962",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py#build_url",
      "name": "build_url",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L116-L156",
      "signature": "def build_url( mode: str, query: str, *, biosample: str | None = None, modalities: Sequence[str] = DEFAULT_MODALITIES, tfs: Sequence[str] = (), histone_marks: Sequence[str] = (), include_avi: bool = True, zoom: str | None = None, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "24c4bb5d70b40136df398b72d2e0ddcf4ab9a6c073aa56599b82f4e07af0654c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L178-L198",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1b4292e670fb89c539c9f3e18de36e597061d86e8baba9c828c0920d9245e21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_link.py#parse_modalities",
      "name": "parse_modalities",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_link.py",
      "span": "L63-L75",
      "signature": "def parse_modalities(text: str | Sequence[str] | None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a383edbe9efae5f9213c378449032a327493ebe1427038bf93f955da409ca38e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py",
      "name": "atlas_query.py",
      "kind": "file",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L1-L523",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "37eaded062df532a37b65bda4b5c23c67d8b783aabb0b2e973226acc5823674d",
      "chars": 23226,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_add_common",
      "name": "_add_common",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L461-L466",
      "signature": "def _add_common(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f2f7940b77d31582b5dd286f598aaf7cada1b806ee71ecfceb447c7252104f2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_add_variant_inputs",
      "name": "_add_variant_inputs",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L469-L474",
      "signature": "def _add_variant_inputs(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6adc530e09eb034eb92d7332c8eedbff86f4a03e5eef70d690bad91d40b40fac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_feature_names",
      "name": "_feature_names",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L73-L76",
      "signature": "def _feature_names(adata) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a2736326c5277e1b29a0a52c36ae67feadc71fe2c095a910f5467d418640f98c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_layer",
      "name": "_layer",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L79-L83",
      "signature": "def _layer(adata, name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "8f802e529233ae05d82067852ca1725f00ad881e477750ee849fae4aa85530e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_obs_variant_strings",
      "name": "_obs_variant_strings",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L67-L70",
      "signature": "def _obs_variant_strings(adata) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a5e36f4bedecb2dae91ee85e4fb647c526f6f784c73a65753dc2017920283f7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_query_each",
      "name": "_query_each",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L294-L313",
      "signature": "def _query_each( client, specs: Sequence[common.VariantSpec], requested_scorers: Sequence[str], workers: int, **filters: Any, ) -> list[tuple[common.VariantSpec, Mapping[str, Any] | None, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "0ad7a65f43ee2689aac55a2cc325ade9efd72c5cca8a499f35f0955ee5932554",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#_query_each.one",
      "name": "one",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L303-L308",
      "signature": "def one(spec: common.VariantSpec)",
      "exported": true,
      "origin": "ast",
      "body_hash": "90b3c2371e5c59b42085f37d5209d76a12af121bceadd9af5eeb88f20253d7bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L477-L513",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2dbcefe62d84c8309a465a1b4fd73dc8dd8cd44d3cfc010a59c03a90ccdabf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "name": "cmd_avi",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L321-L397",
      "signature": "def cmd_avi(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f60fdeeec830724016b49fe1458a228eaf4966b27b4fc090f378d8674025da8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#cmd_scorers",
      "name": "cmd_scorers",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L438-L442",
      "signature": "def cmd_scorers(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0494cffe462f9d6a11102ff9d5a16327917f4a387382634989e87b818c274209",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#cmd_scores",
      "name": "cmd_scores",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L400-L435",
      "signature": "def cmd_scores(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ed680b0455ce91f0667b29e0a57439cc35cca52512ad8cbbd07259325d3b6d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#cmd_tracks",
      "name": "cmd_tracks",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L445-L453",
      "signature": "def cmd_tracks(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9523cfd6efad858f7ca4979ce08b9a8682f16225d3fe4b3ece3fbab50102898",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L516-L518",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dcdc8c5967e009609a45e83ccccb3835fbf3ab0d0b1d6f46929f5f5c3b6a6d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#make_client",
      "name": "make_client",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L254-L266",
      "signature": "def make_client(args: argparse.Namespace)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d11b1cbf2640fc65e4aab65e6260236c15e07e6a10a4859ad8eee7cbdeb35d27",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#max_abs_track",
      "name": "max_abs_track",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L190-L208",
      "signature": "def max_abs_track(adata) -> dict[str, Any] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0077fae2873ee5f37ef2b0cf5e7494b2e06b5ecb7ad6135331b4cfaff1739707",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#scorer_rows",
      "name": "scorer_rows",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L211-L225",
      "signature": "def scorer_rows(metadata: Mapping[str, Any]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd850518bcd618c371d693165503529ad0f4e0542aa09e827d6477d6315a0f5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#summarize_avi",
      "name": "summarize_avi",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L86-L140",
      "signature": "def summarize_avi(avi_adata, fi_adata=None) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7086646cca30a47a012c981ff05ab3b2028cee268b190a191416475cc4ccf722",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#tidy_atlas_scores",
      "name": "tidy_atlas_scores",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L143-L187",
      "signature": "def tidy_atlas_scores(scores: Mapping[str, Any]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "043ca8e961b0ab7a1be1f62ebc3f0824ff93ebe38394fee69dd7c93736a20e53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#to_genome_interval",
      "name": "to_genome_interval",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L281-L291",
      "signature": "def to_genome_interval(text: str, max_window: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "723a69bbebdc6f909fb6db7157f5452e1c2c486b879a5ff8a074d482a111c1d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#to_genome_variant",
      "name": "to_genome_variant",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L269-L278",
      "signature": "def to_genome_variant(spec: common.VariantSpec)",
      "exported": true,
      "origin": "ast",
      "body_hash": "625bfe14753cdb1c9cf44aa7b186d79bfb01476d257092ed7653bf90c086319a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/atlas_query.py#track_rows",
      "name": "track_rows",
      "kind": "function",
      "path": "skills/alphagenome/scripts/atlas_query.py",
      "span": "L228-L246",
      "signature": "def track_rows(metadata: Mapping[str, Any], scorer: str | None, query: str | None) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cf17f7eac16ab06dea32d3b332f90d6d2d1a16357c965174ba2ecefd394d207",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py",
      "name": "score_variants.py",
      "kind": "file",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L1-L234",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eba2697f38262f65df4e40f9d086f13a58500dc1632cf2f1dc453a9cdd984c4c",
      "chars": 11188,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L191-L218",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e6ddd330e6d08d18b9890f5b2731f77e7b63a5d63c9ab6af4cdcb94fe2987ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#list_scorers",
      "name": "list_scorers",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L127-L139",
      "signature": "def list_scorers() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "323e52737844a0099aad378e016b6a2f74e7a38f91d89966745a261749ae50bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#list_tracks",
      "name": "list_tracks",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L108-L124",
      "signature": "def list_tracks(model, args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4decac4d667a84421e50eb0e2420e2988f46d8e06018af64425a52b928c5aedb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L221-L229",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "15c1e79e2e4b399dca897a34156071462393acb538df8992763bcead97e355bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#make_model",
      "name": "make_model",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L87-L99",
      "signature": "def make_model(args: argparse.Namespace)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bbfee944256ef43a0d245b63730a1e4fe7f1204e4361af5abb1e13be58e97e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#organism_enum",
      "name": "organism_enum",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L102-L105",
      "signature": "def organism_enum(name: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d7844c8bba6458493dda7ad8b4fc689891ae029266d93179d93664ba4966c42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#parse_sequence_length",
      "name": "parse_sequence_length",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L47-L53",
      "signature": "def parse_sequence_length(text: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3b7647c24a2f15eb27dc33d0ea63b18f57caafa3e31d9a08a7f4d5a9cca5112",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#score",
      "name": "score",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L142-L188",
      "signature": "def score(model, args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6082279286de820e5be9b64cd991d6f63e586ba3aa1c6f0a967d7499ecd7c2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/alphagenome/scripts/score_variants.py#select_scorers",
      "name": "select_scorers",
      "kind": "function",
      "path": "skills/alphagenome/scripts/score_variants.py",
      "span": "L56-L84",
      "signature": "def select_scorers(names: Sequence[str] | None, organism: str, include_active: bool = False) -> list[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2169039a691f785b8cb1af6b2b5e92024806cb52bc338d3a1ed849d0b8ca87d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_catalog.py",
      "name": "_catalog.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/_catalog.py",
      "span": "L1-L500",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dd750f2f283c238875e1927cf4f08f9dc21ff9c2acacf8c5316a49a30887b857",
      "chars": 23838,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_catalog.py#resolve_attribute",
      "name": "resolve_attribute",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_catalog.py",
      "span": "L493-L499",
      "signature": "def resolve_attribute(name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfdc9af876a58dd530513aa480e400c863631585d16a15a766dd518dd4f54f73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L1-L956",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a251b81f6240ac61b4f2ff2be9c644bf41ccca39e4ad462d9abd740c36b2f4ee",
      "chars": 32420,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#_betacf",
      "name": "_betacf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L48-L80",
      "signature": "def _betacf(a: float, b: float, x: float, itmax: int = 400, eps: float = 3e-16) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "526d29af75879b109f4060c3d23e689b0b357fb319204a1cb6385b9a696caeb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#_bisect_ppf",
      "name": "_bisect_ppf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L141-L151",
      "signature": "def _bisect_ppf(cdf, target: float, lo: float, hi: float, tol: float = 1e-12) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "415b9908496637df9e29ca4823a2e687200998159bfcba842bf562356b3cfe6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#_json_default",
      "name": "_json_default",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L921-L926",
      "signature": "def _json_default(obj: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "66ce6fb7ac8cb5a0c0e5e9d6d2af3558fa014ad73408e3312454be71d490aad4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "name": "add_common_args",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L938-L944",
      "signature": "def add_common_args(parser: argparse.ArgumentParser) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cdffe43470a716f8ccddaec7635441337372bdc636b67e3424bb897bdf7bb49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#betainc",
      "name": "betainc",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L83-L99",
      "signature": "def betainc(a: float, b: float, x: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9e750ae443ba4a50d7a884e147b56cca07572a05a0cb6271ef980938bd4ee8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "name": "bland_altman",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L695-L743",
      "signature": "def bland_altman( xs: Sequence[float], ys: Sequence[float], relative: bool = False ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdbe160113ef554e06d341aa01f47e820daa11d2834a357ec1ee61259e2766bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#chi2_cdf",
      "name": "chi2_cdf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L170-L174",
      "signature": "def chi2_cdf(x: float, df: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b9f972347e2de77aa98a5702d1869b7d386a2b7dceeebd0c2377b702371e212",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#chi2_ppf",
      "name": "chi2_ppf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L177-L181",
      "signature": "def chi2_ppf(p: float, df: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "91e0ab3174545546c349f8a329e4741ac266a6c5cacc055542ce6db1a4117742",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#deming",
      "name": "deming",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L556-L631",
      "signature": "def deming( xs: Sequence[float], ys: Sequence[float], lambda_ratio: float = 1.0 ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e35afdaee518d6f7862cc0e13662db9d6abd524650b0509da0745903ef51d84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#deming._fit",
      "name": "_fit",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L583-L594",
      "signature": "def _fit(xv: Sequence[float], yv: Sequence[float]) -> tuple[float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9cfaaedfca0beed6632a013e414a2ea377f1978e2c7fc864457d3f5f14c89281",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#emit",
      "name": "emit",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L904-L918",
      "signature": "def emit(rows: list[dict[str, Any]], fmt_name: str, stream=None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea8858439802bdd53df3378c2f1be698d187107e322685f00edcdc7e17495d20",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#emit_table",
      "name": "emit_table",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L887-L901",
      "signature": "def emit_table(rows: list[dict[str, Any]], stream=None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a76e0ea4997acc376765d12bbeb695871b6c7b3f527141a563dbb8d7f94c0e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#f_cdf",
      "name": "f_cdf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L184-L188",
      "signature": "def f_cdf(x: float, df1: float, df2: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f49e09974e099b19157ac5e8b626658a337ec14cc18ee6145ab6532122c8f1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#f_sf",
      "name": "f_sf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L191-L200",
      "signature": "def f_sf(x: float, df1: float, df2: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9cb961b763c5c59e175d4daf03b806854b038f7ceb7101add50988acbc62796",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#finding",
      "name": "finding",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L934-L935",
      "signature": "def finding(message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f80d187436955c0f6d1c0ce9d8a9f43b8b23407ad9458f2d7a77591d0857c48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "name": "fit_linear",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L290-L342",
      "signature": "def fit_linear( xs: Sequence[float], ys: Sequence[float], weights: Sequence[float] | None = None ) -> LinearFit",
      "exported": true,
      "origin": "ast",
      "body_hash": "9972c01e4e195b93a0c86ddf11294232c5473cc644354d5f395467d4bf75934a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#fmt",
      "name": "fmt",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L870-L884",
      "signature": "def fmt(value: Any, digits: int = 4) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "eca341781316fdc0dfe134eb6f1282c4a0a257002a33fe198c21da2112060079",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#gammainc_lower",
      "name": "gammainc_lower",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L102-L138",
      "signature": "def gammainc_lower(a: float, x: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfc7b29f9cd96a89a97ff126d35e0c29351f6a6b20927667996843849a75b8fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#heteroscedasticity",
      "name": "heteroscedasticity",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L423-L448",
      "signature": "def heteroscedasticity(xs: Sequence[float], residuals: Sequence[float]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea2074c9903f1ab3806e79a3cc31821ac024848a16d4c9fe851620a762508bb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "name": "InputError",
      "kind": "class",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L39-L40",
      "signature": "class InputError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95fecfa1795edea2bbccd92be935e80020bb165529f61a2b070f26d02478b71d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#lack_of_fit",
      "name": "lack_of_fit",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L378-L420",
      "signature": "def lack_of_fit(xs: Sequence[float], ys: Sequence[float], fit: LinearFit) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "111112e253cb52d9616f3fc397f012271f614dd35a87a133a2f105d7f1647292",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "name": "LinearFit",
      "kind": "class",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L262-L287",
      "signature": "class LinearFit",
      "exported": true,
      "origin": "ast",
      "body_hash": "39e7306502a1e7f667d34458a3d61d370052d58298e9819257b2cb43dbc3fd0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#LinearFit.intercept_ci",
      "name": "intercept_ci",
      "kind": "method",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L285-L287",
      "signature": "def intercept_ci(self, level: float = 0.95) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "141f5eae2e16a34a029df7979c0ac5d0ad36e17685d7f34503eccd4ddabe2863",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinearFit"
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#LinearFit.predict",
      "name": "predict",
      "kind": "method",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L278-L279",
      "signature": "def predict(self, x: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e99a26f672314438625b57cd43edf741eb4657bb32f3309b5a2e21cb966da45",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinearFit"
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#LinearFit.slope_ci",
      "name": "slope_ci",
      "kind": "method",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L281-L283",
      "signature": "def slope_ci(self, level: float = 0.95) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f68e7b247f81feedc4a047fd5cb13ac60cd1e266f825acde4215197f0326e67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinearFit"
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#mean",
      "name": "mean",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L215-L218",
      "signature": "def mean(values: Sequence[float]) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "519477bc673a287bed4494af078122704b28d03c288699adcb763fcf0a36571a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#median",
      "name": "median",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L237-L243",
      "signature": "def median(values: Sequence[float]) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "55ad84ecaff2e9c9aee0d50d2fec1311fa627cf5fe2040f3870f171d71e0e224",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#note",
      "name": "note",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L929-L931",
      "signature": "def note(message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac1100968365593ac6fc51da62670c30ff94382092db049a5e74e8e5b16d2c07",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#one_way_components",
      "name": "one_way_components",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L495-L548",
      "signature": "def one_way_components(groups: dict[str, Sequence[float]]) -> PrecisionComponents",
      "exported": true,
      "origin": "ast",
      "body_hash": "49a597a05f5f48be5be908f86c8c1057670e0ad2ed7bcaa814b14b0e65f858da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "name": "parse_rows",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L812-L849",
      "signature": "def parse_rows(text: str, path_hint: str | None = None) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f58456c5c1124c171ec51de9d9f3f6695e7eaa73680fed5bf40556febd75071",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "name": "passing_bablok",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L634-L692",
      "signature": "def passing_bablok(xs: Sequence[float], ys: Sequence[float]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "91066e7997d9f19f40037e560177c4652cd94cdf5c16711d87dbd835f30bf1c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#passing_bablok._shifted_median",
      "name": "_shifted_median",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L663-L669",
      "signature": "def _shifted_median(offset: int) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "496fafbb84e3cc24544ef7ec91aa512ad387519dee9dba239d811f89849cc400",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents",
      "name": "PrecisionComponents",
      "kind": "class",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L457-L492",
      "signature": "class PrecisionComponents",
      "exported": true,
      "origin": "ast",
      "body_hash": "d004badfdcc6a4f5cc991e85023f6186d33b2311a6241fb9eb706b66d93a2623",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents.rsd",
      "name": "rsd",
      "kind": "method",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L473-L476",
      "signature": "def rsd(self, sd: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce03719332bf6bcf894de0802e4576b24cb71489a031d806304e78ba250f69a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrecisionComponents"
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents.satterthwaite_df",
      "name": "satterthwaite_df",
      "kind": "method",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L478-L492",
      "signature": "def satterthwaite_df(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7f23f4c82c4d24b387f2daec3ac1f0bbd1adcd0fe8af5d6e9402891062633c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrecisionComponents"
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#read_input",
      "name": "read_input",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L792-L809",
      "signature": "def read_input(path: str | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb5c05c94cfb3c44551df4f942c3de77f5bff5520f65cb8e249d933f6cc53fe0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#require_columns",
      "name": "require_columns",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L852-L858",
      "signature": "def require_columns(rows: list[dict[str, str]], columns: Iterable[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e206a4936ced116a645811bb4602b13bc7419f15305a1e9087708a7eaaa2de8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#rsd_percent",
      "name": "rsd_percent",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L229-L234",
      "signature": "def rsd_percent(values: Sequence[float]) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "6aab5ee77236537f1bd57a6c211be04ef7a51c5b83db37ecd58072ed38f4f927",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L947-L955",
      "signature": "def run_cli(main_func) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4e38b1b78300d6cc3a44a20fe5d37291fc4e916ad1b2eb9f4af04d2b0cd10a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#runs_test",
      "name": "runs_test",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L345-L375",
      "signature": "def runs_test(residuals: Sequence[float]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "840140f33f6a2ecef533abedc1f4729d4d19b85b9d5d87324b029b024ba30ca2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "name": "sample_sd",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L221-L226",
      "signature": "def sample_sd(values: Sequence[float]) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "13dccdb1fd3e99faec04d2011fe211ea00dd631d6569bf4b44b2eb83cfb81624",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#sd_confidence_interval",
      "name": "sd_confidence_interval",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L246-L253",
      "signature": "def sd_confidence_interval(sd: float, df: float, level: float = 0.90) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a46960207f042c18d9a46abda42846c71fea0d2a147194285d9c4cb6342235f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "name": "t_cdf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L154-L160",
      "signature": "def t_cdf(t: float, df: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ad52a9c98d1170eef5fa3852952a3da39af0f5df4c989327d0976caef70362b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "name": "t_ppf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L163-L167",
      "signature": "def t_ppf(p: float, df: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "06ddbf671445aa2a7eb95a65bcae97d058451f9a3e878e85b4b2d19f7c8e6239",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "name": "to_float",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L861-L867",
      "signature": "def to_float(value: str, column: str, row_index: int) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "98e033ef0731a6de32f97251f4196e110156028156f45f8ba85c2bd93f75cef2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "name": "tost_paired",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L746-L784",
      "signature": "def tost_paired( diffs: Sequence[float], margin: float, alpha: float = 0.05 ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "239266939993445630654bf46dffd6a78adbc84cd692580b145092402a63dd2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/_common.py#z_ppf",
      "name": "z_ppf",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/_common.py",
      "span": "L203-L207",
      "signature": "def z_ppf(p: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b795e9f924acc7b1932a22b8c63a1d2374f653f684f09a8ff469d65c64bf459",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "name": "check_accuracy_precision.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "span": "L1-L329",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "05b4751505bccf3953762b569aecf8371208173aa216fe3501c84ceb56d453df",
      "chars": 14263,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "span": "L71-L324",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e036da7904301417e4009674bf209e18c89b20abcf26c4c7a5beb5a8b51b7655",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "name": "precision_block",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "span": "L162-L222",
      "signature": "def precision_block(label: str, groups: dict[str, list[float]], reference: float | None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fb22c7fd6bba669e21b3dc65039732f70d6451e33728bdf8c19d59a54ba1610",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block.as_rsd",
      "name": "as_rsd",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "span": "L184-L185",
      "signature": "def as_rsd(sd: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "98afb686d8ccc50b9bc1f882460b75f4c3580b8350dea05c26730cf7fa9462f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "name": "check_bioanalytical_run.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "span": "L1-L294",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c16398b2ee77bddebbfbf84f1c9abe9a9045be40a7c9108972e3ca16f3d26751",
      "chars": 11344,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#calibrator_tolerance",
      "name": "calibrator_tolerance",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "span": "L55-L66",
      "signature": "def calibrator_tolerance(label: str, crit: dict) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e52a71f659d1448a90a0263fb0d03819e928b7417fe80c146c227bbf031732a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_isr",
      "name": "check_isr",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "span": "L161-L186",
      "signature": "def check_isr(path: str, crit: dict) -> tuple[list[dict], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "62794b8f80c5f2c6629e0af728fa15e7220521df9d8bb15c69c79664ffff169b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_run",
      "name": "check_run",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "span": "L69-L158",
      "signature": "def check_run(path: str, crit: dict) -> tuple[list[dict], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad349b338ea414ef8d15f213971e951bb26bd69e485ace6b2a206b487fe15846",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_total_error",
      "name": "check_total_error",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "span": "L189-L216",
      "signature": "def check_total_error(path: str, crit: dict) -> tuple[list[dict], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a22e4ed187b0df72bfa56816f684128f588088c91411de8efb027a71bb0906e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "span": "L219-L289",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5510d5d4d8327279aaa25a244d3739811c03f296bdc52740d225d8b779833cb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "name": "check_detection_limits.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "span": "L1-L311",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "58e4387324b1884e7963f4b006fa4405da4d5f1ad587efdbba43f695d1ddb4ca",
      "chars": 13215,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "span": "L59-L306",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b22adc1f040c7155cbee491b2a7f020b4d72c1d039940dca5bf49cf294f1155e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_response.py",
      "name": "check_response.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/check_response.py",
      "span": "L1-L244",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "068fe65932f389c1aba56689e5924eb57016421fcfaee0f024344b6e3ecbbeb5",
      "chars": 9858,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_response.py#build_weights",
      "name": "build_weights",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_response.py",
      "span": "L57-L63",
      "signature": "def build_weights(xs: list[float], scheme: str) -> list[float] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "222aea2b7819b5cb9b84ffb74d2fd5a743c31f64f5b5ea02ca0434981a3598be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/check_response.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/check_response.py",
      "span": "L66-L239",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b0999fe3f89464862a94c10a5c014b624e2eb5c7474b612f9910aa70f42f168",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/compare_methods.py",
      "name": "compare_methods.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/compare_methods.py",
      "span": "L1-L216",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "54f5a7cdbccac073128a7df8a5519b04d0e215498f7542cba8a93832d6a09f1b",
      "chars": 9105,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/compare_methods.py",
      "span": "L58-L211",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "af8f7db0373063f25eb5f8467613aad21986c45d28b17a19194d88b2947b57ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/plan_validation.py",
      "name": "plan_validation.py",
      "kind": "file",
      "path": "skills/analytical-method-validation/scripts/plan_validation.py",
      "span": "L1-L382",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8c47e921d13a0e521669790a820be2f1caf0492538229615104aef4e7c389fe0",
      "chars": 15414,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/plan_validation.py",
      "span": "L279-L377",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a3d3083e239fe12350c4281f2198eaf817e57247b441ad7a0c17f0d6692f01f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/plan_validation.py#plan_m10",
      "name": "plan_m10",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/plan_validation.py",
      "span": "L104-L183",
      "signature": "def plan_m10(modality: str) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bb6420725edeafcc97f381827e935d65f62691338b381647337e546396e7bef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/plan_validation.py#plan_q2r2",
      "name": "plan_q2r2",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/plan_validation.py",
      "span": "L53-L101",
      "signature": "def plan_q2r2(attribute: str, technique: str | None, range_use: str | None) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f7850898ad434912b7a9d3d9aefa64347c05af8dbcd1fc67f898eb4c363b791",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/analytical-method-validation/scripts/plan_validation.py#render_protocol",
      "name": "render_protocol",
      "kind": "function",
      "path": "skills/analytical-method-validation/scripts/plan_validation.py",
      "span": "L186-L276",
      "signature": "def render_protocol(framework: str, attribute: str | None, modality: str | None, technique: str | None, range_use: str | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c09397536db038ebce5e34abc99b3ddfcc2745c7340410f1999eb74e06cb7485",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py",
      "name": "tree.py",
      "kind": "file",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L1-L565",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d73857839b1a2bc31d9470dacf670954fef86f2ee70c9eddbf60a3588ebd68e7",
      "chars": 22092,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_ancestors",
      "name": "_ancestors",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L101-L108",
      "signature": "def _ancestors(tree, node_id)",
      "exported": false,
      "origin": "ast",
      "body_hash": "44aed6ce3e1680abca9421438e9bc076b71fe51cf1a73a2e1fe481f4c1d382ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_children",
      "name": "_children",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L97-L98",
      "signature": "def _children(tree, node_id)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2a81e6ef580913ea56a2010b7cf7d8d112483ff7db41e4f2608a5331a317ccf1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_depth",
      "name": "_depth",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L111-L112",
      "signature": "def _depth(tree, node_id)",
      "exported": false,
      "origin": "ast",
      "body_hash": "79e40999407089bc773530015096f8e21b3d947066ca66336d28867f314a3fc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_dir",
      "name": "_dir",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L46-L47",
      "signature": "def _dir(run_dir)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e62ce83686bb2033d1712817b13fb4902b2376fbc288c25b2c705c87c64b3df2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_fmt_score",
      "name": "_fmt_score",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L342-L350",
      "signature": "def _fmt_score(node, run)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c4bb11e4c4f9fb384bb49f5731a638b748b73ae110fce780d44f8c7d9a9eb0a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_load",
      "name": "_load",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L58-L65",
      "signature": "def _load(path, what)",
      "exported": false,
      "origin": "ast",
      "body_hash": "dc45cc14a90e666bf8d93a1ac72718f3d06de778c8b520f1d686ae98ef329d13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_load_run",
      "name": "_load_run",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L80-L81",
      "signature": "def _load_run(run_dir)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0e394b3179db9a5035bc4a1463b67f22210fb1e75619a6b16af644d3ce3f4f7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_load_tree",
      "name": "_load_tree",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L76-L77",
      "signature": "def _load_tree(run_dir)",
      "exported": false,
      "origin": "ast",
      "body_hash": "a85c451f3d4d398a0eb5271b72c46d8373cfbb164ba988a920b5e88ed1889e2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_next_id",
      "name": "_next_id",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L84-L87",
      "signature": "def _next_id(tree)",
      "exported": false,
      "origin": "ast",
      "body_hash": "34d35ef83e35e87566cdb1b8cc8f7e5104a8d47480778be29d237554659f7eff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_node",
      "name": "_node",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L90-L94",
      "signature": "def _node(tree, node_id)",
      "exported": false,
      "origin": "ast",
      "body_hash": "af51de5a4f6dda1fe80e70a87334d3521dc65a2dad1ee0b591380756c2f0ab88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_run_path",
      "name": "_run_path",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L54-L55",
      "signature": "def _run_path(run_dir)",
      "exported": false,
      "origin": "ast",
      "body_hash": "bd3799bc6f7bc3d936cd412850b12b90ffcbe1611904312d44846464eacae5db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_save",
      "name": "_save",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L68-L73",
      "signature": "def _save(path, data)",
      "exported": false,
      "origin": "ast",
      "body_hash": "03b9aa0445969bebcb8f8c70578aac00b275a6c99c9436e1a24d8bf63bf1d6ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_stamp",
      "name": "_stamp",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L115-L116",
      "signature": "def _stamp(node)",
      "exported": false,
      "origin": "ast",
      "body_hash": "04aeef1754fe96887ecb688a65471c50e6af4fb3ca72684f701bd5269e839f4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#_tree_path",
      "name": "_tree_path",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L50-L51",
      "signature": "def _tree_path(run_dir)",
      "exported": false,
      "origin": "ast",
      "body_hash": "22272bf021321c1f7ce45006d068c387cc44d71b7827602d1788c8a5ddadf02b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L490-L555",
      "signature": "def build_parser()",
      "exported": true,
      "origin": "ast",
      "body_hash": "802e9c1c3fff525b9bb77f26299baee932b0f6119c047cc434191427555db3b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_add_node",
      "name": "cmd_add_node",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L169-L195",
      "signature": "def cmd_add_node(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4d70980bdc2a142dddc4bcb9f6eb5b41e8505d05b2324db63693bec11a496c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_cycle",
      "name": "cmd_cycle",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L326-L334",
      "signature": "def cmd_cycle(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bde000f642cceb3619e0b103a999d798214c62d39503706bad5737957ae0ef5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_init",
      "name": "cmd_init",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L124-L166",
      "signature": "def cmd_init(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c3849a01ec64985f795ac6a43b3876e2a31162ec1ea1a941f79a9a9bd63266f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_merge",
      "name": "cmd_merge",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L284-L323",
      "signature": "def cmd_merge(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e3d3f54fa1ec03f4554bfe0cf1819840a73e7354ada1bd381c5f3ab8e220201",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_merge.better",
      "name": "better",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L295-L298",
      "signature": "def better(new, old)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2817ac488a7960603b62568c4aad518956357767f06951590de80ead9682998",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_observe",
      "name": "cmd_observe",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L353-L426",
      "signature": "def cmd_observe(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e3170f2a2275895bfa011785f2883819e6b418206776a67aadd8bb13cee9f4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_propagate",
      "name": "cmd_propagate",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L239-L259",
      "signature": "def cmd_propagate(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e23136f8a9b6b424ced1c55017be741be1af3a41e9e5fde88c773de0b9d80d7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_prune",
      "name": "cmd_prune",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L262-L281",
      "signature": "def cmd_prune(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6225cef5f314cc66df73c6109c6ac66f5f67050458623c888acfe4936d77d038",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "name": "cmd_set_evidence",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L209-L236",
      "signature": "def cmd_set_evidence(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "94ed63505fd264b237f77088b3267e2580a8716ba20889fc818298685de4fcd7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_set_status",
      "name": "cmd_set_status",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L198-L206",
      "signature": "def cmd_set_status(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe381dcb013ec115ba63aa05fe99e1564ba121ce166f0d53b71f2b8b98fd2e89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_status",
      "name": "cmd_status",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L429-L455",
      "signature": "def cmd_status(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d921966fbfb5abf097649586fcf60580bffe923da2868c226524a1b62d08674e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_status.render",
      "name": "render",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L444-L451",
      "signature": "def render(nid, prefix=\"\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "444e29878128f8f361877b26ae509781cc0da4f6b615d980c52c991f5c66f7ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#cmd_validate",
      "name": "cmd_validate",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L458-L482",
      "signature": "def cmd_validate(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebba161447225a55f3e32cf4d40a49ec604be46c959d6e0c8633fd8acbb86942",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arbor/scripts/tree.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/arbor/scripts/tree.py",
      "span": "L558-L560",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c33e12b3dccc8fafba6b3533faac9d1132b8745396fea808b7abb3f1661784fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arboreto/scripts/basic_grn_inference.py",
      "name": "basic_grn_inference.py",
      "kind": "file",
      "path": "skills/arboreto/scripts/basic_grn_inference.py",
      "span": "L1-L108",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4e184a0411ec6a81719591092db29dd51beb43b9b0639eae669d565cdb6d3ddb",
      "chars": 3318,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/arboreto/scripts/basic_grn_inference.py#run_grn_inference",
      "name": "run_grn_inference",
      "kind": "function",
      "path": "skills/arboreto/scripts/basic_grn_inference.py",
      "span": "L25-L66",
      "signature": "def run_grn_inference(expression_file, output_file, tf_file=None, seed=777, limit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1549b68de6a1bea715807fb6f0449474c4d11180cc1ee21d0cb4fa58cde9b10d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/autoskill.py",
      "name": "autoskill.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/autoskill.py",
      "span": "L1-L36",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "324c7fec82fcffa73f61f2646e9b47b3500b1788abd22dbc48e99247baa23e44",
      "chars": 1152,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/autoskill.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/autoskill/scripts/autoskill.py",
      "span": "L13-L31",
      "signature": "def main(argv=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bd46c0550fba6e29b767638be40a976f9114c5139f12f24bd55054647dfcf5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/backends.py",
      "name": "backends.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L1-L117",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "912f4cb41402e6b12d28dd81d847677d3720892d4452280beec8329b6cda05f8",
      "chars": 3936,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/backends.py#_is_loopback",
      "name": "_is_loopback",
      "kind": "function",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L9-L15",
      "signature": "def _is_loopback(host)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9af005823d5c30240a97e0e6f465b79945d73d93ea2d9b2e6925039e22fcdb92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/backends.py#check_remote_endpoint",
      "name": "check_remote_endpoint",
      "kind": "function",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L18-L47",
      "signature": "def check_remote_endpoint(endpoint, label)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee9d817e3029a4b80700d19bd4a58f5bbcb2526dc6c22e6cbda1daa3c0ff4bda",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "name": "ClaudeBackend",
      "kind": "class",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L50-L72",
      "signature": "class ClaudeBackend",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e7ab987c81ec9f4a83766bd44f0c587da55b0b0d5809d38c340e8494da4675b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/backends.py#ClaudeBackend.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L56-L72",
      "signature": "def __call__(self, prompt)",
      "exported": false,
      "origin": "ast",
      "body_hash": "7f985b9e20be801f40a801152c30e8881892340d419ba4bbadc3596b26e25157",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaudeBackend"
    },
    {
      "id": "skills/autoskill/scripts/backends.py#ClaudeBackend.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L51-L54",
      "signature": "def __init__(self, api_key, model, client=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "277f34c0b742054b176a1a2310b923fc8ac071e5f30821589905c60babb248b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaudeBackend"
    },
    {
      "id": "skills/autoskill/scripts/backends.py#LocalBackend",
      "name": "LocalBackend",
      "kind": "class",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L75-L91",
      "signature": "class LocalBackend",
      "exported": true,
      "origin": "ast",
      "body_hash": "b53cc457e1b22d90b3af9effd4808a925d825ee06e648943a3453cd7d35f897c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/backends.py#LocalBackend.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L81-L91",
      "signature": "def __call__(self, prompt)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2125336e63cc3a7c1bf367e457c515423286c1ab36a831a48091082cea5c1595",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalBackend"
    },
    {
      "id": "skills/autoskill/scripts/backends.py#LocalBackend.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L76-L79",
      "signature": "def __init__(self, endpoint, model, client=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e120b46104cf5aa07562494c17f28c7540903b318fcf5a5eb624e39aa291b54e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalBackend"
    },
    {
      "id": "skills/autoskill/scripts/backends.py#make_backend",
      "name": "make_backend",
      "kind": "function",
      "path": "skills/autoskill/scripts/backends.py",
      "span": "L94-L116",
      "signature": "def make_backend(config)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a01599939ab00ace2ad72f87604151385155b4dba947ec40959d94f797e3a5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/cluster.py",
      "name": "cluster.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/cluster.py",
      "span": "L1-L55",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "64197a28649734e72ab3f2430afe092595f2214bbc0b4087aac415f2fe2b8024",
      "chars": 1723,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/cluster.py#cluster_sessions",
      "name": "cluster_sessions",
      "kind": "function",
      "path": "skills/autoskill/scripts/cluster.py",
      "span": "L35-L54",
      "signature": "def cluster_sessions(sessions, min_cluster_size)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c620fca669ebaf1ac5ff296c174fc340998e0a433c59577899ab4b8bb872ac2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "name": "segment_sessions",
      "kind": "function",
      "path": "skills/autoskill/scripts/cluster.py",
      "span": "L4-L32",
      "signature": "def segment_sessions(events, idle_gap_seconds, min_session_seconds)",
      "exported": true,
      "origin": "ast",
      "body_hash": "43b9cebe135f86dc15016e1e29b11974ea4ed92f81c830d5c2fbb1bfe3cbe07b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/doctor.py",
      "name": "doctor.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/doctor.py",
      "span": "L1-L109",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1c450c00cdd5aeca5b1f8995710a584987747a094da58aafed5a6c57262461b2",
      "chars": 3501,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/doctor.py#_format_report",
      "name": "_format_report",
      "kind": "function",
      "path": "skills/autoskill/scripts/doctor.py",
      "span": "L67-L72",
      "signature": "def _format_report(result: dict) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "47916be13968e9563761515bfa37a14bc26f660a12273567f661039c873cd14e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/doctor.py#check",
      "name": "check",
      "kind": "function",
      "path": "skills/autoskill/scripts/doctor.py",
      "span": "L47-L64",
      "signature": "def check(config, *, skills_dir, screenpipe_probe, llm_probe)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a96e356f514b317e4cccade9b93a4abea30e0df0c2d8f706764a63a814da7ff9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/doctor.py#default_llm_probe",
      "name": "default_llm_probe",
      "kind": "function",
      "path": "skills/autoskill/scripts/doctor.py",
      "span": "L25-L44",
      "signature": "def default_llm_probe(config)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7112f83e78c56ebcef87d297d526d8b085dade1f6fcc6d96d5a2a8f835dccd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/doctor.py#default_screenpipe_probe",
      "name": "default_screenpipe_probe",
      "kind": "function",
      "path": "skills/autoskill/scripts/doctor.py",
      "span": "L11-L22",
      "signature": "def default_screenpipe_probe(config)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ed6e9029c2a97abb96faf562835546b2a47d1bc2e7e4c96c622868dd5a454cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/doctor.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/autoskill/scripts/doctor.py",
      "span": "L75-L104",
      "signature": "def main(argv=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d40f38cd2e28f8c8a2374b32ee90165e6561a2c9a9661e2d316efc5c6e0664b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/fetch_window.py",
      "name": "fetch_window.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/fetch_window.py",
      "span": "L1-L34",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6a0501d36e82665fe728a37ae49017fb9584703fd9f2fa6871f3921f559ca0ef",
      "chars": 1172,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "name": "fetch_window",
      "kind": "function",
      "path": "skills/autoskill/scripts/fetch_window.py",
      "span": "L4-L33",
      "signature": "def fetch_window(client, start_time, end_time, page_size=50, token=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c205d2b7ad1d38d9094e2a53de55c7d08d22f8a0372601c01adb4c51a3cac54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/match_skills.py",
      "name": "match_skills.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/match_skills.py",
      "span": "L1-L47",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f8f36a013d570adfcbdeeefca4612cbce25127ed4a2d1426ec478eb600c988dd",
      "chars": 1316,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/match_skills.py#_cosine",
      "name": "_cosine",
      "kind": "function",
      "path": "skills/autoskill/scripts/match_skills.py",
      "span": "L29-L35",
      "signature": "def _cosine(a, b)",
      "exported": false,
      "origin": "ast",
      "body_hash": "895154e8e7f115af00d23fe9c65e1de9dcbb5bf0005d8d4aaf38b426ceb7bab1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/match_skills.py#_parse_frontmatter",
      "name": "_parse_frontmatter",
      "kind": "function",
      "path": "skills/autoskill/scripts/match_skills.py",
      "span": "L5-L16",
      "signature": "def _parse_frontmatter(content: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "00334bdf8b46b2f44eb8acfd7471232c6331dd414cefe841088012510beabc3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "name": "load_skill_descriptions",
      "kind": "function",
      "path": "skills/autoskill/scripts/match_skills.py",
      "span": "L19-L26",
      "signature": "def load_skill_descriptions(skills_dir)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e39d82c1519d4437011439efb5cdb2180a2c3344e7323722bbfab5101a2ca56c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "name": "top_k_matches",
      "kind": "function",
      "path": "skills/autoskill/scripts/match_skills.py",
      "span": "L38-L46",
      "signature": "def top_k_matches(query, skills, embedder, k)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f160a2c6c290fe4e6631651484784567fe016534019b2400e44100e311a167f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/promote.py",
      "name": "promote.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/promote.py",
      "span": "L1-L59",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "aa975bfbdc7c64c1989445627382bd4f7dfd79ab289d75d2997de67ad8ce7ba7",
      "chars": 1559,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/promote.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/autoskill/scripts/promote.py",
      "span": "L35-L54",
      "signature": "def main(argv=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "79c704b9c433f051ebefc382bf992b02b237c8f432abc0f5f6fccc4457b233e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/promote.py#promote",
      "name": "promote",
      "kind": "function",
      "path": "skills/autoskill/scripts/promote.py",
      "span": "L14-L32",
      "signature": "def promote(proposed_path, skills_dir, name)",
      "exported": true,
      "origin": "ast",
      "body_hash": "78a7e87510b0738d58a370c9040f26953b049e0f56d92cbee5018a324e8f72ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/promote.py#PromoteError",
      "name": "PromoteError",
      "kind": "class",
      "path": "skills/autoskill/scripts/promote.py",
      "span": "L7-L8",
      "signature": "class PromoteError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f7300fa4b81de41860241fb5355ade293ca08f6b7bbd06c3e31c58420371d87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/redact.py",
      "name": "redact.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/redact.py",
      "span": "L1-L41",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "660e728af1de713399d7e91311a43ab5e6b7ba3e90a6ac97a177468f3df2d140",
      "chars": 1634,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/redact.py#redact",
      "name": "redact",
      "kind": "function",
      "path": "skills/autoskill/scripts/redact.py",
      "span": "L37-L40",
      "signature": "def redact(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c60a6882c6ecab27c65420a98346411821e811f4710f21b8d4bd88f937a7c04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py",
      "name": "run.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L1-L195",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7c16e2a5ddf4aeac52a143d54bfa16b5b4a6f9e897c296ae3f1092cd0dcaff46",
      "chars": 7363,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#_cluster_query",
      "name": "_cluster_query",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L26-L30",
      "signature": "def _cluster_query(cluster: dict) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b05ad9f76131762aa07ee0eb3794f8bb2049218d44b51cceb978ed1abfb1be15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#_default_now",
      "name": "_default_now",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L22-L23",
      "signature": "def _default_now() -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "58ea6f10a5df02b192b4041f0dcd937251d69658cb91347c8f30f6c085c02a7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#_write_plan",
      "name": "_write_plan",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L33-L44",
      "signature": "def _write_plan(proposed_path: Path, clusters: list[dict]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "60e48e12e01c599ac190392da0ff7e7f94cdf93a288b026f74aa0e7818fb255e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#_write_report",
      "name": "_write_report",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L47-L65",
      "signature": "def _write_report(proposed_path: Path, results: list[dict]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "81c21677fcaba2b354190e44d9d5a3b280acdc084533ee423f98899d8c99b5b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L135-L190",
      "signature": "def main(argv=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bad4d913fb31517c1944290574f01ebc7ebd2b0417a395cca8d0a781c8e1e20b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#main.embedder",
      "name": "embedder",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L179-L180",
      "signature": "def embedder(text: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "947f88d786546bf9a8912a122a8e8dd8484d6f384c52f3b7cd3dd26d52b64516",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L68-L132",
      "signature": "def run(config, *, start_time, end_time, out_dir, screenpipe_client, backend, embedder, skills_dir, screenpipe_token=None, now=None, dry_run=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "023a08cac17ee672ee7dcdffc25b6c32e60662050127a8d6b838d28dac57a384",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/run.py#ScreenpipeUnreachable",
      "name": "ScreenpipeUnreachable",
      "kind": "class",
      "path": "skills/autoskill/scripts/run.py",
      "span": "L13-L19",
      "signature": "class ScreenpipeUnreachable(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f313fb16043f5af874b5822c8f82ef4977728da0cf92c24fab210f11e777e6d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/synthesize.py",
      "name": "synthesize.py",
      "kind": "file",
      "path": "skills/autoskill/scripts/synthesize.py",
      "span": "L1-L73",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7bea2dc611241fd8be338fb84ae956296f449b59e2d5a15fae7bc76248505eb0",
      "chars": 2378,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/synthesize.py#_build_prompt",
      "name": "_build_prompt",
      "kind": "function",
      "path": "skills/autoskill/scripts/synthesize.py",
      "span": "L11-L38",
      "signature": "def _build_prompt(cluster, top_k_skills)",
      "exported": false,
      "origin": "ast",
      "body_hash": "abe8c5baca7208e3c83279574878333e3a71056bb2e6230103b94511601f87b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/synthesize.py#_extract_json",
      "name": "_extract_json",
      "kind": "function",
      "path": "skills/autoskill/scripts/synthesize.py",
      "span": "L41-L54",
      "signature": "def _extract_json(text: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "e478208740ada958a03078ede25a496ccef677a2f4a467660fbfc04a1ecf3360",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/synthesize.py#SynthesisError",
      "name": "SynthesisError",
      "kind": "class",
      "path": "skills/autoskill/scripts/synthesize.py",
      "span": "L7-L8",
      "signature": "class SynthesisError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7af3567655a94fe8354418929c65ac6816b9d74ab8308cf232bd8ada96071e67",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/autoskill/scripts/synthesize.py#synthesize",
      "name": "synthesize",
      "kind": "function",
      "path": "skills/autoskill/scripts/synthesize.py",
      "span": "L57-L72",
      "signature": "def synthesize(cluster, top_k_skills, backend)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f2a9ef25e8bfc0f4b7c5807bf9963c563eb592c4bdd8710f1d4b150ba22b820",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bids/scripts/update_schema.py",
      "name": "update_schema.py",
      "kind": "file",
      "path": "skills/bids/scripts/update_schema.py",
      "span": "L1-L90",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3a17814d4214784e4f984017325305e25f54e6caecf8068707ea01c46228f3fa",
      "chars": 2631,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bids/scripts/update_schema.py#fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/bids/scripts/update_schema.py",
      "span": "L31-L36",
      "signature": "def fetch(url)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8553390e9f67180a717db42d53abc39b3ab27f57bb71217ecc6c0e1e4b85ebde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bids/scripts/update_schema.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bids/scripts/update_schema.py",
      "span": "L67-L85",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f842849c1c1a4a5d5bc7ee46a21f7527a81d25b947e3b0027b8113a5a9d72ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bids/scripts/update_schema.py#update_beps",
      "name": "update_beps",
      "kind": "function",
      "path": "skills/bids/scripts/update_schema.py",
      "span": "L56-L64",
      "signature": "def update_beps()",
      "exported": true,
      "origin": "ast",
      "body_hash": "7dafb3338fbb52d7818a9cdb0c6c8b62d8c15f34f8bcce86c3da03d93b846f7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bids/scripts/update_schema.py#update_schema",
      "name": "update_schema",
      "kind": "function",
      "path": "skills/bids/scripts/update_schema.py",
      "span": "L39-L53",
      "signature": "def update_schema(url)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8928a12e76ad93c3aa2f0835cefc3159c613d922b58d54883b1120e43f30acf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py",
      "name": "batch_id_converter.py",
      "kind": "file",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L1-L348",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "488b3b95a7b43e5cd97ebd8ccead0be81364efadde7b535bb387ccf28d9cfe4f",
      "chars": 10860,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#batch_convert",
      "name": "batch_convert",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L94-L161",
      "signature": "def batch_convert(ids, from_db, to_db, chunk_size=100, delay=0.5)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbfab2e841a5663e42d399631f9b8511f9851140560efb3d2ca9005f506247a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#list_common_databases",
      "name": "list_common_databases",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L241-L254",
      "signature": "def list_common_databases()",
      "exported": true,
      "origin": "ast",
      "body_hash": "95b2349ff635146062acd72deabd09dd5f2e922e6e38b4d2d6615c02930c6e3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L257-L343",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "79d1fe26f910a0065f0b42443d77c1f05083745bb07984f50f23afbdcd692702",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#normalize_database_code",
      "name": "normalize_database_code",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L63-L75",
      "signature": "def normalize_database_code(code)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5467ca30c407320b55e1b0bee9b3ae60cf92b3751b3319df89264e158985d434",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#print_mapping_summary",
      "name": "print_mapping_summary",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L202-L238",
      "signature": "def print_mapping_summary(mapping, from_db, to_db)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6329fbecf5c50f8dbabdc54db6ba86d1fa66b03e5634ca06c7d02ffc7b01c7bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#read_ids_from_file",
      "name": "read_ids_from_file",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L78-L91",
      "signature": "def read_ids_from_file(filename)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7053427eb8d8757229f2c7cdc711c91ba8f5ab5d228a8af78ef17e4ae685673",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#save_failed_ids",
      "name": "save_failed_ids",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L188-L199",
      "signature": "def save_failed_ids(failed_ids, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b309e93c337a60271ecbe5a560b19f5cf9e22b233a2a4ba933403acd064c07b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/batch_id_converter.py#save_mapping_csv",
      "name": "save_mapping_csv",
      "kind": "function",
      "path": "skills/bioservices/scripts/batch_id_converter.py",
      "span": "L164-L185",
      "signature": "def save_mapping_csv(mapping, output_file, from_db, to_db)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f7958593fe21d33d8f362beb3682073e5df2b9c39fe400a9d9c40e9aa45109b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py",
      "name": "compound_cross_reference.py",
      "kind": "file",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L1-L388",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "73654c4838d136d88b189718f67e08b30a72249ee779b4e57bd62a6cab316f32",
      "chars": 11741,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#get_chebi_info",
      "name": "get_chebi_info",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L179-L226",
      "signature": "def get_chebi_info(chebi_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3241fe324f8b091ac24c2da6e1e4d78b6f1aa84375794543e31c82077b3d1b35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#get_chembl_id",
      "name": "get_chembl_id",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L154-L176",
      "signature": "def get_chembl_id(kegg_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fdc74157c5c264fc09ab010a10c47dc84cc1348da9ccc540ba6bdab48203d367",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#get_chembl_info",
      "name": "get_chembl_info",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L229-L284",
      "signature": "def get_chembl_info(chembl_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "911374af85192a0cf7b9513ac528791f10fc9db979375406e51f1bea98e7b53c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#get_kegg_info",
      "name": "get_kegg_info",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L66-L151",
      "signature": "def get_kegg_info(kegg, kegg_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "692fbe406016504ddf1fc4fc1520f8fa7b20decc0354b16ef7ac4bbba97575a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L324-L383",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6eeb2d7359c66a6150dbd0c19911c90e259076f8d5f25d37cfee343ccaf0215",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#save_results",
      "name": "save_results",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L287-L321",
      "signature": "def save_results(compound_name, kegg_info, chembl_id, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a19624c2f45533e32fc6b506234b63f6ceafad6bad3f7b03149f72d352dec3af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/compound_cross_reference.py#search_kegg_compound",
      "name": "search_kegg_compound",
      "kind": "function",
      "path": "skills/bioservices/scripts/compound_cross_reference.py",
      "span": "L26-L63",
      "signature": "def search_kegg_compound(compound_name)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0144e680479ac9739cca595a808628b5d61df7f05ebb502c0e5bcf40072167c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py",
      "name": "pathway_analysis.py",
      "kind": "file",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L1-L310",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "59ed88cbddc01a3c1fab7c1caf04349482c338b0b71d537bae189149a4e50b36",
      "chars": 9529,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#analyze_all_pathways",
      "name": "analyze_all_pathways",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L89-L107",
      "signature": "def analyze_all_pathways(kegg, pathway_ids, limit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b71bb30a37e5407b3aa37b9627467b227d15a9cadf4f23079a9985b706697dbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#analyze_pathway",
      "name": "analyze_pathway",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L46-L86",
      "signature": "def analyze_pathway(kegg, pathway_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5db6e33875f4a2940c26e55e9c9bb159f7f7bf0abcd59011d2cfc73c6e7f1dfd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#get_all_pathways",
      "name": "get_all_pathways",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L34-L43",
      "signature": "def get_all_pathways(kegg, organism)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b856fd8aad35b4bc0dc8f1eb0a60dec77414c8f471d9102c334e9aa785e98fdb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L237-L305",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "cddc6ce7bcd6ee992dab921107efa2d1edf417fab97f7caad18cda35e0a0fdbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#print_statistics",
      "name": "print_statistics",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L195-L234",
      "signature": "def print_statistics(results)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15e8d66dfca29d673fdc3d0caba02044e29c89e7810a96c666a5f78a5c09056f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#save_detailed_pathway_info",
      "name": "save_detailed_pathway_info",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L169-L192",
      "signature": "def save_detailed_pathway_info(results, output_dir)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f2010c178362e71535cacbf4a1d235aa8b1d5e98dd1833a02e2ac142976d7e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#save_interactions_sif",
      "name": "save_interactions_sif",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L150-L166",
      "signature": "def save_interactions_sif(results, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8484206af579e5dd54c1edfdb688c7e1fd5ea6c96e24fc8b67dc78b760e696ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/pathway_analysis.py#save_pathway_summary",
      "name": "save_pathway_summary",
      "kind": "function",
      "path": "skills/bioservices/scripts/pathway_analysis.py",
      "span": "L110-L147",
      "signature": "def save_pathway_summary(results, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aba8758a995e6d7834725ab3664bda1ac9d6dc493f28c7f181197724816e7659",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "name": "protein_analysis_workflow.py",
      "kind": "file",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L1-L442",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "820ca720822b79397949d6a53cf989c69c9dacb09a983be40dd16a0317228dd5",
      "chars": 13389,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#discover_pathways",
      "name": "discover_pathways",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L208-L262",
      "signature": "def discover_pathways(uniprot, kegg, uniprot_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfd2ff0709c1c1ef4e7084bdc8818e2b02c1005bd222422d9c181c2588ef2178",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#find_interactions",
      "name": "find_interactions",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L265-L312",
      "signature": "def find_interactions(protein_query)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9a522bd83f966f85376a46516698bdde2e88c140f6c28baa7c7f16394c22786",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#get_go_annotations",
      "name": "get_go_annotations",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L315-L369",
      "signature": "def get_go_annotations(uniprot_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "63ae3969505f937f6d57f31362ce6c42c1df7ee979e2deb876d323bf74a3e4ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L372-L437",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f65936baf43ed0ca076ac29ff2b7faf3b51f20520311e1dff400c42673ee5f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#resolve_ncbi_email",
      "name": "resolve_ncbi_email",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L43-L48",
      "signature": "def resolve_ncbi_email(cli_email=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a119121e2a52b69534fd2b38c3f385406c7b5621c35dc8220da8e44e8b3add71",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#retrieve_sequence",
      "name": "retrieve_sequence",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L108-L135",
      "signature": "def retrieve_sequence(uniprot, uniprot_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca407f9294f214d3ba789e68cdbf20a9615966450355443625ebfade7f2864d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#run_blast",
      "name": "run_blast",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L138-L205",
      "signature": "def run_blast(sequence, email, skip=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3998f14d1ff16cb1e507e712502de717040d2a36f2a2ab5714f6211b4bece816",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bioservices/scripts/protein_analysis_workflow.py#search_protein",
      "name": "search_protein",
      "kind": "function",
      "path": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "span": "L51-L105",
      "signature": "def search_protein(query)",
      "exported": true,
      "origin": "ast",
      "body_hash": "31314075bdeba29f6a0de8eb766d1cf0fd48b2dc44000bd6727ecf85926c19d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "name": "build_counts_matrix.py",
      "kind": "file",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L1-L204",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17e7de8ad99847fc6b87441e446f302679cadc138d31252dffabf9e43cd65553",
      "chars": 8079,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#_clean_sample_name",
      "name": "_clean_sample_name",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L41-L53",
      "signature": "def _clean_sample_name(name: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "5fe3d25a255e6e2222b2901e63bfadd15dab03dfdb9640452be2f240103485af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_featurecounts",
      "name": "build_from_featurecounts",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L121-L136",
      "signature": "def build_from_featurecounts(counts_file: Path) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "355e085553a29456f2f4cac34fe4454623680658ce489d5e5673ee8f7b1741fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_salmon",
      "name": "build_from_salmon",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L56-L98",
      "signature": "def build_from_salmon(quant_dir: Path, tx2gene: Path) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f43c4e18bdce799b4413ce2173a5a3835aa47522efbfefa74c60997bbd174b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_star",
      "name": "build_from_star",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L101-L118",
      "signature": "def build_from_star(quant_dir: Path, strandedness: str) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "15526cd92c5ad9fac579c7585504b4f676b89e226b59a9e638e78b0a01ed4abe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L165-L199",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4498b28bc4f5d42bf70ebcadfe9f09d0e82819a5bc9bc22fa744ad9849fc3fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#write_outputs",
      "name": "write_outputs",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "span": "L139-L162",
      "signature": "def write_outputs(counts: pd.DataFrame, output_dir: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9e490b91c8cc8a3eac0ae4c6c6e6cd13b1ed6bb3af211218556b9e8c7a043ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "name": "validate_samplesheet.py",
      "kind": "file",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L1-L207",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a14ccabbea68b34741facf133d5fba3055f0bb86978918f61a7571c297de1ab6",
      "chars": 8130,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#_is_remote",
      "name": "_is_remote",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L62-L63",
      "signature": "def _is_remote(path: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "ce939cf99415fd7ec20c90d6368f092219cea0e79e05fc123a8772161e3c66e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L182-L202",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22bc4178e6133ecd48c4e3690a15249ceaadffa4bb4ed4be42593af5ab242c81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "name": "Report",
      "kind": "class",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L36-L59",
      "signature": "class Report",
      "exported": true,
      "origin": "ast",
      "body_hash": "14c88a2cb7528c493200cee23d06b226a9688108c784602dbefd92fc5eca94bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L39-L41",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "82be5dfcfc61778686ebe4628ef7c04df07ad5612845bece1eccc9c0cf4a2bd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.error",
      "name": "error",
      "kind": "method",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L43-L44",
      "signature": "def error(self, msg: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf4a5262c518bb5bead40801fae541848e63d8bc2c594221f0d2ee89100e1390",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.summarize",
      "name": "summarize",
      "kind": "method",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L49-L59",
      "signature": "def summarize(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "da0de9e5715fc5a2dfc01a3402dac8540dfd52abc044f3f2eb665a8773651d25",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.warn",
      "name": "warn",
      "kind": "method",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L46-L47",
      "signature": "def warn(self, msg: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18d0447bb97fceda64141624d22d7da51d92b7de8059cef6ba92b56a01efe9fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_metadata",
      "name": "validate_metadata",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L133-L179",
      "signature": "def validate_metadata(meta_path: Path, sheet: pd.DataFrame | None, condition_col: str, min_rep: int, rep: Report) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d949265d737cee7ab696e4ea97f543187733b3c0d7ba042c2012d0b6dc572a51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_samplesheet",
      "name": "validate_samplesheet",
      "kind": "function",
      "path": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "span": "L66-L130",
      "signature": "def validate_samplesheet(path: Path, check_files: bool, rep: Report) -> pd.DataFrame | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b69273cb3feae34b7fad73dc2eb40eab118f37dbfa5098a567ea689953f8faf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L1-L332",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "87540160163671b972c2fccb4d0a42db3cca2603c664d26d5da3ca5dbc7dfdd2",
      "chars": 10906,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#_ascii_fold",
      "name": "_ascii_fold",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L250-L253",
      "signature": "def _ascii_fold(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "0aa88757f6dfadf323d774c2cdffda9e6a38a9dcf91a8bb63b322020a3a7f7c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#_is_outer_braced",
      "name": "_is_outer_braced",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L45-L59",
      "signature": "def _is_outer_braced(value: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "44a8d23f7a16d0291f93feb96f135e7363b85c9330de8bab3e5c06394c05038f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#_looks_like_initials",
      "name": "_looks_like_initials",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L267-L270",
      "signature": "def _looks_like_initials(word: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "42b0001f8cb7505a6f383d67f11e169394413477e75a942669c763d40ba1f203",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#_split_top_level",
      "name": "_split_top_level",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L72-L94",
      "signature": "def _split_top_level(body: str) -> List[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "29fb5a3a1e0acae17052318e52ffb5985bb44360e8072be34a737d7c4d9a2757",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#_unwrap",
      "name": "_unwrap",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L62-L69",
      "signature": "def _unwrap(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b706b6647c5224c6742ee81263949e453174d36a4bf566ea4c57ac0a8124207a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#citation_key",
      "name": "citation_key",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L273-L306",
      "signature": "def citation_key(authors: str, year: str, title: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "46b6abfd439d27a5f432a455713a0a51d3c448a48f42f4e3ccf18a922a8ffe3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#format_pages",
      "name": "format_pages",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L224-L247",
      "signature": "def format_pages(raw: Optional[str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "00c105e69efa33553b52145a22d1d452a38ffcf2771304a23507bb8646707d36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#parse_bibtex",
      "name": "parse_bibtex",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L97-L182",
      "signature": "def parse_bibtex(content: str) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef53693e99c6c4a4fd84d81393e860d89119ca654cbf4e40f7b039f1ddba9934",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#parse_bibtex_file",
      "name": "parse_bibtex_file",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L185-L192",
      "signature": "def parse_bibtex_file(filepath: str) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "beae32c58a044881ae0046bdf4d0cee037326de302ddf6d7a01ffdabae6beedf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#protect_title",
      "name": "protect_title",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L316-L331",
      "signature": "def protect_title(title: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc516fde10367471ff60a94ea801e3bdc3d3929382941e17db5d39d2b34dd59f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#render_entry",
      "name": "render_entry",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L195-L218",
      "signature": "def render_entry(entry_type: str, key: str, fields: Dict[str, str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "20bbe248a845c54df8282784b682bdbc7588700f3906dd544811c44f5b38d79f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/_common.py#sanitize_key",
      "name": "sanitize_key",
      "kind": "function",
      "path": "skills/citation-management/scripts/_common.py",
      "span": "L256-L264",
      "signature": "def sanitize_key(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e76f84d2044ea9591b9c6f6cb8e85da51a94431a54b0cd627ed519d42867f0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/doi_to_bibtex.py",
      "name": "doi_to_bibtex.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/doi_to_bibtex.py",
      "span": "L1-L205",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "45dbdbc365e63c65dc7e32945186122dd1cd7cb003ca5fbe103876952b4d9171",
      "chars": 6299,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter",
      "name": "DOIConverter",
      "kind": "class",
      "path": "skills/citation-management/scripts/doi_to_bibtex.py",
      "span": "L14-L96",
      "signature": "class DOIConverter",
      "exported": true,
      "origin": "ast",
      "body_hash": "5853387bbcd7785ae0181ba006770077c19fa0b2f508f58dae60dfeb35ebffde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/doi_to_bibtex.py",
      "span": "L17-L21",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "361dbd51e0c6e4d4ca31f3daa5b61e325060e07700c983e9a703828908a6ef86",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOIConverter"
    },
    {
      "id": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.convert_multiple",
      "name": "convert_multiple",
      "kind": "method",
      "path": "skills/citation-management/scripts/doi_to_bibtex.py",
      "span": "L72-L96",
      "signature": "def convert_multiple(self, dois: List[str], delay: float = 0.5) -> List[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d031fbd656a5bb9c67861f3c5d1513ca5dfe88c0333fc89893d389df5969b239",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOIConverter"
    },
    {
      "id": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.doi_to_bibtex",
      "name": "doi_to_bibtex",
      "kind": "method",
      "path": "skills/citation-management/scripts/doi_to_bibtex.py",
      "span": "L23-L70",
      "signature": "def doi_to_bibtex(self, doi: str) -> Optional[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f719f0b477cd325336eeb3f2269ff2ca710608df09a12cfc97a1f0dc397e73ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOIConverter"
    },
    {
      "id": "skills/citation-management/scripts/doi_to_bibtex.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/doi_to_bibtex.py",
      "span": "L99-L200",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "39599a3b6cc7f5e9dd336f8a3feb90de432c51eab6591554ddbc65d607273555",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py",
      "name": "extract_metadata.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L1-L691",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d4922e47d21e38e8b414bfa9772eeac8c3df856b7179f33cd45f89ff777d4422",
      "chars": 26503,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L606-L685",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3322588e54bd4a54c6edf2a8ac91af5b7c44800cc929b2ff4c2a2052b167eaf2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "name": "MetadataExtractor",
      "kind": "class",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L27-L603",
      "signature": "class MetadataExtractor",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f6620654fa58cccba6e7a5c9224b549889fde854ef6ac2529832e0b93bb5027",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L30-L41",
      "signature": "def __init__(self, email: Optional[str] = None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "cbeb1bf924f80845ce1914021b1f72c92aed6bcfeac4c4b25721bb92e111f330",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._crossref_type_to_bibtex",
      "name": "_crossref_type_to_bibtex",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L396-L407",
      "signature": "def _crossref_type_to_bibtex(self, crossref_type: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "040254076a4ad14f7be3532295a453b8add2a18c4d8f9c7f9d51ba15cda4489e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._extract_year_crossref",
      "name": "_extract_year_crossref",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L440-L449",
      "signature": "def _extract_year_crossref(self, message: Dict) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "efae62d6eed1fd61845041f468acbdc7eb7f5b9f0fb5f0fa17723da5c719f574",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._extract_year_pubmed",
      "name": "_extract_year_pubmed",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L451-L460",
      "signature": "def _extract_year_pubmed(self, article: ET.Element) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "4e308b287a28fbe44a602708e18e120ab61ed075cc3f5e55ba7e52eaed5ddc24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._format_authors_crossref",
      "name": "_format_authors_crossref",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L409-L424",
      "signature": "def _format_authors_crossref(self, authors: List[Dict]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b88f28406b11a110036c615cef1adc98b1e4cf0d2657650af88dcf13f0eb8cb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._format_authors_pubmed",
      "name": "_format_authors_pubmed",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L426-L438",
      "signature": "def _format_authors_pubmed(self, authors: List) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6ca3067047167edec8ce4818bc74a05c699ba19bdc45ea72f3b0829ea0ade467",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._generate_citation_key",
      "name": "_generate_citation_key",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L462-L475",
      "signature": "def _generate_citation_key(self, metadata: Dict) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "098eb9e129cb53d43248e3638de074af0cf898cd539284cf7fb4f6003d3c2d5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._journal_from_arxiv_ref",
      "name": "_journal_from_arxiv_ref",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L384-L394",
      "signature": "def _journal_from_arxiv_ref(journal_ref: Optional[str]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "26c49b2fc3f902449afae93e677d16b3b964483f1627b97974461fa08e4966fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._parse_url",
      "name": "_parse_url",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L79-L105",
      "signature": "def _parse_url(self, url: str) -> Tuple[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f064577ad67e70f25e52bfe6117a7a3c2ccedc79c715ea086df94ec88b575f53",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._protect_title",
      "name": "_protect_title",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L477-L479",
      "signature": "def _protect_title(self, title: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "1c50a26d4909afabb222f418f9c219e3068b697d0086cac08f1c3b1abe0dff9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._pubmed_title",
      "name": "_pubmed_title",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L232-L243",
      "signature": "def _pubmed_title(element) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "9e8397edc36a5f9cdb111fe08a672d4fbbe2cf5e45e38f33b4a350a0dde5d477",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "name": "extract",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L542-L575",
      "signature": "def extract(self, identifier: str) -> Optional[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0081fbbca66c16c8a2de10fcb8af1f83de58028397ebf210ac01f5c12709b327",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_arxiv",
      "name": "extract_from_arxiv",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L245-L320",
      "signature": "def extract_from_arxiv(self, arxiv_id: str) -> Optional[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "840f4cd14b8087865fed7c1859620bf0e7464b431c7a10727969860ef466d193",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "name": "extract_from_doi",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L107-L157",
      "signature": "def extract_from_doi(self, doi: str) -> Optional[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "63228651a6a0c7d767b8bada468ad302b4ffdf9b34e6dcae6da64ec6aa05e109",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmcid",
      "name": "extract_from_pmcid",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L481-L505",
      "signature": "def extract_from_pmcid(self, pmcid: str) -> Optional[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e10fadbdf0e9c71f5f2e42c822b48acebf56291078be67250b99f73f2e7bf02c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "name": "extract_from_pmid",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L159-L229",
      "signature": "def extract_from_pmid(self, pmid: str) -> Optional[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a3b7353dcda183c8b22fdf72d2464562a73a34b41ba4bd067a4e0becff70ed2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_url",
      "name": "extract_from_url",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L507-L539",
      "signature": "def extract_from_url(self, url: str) -> Optional[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "589c5ab83f5f3adfba2b59184b23e6efc004f73ddedaa93c82641da5f4f3dd04",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_record",
      "name": "extract_record",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L577-L603",
      "signature": "def extract_record(self, identifier: str) -> Optional[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7cd8050f278dc6e39ec747169c861d9661fbfe0e03f6884426dea8188394f50",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.identify_type",
      "name": "identify_type",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L43-L77",
      "signature": "def identify_type(self, identifier: str) -> Tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "77a0d150a8df2e3127a79455bf1f11d85615c2f9830ad982d3892e10e4afb941",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "name": "metadata_to_bibtex",
      "kind": "method",
      "path": "skills/citation-management/scripts/extract_metadata.py",
      "span": "L322-L381",
      "signature": "def metadata_to_bibtex(self, metadata: Dict, citation_key: Optional[str] = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ae22d63cff679c1a662d39a92f44150d62380932ad5b7094821b226f9f8491e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataExtractor"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py",
      "name": "format_bibtex.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L1-L357",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cc74fdc4d5819df8db3999e59f96469cebfb353ecf406a49a5a0fc60896707cb",
      "chars": 11075,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "name": "BibTeXFormatter",
      "kind": "class",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L30-L270",
      "signature": "class BibTeXFormatter",
      "exported": true,
      "origin": "ast",
      "body_hash": "08b10d4b746311ed813825786d1a5addd22a5e1a386928e5701bd2e98d45e477",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L33-L35",
      "signature": "def __init__(self): # Standard field order for readability",
      "exported": false,
      "origin": "ast",
      "body_hash": "0e32e400f146c3923a402aa4e8dc3e123b4c05a3bc2bc92dbee78ab730a06f8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.deduplicate_entries",
      "name": "deduplicate_entries",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L102-L135",
      "signature": "def deduplicate_entries(self, entries: List[Dict]) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7695e90279c2ff9a6b278e4110e87114e771c84c4df14f6cc9d1a6bc613adb5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.fix_common_issues",
      "name": "fix_common_issues",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L61-L100",
      "signature": "def fix_common_issues(self, entry: Dict) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc502bf89978d703a5d82d4c8665758077da351fd4327b2ea7a11ac6acccdae6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_entry",
      "name": "format_entry",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L49-L59",
      "signature": "def format_entry(self, entry: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8b43af0f1c46e3d05c533659ccc96ad74c0be95a5f7dac8c270a063184f5d9e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "name": "format_file",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L202-L270",
      "signature": "def format_file(self, filepath: str, output: Optional[str] = None, deduplicate: bool = False, sort_by: Optional[str] = None, descending: bool = False, fix_issues: bool = True, rekey: bool = False) -> Optional[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a2ab6c0fe164b3c8032145d458acce388edebbf65ee3d5f8162a080420cc318",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.parse_bibtex_file",
      "name": "parse_bibtex_file",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L37-L47",
      "signature": "def parse_bibtex_file(self, filepath: str) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "50579ef8c6203518ce407c1a003caa943cc2beb54bde5ebd3503d8a12f287943",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.rekey_entries",
      "name": "rekey_entries",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L137-L166",
      "signature": "def rekey_entries(self, entries: List[Dict]) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b41e49c083b35561d2887bcae5c49b5d62c320a653b5ca21ad9d13d6b06f8213",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.sort_entries",
      "name": "sort_entries",
      "kind": "method",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L168-L200",
      "signature": "def sort_entries(self, entries: List[Dict], sort_by: str = 'key', descending: bool = False) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "930d35f2563b959ddffdd907a667b680ca396ae36b43a04abdecc8abc106512b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXFormatter"
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.sort_entries.get_sort_key",
      "name": "get_sort_key",
      "kind": "function",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L180-L198",
      "signature": "def get_sort_key(entry: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "48ef00ece4c4a727cd947e8ecd681fe6c0d766d72613ae8239bfc9c4ea4a0911",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/format_bibtex.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/format_bibtex.py",
      "span": "L273-L352",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "75132728ad0581ac7b6259f95d0c0c58c29b70a36415eb37f06122e7d9b858fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_google_scholar.py",
      "name": "search_google_scholar.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/search_google_scholar.py",
      "span": "L1-L269",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "839228bc7a9b4c3b23e4b0d5c4c13ff024db423deeec4908b13261367b19b90e",
      "chars": 8609,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher",
      "name": "GoogleScholarSearcher",
      "kind": "class",
      "path": "skills/citation-management/scripts/search_google_scholar.py",
      "span": "L32-L162",
      "signature": "class GoogleScholarSearcher",
      "exported": true,
      "origin": "ast",
      "body_hash": "8314fd43e90b5ce51068f7dee41d6f4064a25a770fa76f86188dac1fbcfa72a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_google_scholar.py",
      "span": "L35-L53",
      "signature": "def __init__(self, use_proxy: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9bdeacf2a3729a4e2f48cb12cf4e21690d7d09a3b2aaba0081e94436fa8ff026",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoogleScholarSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.metadata_to_bibtex",
      "name": "metadata_to_bibtex",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_google_scholar.py",
      "span": "L127-L162",
      "signature": "def metadata_to_bibtex(self, metadata: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8920ce7b5a94986a45a16da1d45a994ce43c0aec1ff3462de3cfd00d288f539c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoogleScholarSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.search",
      "name": "search",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_google_scholar.py",
      "span": "L55-L125",
      "signature": "def search(self, query: str, max_results: int = 50, year_start: Optional[int] = None, year_end: Optional[int] = None, sort_by: str = 'relevance') -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea26091189da4cc4a79e7050835cf5e10bf54f000dc9cb31559044ddb6393059",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoogleScholarSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_google_scholar.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/search_google_scholar.py",
      "span": "L165-L263",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "636e235ac97246c3920dcbae4eef12ace88696191dd6df2a092212d5fc53936d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py",
      "name": "search_openalex.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L1-L298",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b98f276748a121b5fdd8a6a9066f4094b85f585b64ed292710ad589df2495a3f",
      "chars": 10599,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L241-L293",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e4e4ebe423baffc15905af6cc3cf5bf4d101a54d0ca9d906d4e7adb119e290c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "name": "OpenAlexSearcher",
      "kind": "class",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L57-L238",
      "signature": "class OpenAlexSearcher",
      "exported": true,
      "origin": "ast",
      "body_hash": "44fa867359460156f4e9041855bc16e4b8a170c8a557437cf49a57add4b1db90",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L60-L65",
      "signature": "def __init__(self, email: Optional[str] = None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5d73ce00149e854dbc17b2168ea1b7af9a40713959be66dc70a5b3fc76b53fac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._abstract",
      "name": "_abstract",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L188-L197",
      "signature": "def _abstract(inverted_index: Optional[Dict]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "627370e5f8b2adf9fd51f314601e717db902f6e814668237243649fb04742e11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._normalise",
      "name": "_normalise",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L147-L185",
      "signature": "def _normalise(self, work: Dict) -> Dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "73ca39353900ffcccdeb5254460dc4c6ff944ee87dec35abe836fca0d487f503",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.metadata_to_bibtex",
      "name": "metadata_to_bibtex",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L199-L238",
      "signature": "def metadata_to_bibtex(self, metadata: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa795521d5b48ae64a3f40de512311269b476acac67148d27633bfad4c5f99aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.search",
      "name": "search",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_openalex.py",
      "span": "L67-L145",
      "signature": "def search(self, query: str, max_results: int = 50, year_start: Optional[int] = None, year_end: Optional[int] = None, work_type: Optional[str] = None, sort_by: str = 'relevance') -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d9f6924603ef6dfafd9349c2906dd309dce9d8716de852b5777723f758cf650",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py",
      "name": "search_pubmed.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L1-L420",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a01a8034775939264ffb0b5454956b15c7915babea6f1af2fd822b95e1082884",
      "chars": 13779,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L290-L414",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6247740a6000195ace09356312251b2786a2df30a3146cdbf6af3ce95331ba75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "name": "PubMedSearcher",
      "kind": "class",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L27-L287",
      "signature": "class PubMedSearcher",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7624c1e412c79cc0e5afd5bf2ddde2786ff51ce259cf51f0e0317203b81b763",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L30-L44",
      "signature": "def __init__(self, api_key: Optional[str] = None, email: Optional[str] = None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "329e436839ce235fc4e28713d212fce22ce14a941ac3a640c62ce1189465eeca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PubMedSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._element_text",
      "name": "_element_text",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L176-L185",
      "signature": "def _element_text(element: Optional[ET.Element]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "aef76fdba79977026fc20ff5bb9ee0fe4937ff812ccbd33bbf9ec3db69c50df0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PubMedSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._extract_metadata_from_xml",
      "name": "_extract_metadata_from_xml",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L187-L258",
      "signature": "def _extract_metadata_from_xml(self, article: ET.Element) -> Optional[Dict]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9e42ad8ef3574d50c85733a5177d07a622ea3e7b297f65d69fbd87a9a9b09e64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PubMedSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.fetch_metadata",
      "name": "fetch_metadata",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L119-L173",
      "signature": "def fetch_metadata(self, pmids: List[str]) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "71c66f15f7775e4d42f55cd378ea139a18da9f1ccb6bb0ebc5b89b9bc75dcc7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PubMedSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.metadata_to_bibtex",
      "name": "metadata_to_bibtex",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L260-L287",
      "signature": "def metadata_to_bibtex(self, metadata: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f87cf592f9c59af1bc0698f34ab78ca61741516fbb3a2f4ea166de10b478d21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PubMedSearcher"
    },
    {
      "id": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.search",
      "name": "search",
      "kind": "method",
      "path": "skills/citation-management/scripts/search_pubmed.py",
      "span": "L46-L117",
      "signature": "def search(self, query: str, max_results: int = 100, date_start: Optional[str] = None, date_end: Optional[str] = None, publication_types: Optional[List[str]] = None) -> List[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "88e6b2ec2a0506d1c6caaa6e0f31c1519f1a8b6dc892b15cdb19c91084928574",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PubMedSearcher"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py",
      "name": "validate_citations.py",
      "kind": "file",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L1-L689",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b20abad7a10f722a7c404adc9884bec339fc960c82373698e73e49ba2015fba5",
      "chars": 26708,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "name": "CitationValidator",
      "kind": "class",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L47-L564",
      "signature": "class CitationValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "e584f799f3ff152a3a6e54a55d0d88d823207f0386b72ec244e16af99983b12b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L50-L74",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "99c97adde884ec795978308813711a89661981b84e2e08bb8dc784c50d08a6ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator._extract_year_crossref",
      "name": "_extract_year_crossref",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L539-L547",
      "signature": "def _extract_year_crossref(self, message: Dict) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f2b831ee0361a5cc868aa3d055368a41f848611fd31d9c9686758df9541878cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator._format_authors_crossref",
      "name": "_format_authors_crossref",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L549-L564",
      "signature": "def _format_authors_crossref(self, authors: List[Dict]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b0d9ca5e89dd4981c81f362ee5481d520237ddca69baca1468727984d02bdaff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.detect_duplicates",
      "name": "detect_duplicates",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L240-L302",
      "signature": "def detect_duplicates(self, entries: List[Dict]) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "485dde37b70ffc2c650c01b051a3d648aadeca3600d8a059d325ad1d68519c58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.parse_bibtex_file",
      "name": "parse_bibtex_file",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L76-L86",
      "signature": "def parse_bibtex_file(self, filepath: str) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "53f4922945c27b3dfbb3f3f05c08e9e79f442bd76c7cf2bcd7e3f267c4ee43e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.parse_manuscript_citations",
      "name": "parse_manuscript_citations",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L304-L340",
      "signature": "def parse_manuscript_citations(self, filepath: str) -> List[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9932d841b6874f55e051d6248e417e65d9242838ca51b8daab5a8d5b1de1c1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_entry",
      "name": "validate_entry",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L88-L192",
      "signature": "def validate_entry(self, entry: Dict) -> Tuple[List[Dict], List[Dict]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "53499ceaca1401e46cc8da140f8a62ca5248cb26107f12dabc0256e81cc27fd7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "name": "validate_file",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L342-L537",
      "signature": "def validate_file(self, filepath: str, check_dois: bool = False, min_count: Optional[int] = None, venue: Optional[str] = None, manuscript_filepath: Optional[str] = None) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ace6a161773d4ef54266fab25f1590d9b3b154c4286e1cd2a02e8f6000ee651",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#CitationValidator.verify_doi",
      "name": "verify_doi",
      "kind": "method",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L194-L238",
      "signature": "def verify_doi(self, doi: str) -> Tuple[bool, Optional[Dict]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "550edd0778757b48ef938afe6aa48ed102cd194a4b04b803a02cc642e367ef7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationValidator"
    },
    {
      "id": "skills/citation-management/scripts/validate_citations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/citation-management/scripts/validate_citations.py",
      "span": "L567-L683",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e86974ce9509118cd80f0f2b95eb34cca8aadd6d82fc5e65403d3d3029fa740",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L1-L224",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a1ecaebf8ced707f2abb763a59e1702ceae05bd10e7fe72745ec5976ab7811a5",
      "chars": 7537,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#_reject_nonlocal_path",
      "name": "_reject_nonlocal_path",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L71-L76",
      "signature": "def _reject_nonlocal_path(raw: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "24dd2bd5ef9e26bfa7fbb246c06cdec22ee4f278090b6aa274afd84aa493b1c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#ensure_no_person_level_keys",
      "name": "ensure_no_person_level_keys",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L126-L139",
      "signature": "def ensure_no_person_level_keys(value: Any, location: str = \"$\") -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "718c0b93dbb73f9c91f6142349eafd7deb976921826a9df8aaaea770af4b1893",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L172-L178",
      "signature": "def finite_number(value: Any, field_name: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "857dc31224578c194e7b3a1f715ee638869bb73de473e6d0812f1d2a0a29d64b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "name": "InputError",
      "kind": "class",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L42-L43",
      "signature": "class InputError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4515ec36f2b97400fcb791f955f57be1cc873b95309b608f889da6e422fa08d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "name": "IssueLog",
      "kind": "class",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L47-L68",
      "signature": "class IssueLog",
      "exported": true,
      "origin": "ast",
      "body_hash": "39bb839f6d7d40a71dfdf5d538905d92843bf89264913f4b5e6f40e0b03a5b5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#IssueLog.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L58-L68",
      "signature": "def as_dict(self) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b672073c0b77b8c29b166a9b989f266a2e3ace0acf93d35167f1227ca26c94e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IssueLog"
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#IssueLog.ok",
      "name": "ok",
      "kind": "method",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L55-L56",
      "signature": "def ok(self) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "995f59dfa1ce61014a69ce1a1396cbf72476999166b02e42ec7d5f506ae1dd11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IssueLog"
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L112-L123",
      "signature": "def load_json_object(raw_path: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f84f61bd820d82fc45697e6269fb841251627026751a081b21e534af205ea232",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#local_input_path",
      "name": "local_input_path",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L79-L94",
      "signature": "def local_input_path(raw: str, suffixes: Iterable[str] | None = None) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "b86d959bf6399d8e452f4cb9c7abc29c9e564659e94a09686cf766cfb857d362",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#local_output_path",
      "name": "local_output_path",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L97-L109",
      "signature": "def local_output_path(raw: str, suffixes: Iterable[str] | None = None) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6996398bc54f74f2026727f385f2c0458da7d1884c77388a6a28458fc201cba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L181-L184",
      "signature": "def nonnegative_int(value: Any, field_name: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c2ab558ecf47fb68212215e88fcc634643598ba25bae2026b44c3935144a0cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#print_report",
      "name": "print_report",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L222-L223",
      "signature": "def print_report(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10bb20935abfda1c2d45a1d0efb08549b552c6d62fdd02577068f42eb0080324",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#require_list",
      "name": "require_list",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L164-L169",
      "signature": "def require_list(value: Any, field_name: str, *, maximum: int) -> list[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dee87bf7574cfcd37a9ef9dff0010a28c21b3d7d2bcb22a575edebbf681eaab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "name": "require_nonempty_text",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L153-L161",
      "signature": "def require_nonempty_text( value: Any, field_name: str, *, max_length: int = MAX_TEXT_LENGTH ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee96de03f929c2341b87f530f499547b803a032c362ecd3e5989e2b1109f82ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "name": "source_ids",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L187-L202",
      "signature": "def source_ids(document: dict[str, Any]) -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6a4b08409ee90f6cdf2070b0ca9f10aca77924ad29120019b5e96eafbfdb7ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "name": "validate_references",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L205-L219",
      "signature": "def validate_references( references: Any, known_sources: set[str], field_name: str ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ff566bf69e5d0120b9fcc259aafd257a8a44a4a273494ea10eb5979325d98d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#write_json",
      "name": "write_json",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L142-L145",
      "signature": "def write_json(raw_path: str, payload: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c16071bea22a12aa43e30853fa349634331ce324c600ad737fa2d38a357d1cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/_common.py#write_text",
      "name": "write_text",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/_common.py",
      "span": "L148-L150",
      "signature": "def write_text(raw_path: str, text: str, suffixes: Iterable[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a514b7a016ab2eb35af7f4eeafb8fedcea7a60fbcf57f8ce53dc8c1ffc2ec83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "name": "cohort_table_generator.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "span": "L1-L289",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "56687bf5b93b182ac2eee57cb3aa259d930eb83ad084e4e5b2810cb53187bbbf",
      "chars": 11388,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_build_table",
      "name": "_build_table",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "span": "L31-L211",
      "signature": "def _build_table( document: dict[str, Any], minimum: int ) -> tuple[IssueLog, list[str], list[list[str]], list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bc7f2c02e334cec3a5676f64aac25fd0ab70bffcd2d0ff94ae0d9ffddc1fff53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_format_count",
      "name": "_format_count",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "span": "L26-L28",
      "signature": "def _format_count(count: int, denominator: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "03b25d59085ef5f56888d8965ba885efd7eebf11aa13ec60528ef8a84a99db39",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_to_csv",
      "name": "_to_csv",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "span": "L231-L240",
      "signature": "def _to_csv(headers: list[str], rows: list[list[str]], notes: list[str]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "e27dabbcbe54cfeae88958882248fb0d808f36a267f755f6b82a5fb2f3f3bab5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_to_markdown",
      "name": "_to_markdown",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "span": "L214-L228",
      "signature": "def _to_markdown( title: str, headers: list[str], rows: list[list[str]], notes: list[str] ) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "288ffe42fb3234a9cf6050612ba1808cdc5654152939f67be6c636307c0f124b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "span": "L243-L284",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "738287ce45df1f46db657d626aeba140b4d82fbf08fc1e8ecd8e7f487327d062",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "name": "decision_logic_traceability.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L1-L314",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "98ed831fbec12f220a051aa218e47822d638ac4230f5f9d85f8c1c5c2ec4d32c",
      "chars": 10929,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_csv_text",
      "name": "_csv_text",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L255-L276",
      "signature": "def _csv_text(rows: list[dict[str, str]]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f6d1ec49685d5a165b573ffe62676efdcb718d028c2580b3067eb9a65c0bb7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle",
      "name": "_has_cycle",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L69-L86",
      "signature": "def _has_cycle(edges: dict[str, list[str]]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "2a2cf44291c0e78710d0af344a470bbdb34f22f5352e6771f4941d0975372c34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle.visit",
      "name": "visit",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L73-L84",
      "signature": "def visit(node: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "da38f426115d157f84f66a963131041da3b9b2e570e5b32ec199b5e9832d0f51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_safe_csv",
      "name": "_safe_csv",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L62-L66",
      "signature": "def _safe_csv(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b151697c3481590ac22bfe51616be85f3274dc69b471ff8e8e0279dccb8e31a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L279-L309",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b73686e297716c5175ed2456019d9b193527f9ce676e78800cca0c49d8dae9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "name": "validate_matrix",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "span": "L89-L252",
      "signature": "def validate_matrix( document: dict[str, Any] ) -> tuple[IssueLog, list[dict[str, str]]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8062afff7f8c555ea7a64ebbccfd427af1cf2098ac7bb135468584fbc6c55ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "name": "deidentification_checklist.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "span": "L1-L261",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4e55ed478e05b8c2544c99bced0e40b311e780d803f71650f62591ad63664e31",
      "chars": 10034,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/deidentification_checklist.py#_find_placeholders",
      "name": "_find_placeholders",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "span": "L52-L62",
      "signature": "def _find_placeholders(value: Any, location: str = \"$\") -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "dfaf5cad3bb19112f8e5b452f288e8d618e2fea269f466b4b7cced8b8b6c9289",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "name": "check_documentation",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "span": "L65-L231",
      "signature": "def check_documentation(document: dict[str, Any]) -> tuple[IssueLog, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e2b0f2e26cedff304e8b86bfa2715b2c93fbcb0e16e448c7ab811a37f36c49f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/deidentification_checklist.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "span": "L234-L256",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5966bda000b5f356dc16540ffd203fe8cacdafeac4f65d56a4f067e37beaf40a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "name": "evidence_profile_check.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "span": "L1-L260",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b86396f1ec4416d84e4c5ab33fa58f7264517ea579db81efb3bb0d29a6e8e0b4",
      "chars": 10534,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_find_placeholders",
      "name": "_find_placeholders",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "span": "L52-L62",
      "signature": "def _find_placeholders(value: Any, location: str = \"$\") -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "dfaf5cad3bb19112f8e5b452f288e8d618e2fea269f466b4b7cced8b8b6c9289",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_profile_has_recommendation_key",
      "name": "_profile_has_recommendation_key",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "span": "L36-L49",
      "signature": "def _profile_has_recommendation_key(value: Any) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "1005b19564086c00edaa5bfc9f4867b20185fbb8f2b12df71b5693a40cfc886a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "name": "check_profile",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "span": "L65-L229",
      "signature": "def check_profile(document: dict[str, Any]) -> tuple[IssueLog, list[dict[str, str]]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "44dfb0998e74765f0b15069a355b95359139dd53292704c878a30c5c6a912bd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/evidence_profile_check.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "span": "L232-L255",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "73f3c0f4e5af2131b3ecdf81d25b60be8126c14d7f90a76e6727357faafd1576",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "name": "model_biomarker_evaluation.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L1-L346",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a000f6d4e995a439fd1540be6179ae6d31f3cb5848542f1d977ef6732cea28eb",
      "chars": 13691,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_calibration_summary",
      "name": "_calibration_summary",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L58-L122",
      "signature": "def _calibration_summary( bins: list[Any], group_name: str, minimum: int, expected_events: int ) -> tuple[dict[str, Any], bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "227e6986eabe82048d35249465551efbf5be002d57a5b27985722d089f33c949",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_metric",
      "name": "_metric",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L54-L55",
      "signature": "def _metric(successes: int, total: int) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7df79e9be3c57348c6c885b9e02e02fb29096e8b669b9d85ff3eaff1e46e4c01",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_small_nonzero",
      "name": "_small_nonzero",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L50-L51",
      "signature": "def _small_nonzero(values: list[int], minimum: int) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "73c87e699a87a20a6e3e71d39e5858d2f41fc944e5304b4525b6202835f090c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_wilson",
      "name": "_wilson",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L29-L47",
      "signature": "def _wilson(successes: int, total: int) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "2d213162a7961f63a0da351cf4c3f77e96a29d4374293a4a4fd3cf18de165d9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "name": "evaluate",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L125-L308",
      "signature": "def evaluate( document: dict[str, Any], minimum: int ) -> tuple[IssueLog, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fac2004c6883dc1c1bd4f452e8722f908f5612553ecd77f1677af354c92118f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "span": "L311-L341",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "52b7e68c566e9e05830283f4c0a56fdb213e7a717d2a4aece2588024c2cbe078",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "name": "survival_plan_validator.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "span": "L1-L295",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "425a24efa8d7851d695433d5aba29c4947a24b6cfc13dd97aacd46c5406be785",
      "chars": 11149,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/survival_plan_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "span": "L265-L290",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2560626f18d516f998625c55831a49aea820eb859088dc386753b8ebc7c47cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "name": "validate_plan",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "span": "L43-L262",
      "signature": "def validate_plan(document: dict[str, Any]) -> IssueLog",
      "exported": true,
      "origin": "ast",
      "body_hash": "27300c5f2cb686ef7195b167b89a6a16ac9e556e362ef99f90d7a0cbbe8cf34e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "name": "validate_cds_artifact.py",
      "kind": "file",
      "path": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "span": "L1-L270",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3df0cfba438b76dd86560c9392fb02544b9762c21ca819fec6f73097cdec74cd",
      "chars": 10029,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_placeholders",
      "name": "_find_placeholders",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "span": "L75-L85",
      "signature": "def _find_placeholders(value: Any, location: str = \"$\") -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "dfaf5cad3bb19112f8e5b452f288e8d618e2fea269f466b4b7cced8b8b6c9289",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_unsafe_keys",
      "name": "_find_unsafe_keys",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "span": "L61-L72",
      "signature": "def _find_unsafe_keys(value: Any, location: str = \"$\") -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6e9a2e97123c1ea6f8a2e3986f8aefb9ae600603795578a877a30397d48a3613",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "span": "L239-L265",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a00cf5460fbfbcb9653c3bef580d1a871977452f053d85e8348a6c8e81ed851",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "name": "validate_artifact",
      "kind": "function",
      "path": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "span": "L88-L236",
      "signature": "def validate_artifact(document: dict[str, Any]) -> IssueLog",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4e4cee5a28bc85332717effc3cfdc60bf0fc8399eed8541db7260200d74c534",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L1-L264",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d30e9e8461e81529bdb9ece9b9d34d87c59ec601bb164674d3fbf8721e5fdbbf",
      "chars": 9391,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#_check_tree",
      "name": "_check_tree",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L102-L126",
      "signature": "def _check_tree(value: Any, *, depth: int = 0, counter: list[int] | None = None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e1b4caa008d7bc7518af718c0f52763f9e68db88baeadaea5a524f82a5a5671e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#_object_without_duplicates",
      "name": "_object_without_duplicates",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L93-L99",
      "signature": "def _object_without_duplicates(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "718ffd3f059ebbc39ecc73ba46303dd1f33f669a04598314d7888abdc654d35c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#_reject_nonlocal",
      "name": "_reject_nonlocal",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L29-L33",
      "signature": "def _reject_nonlocal(raw: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c63c0f9a9a844dbea58000993397920ab83d49843c2e20bdee232b71aab30a83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#error_report",
      "name": "error_report",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L255-L263",
      "signature": "def error_report(tool: str, exc: Exception) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8941ab8fae3aaf7cfc7b86e32f75f37f3a4d4501b54097517c91ab44748a9a49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L129-L151",
      "signature": "def load_json_object(raw_path: str) -> tuple[Path, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4b8845f644fb6983360a8b6dfd69c4705e061eec189ad77f166d19b8e65d678",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#local_input_path",
      "name": "local_input_path",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L36-L61",
      "signature": "def local_input_path( raw: str, *, suffixes: Iterable[str], max_bytes: int, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "34462ee1fd4c0e78291a4ce60023bfe80b5ea67c69c6fc7c96cb4a7221751d87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#local_output_path",
      "name": "local_output_path",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L64-L90",
      "signature": "def local_output_path( raw: str, *, suffixes: Iterable[str], overwrite: bool, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "a62d78a6482f9f4b498f3c76bb413048170f7e45d9e2e3b59ab0967df96c04dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#parse_iso_date",
      "name": "parse_iso_date",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L234-L240",
      "signature": "def parse_iso_date(value: Any, field: str) -> date",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b672d30fe2ddbcd9302f938199c18ad530838be9d94d2550ba53f95c96b652a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#parse_iso_datetime",
      "name": "parse_iso_datetime",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L243-L252",
      "signature": "def parse_iso_datetime(value: Any, field: str) -> datetime",
      "exported": true,
      "origin": "ast",
      "body_hash": "d59c96e31b96cd2dd65101178fc936147f04e20ce95463a540b99ad6c0d4dc1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#require_bool",
      "name": "require_bool",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L220-L224",
      "signature": "def require_bool(value: Any, field: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "39c77ff169f2b33c0f5c20635b5ff9231a8fd6e4e8387e43d05b97ecc1a4c4a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "name": "require_data_class",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L173-L179",
      "signature": "def require_data_class(value: Any) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "176f3e2238bfc66c21460c1d1f6fc546c742a0ba10851d360f767d7f83d97223",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#require_exact_keys",
      "name": "require_exact_keys",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L182-L200",
      "signature": "def require_exact_keys( value: Any, expected: Iterable[str], field: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "793dda460463b9a8b41f1a6c23499483ae9c0f44f4a3288703cb80f67515bc31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#require_identifier",
      "name": "require_identifier",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L203-L207",
      "signature": "def require_identifier(value: Any, field: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f54a203d4fc683276508a2d4743557178834bd9c39c11be02ba52d7511b772c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#require_nonnegative_int",
      "name": "require_nonnegative_int",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L227-L231",
      "signature": "def require_nonnegative_int(value: Any, field: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "07efb8de0e6c1d05338ddbf67b3f181f08fcc69faac0dbc6b985b1728326d219",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#require_string",
      "name": "require_string",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L210-L217",
      "signature": "def require_string(value: Any, field: str, *, max_length: int = 256) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba28a5addf815b51c411ac793d4362062ab044fc6bbbb3c95e20cb9a60dc11f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L25-L26",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "121c2c783d65d5788776657bb82c17d274f8048dc51d61deaad9bc7e324138d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/_common.py#write_json_report",
      "name": "write_json_report",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/_common.py",
      "span": "L154-L170",
      "signature": "def write_json_report( report: dict[str, Any], raw_output: str | None, *, overwrite: bool, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "75928d4bc91f459cf18930a046b68c2227469111bf2f0f176d53f1f94b4ccbee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/check_deidentification.py",
      "name": "check_deidentification.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/check_deidentification.py",
      "span": "L1-L299",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5545ffd1eb6f79681d8e4fa654c18d30bb01dc2dc7cd6f91366695ed53eaa5e8",
      "chars": 10755,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/check_deidentification.py#_required_true",
      "name": "_required_true",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/check_deidentification.py",
      "span": "L80-L89",
      "signature": "def _required_true( data: dict[str, Any], field: str, errors: list[str], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f48c2a531cd30c7dc0201642e67163a8f06fc58c327c0faf9f9d4415c3b7df4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/check_deidentification.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/check_deidentification.py",
      "span": "L269-L279",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "760b64ea279109073aa6f7862abffb0d6e290a3c1e935be59be9c58db596d1c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/check_deidentification.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/check_deidentification.py",
      "span": "L282-L294",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2831578b5ef08567b925ce66789aeab409f33855e464055cb22fa1770b5ce9e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/check_deidentification.py#validate_process",
      "name": "validate_process",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/check_deidentification.py",
      "span": "L92-L266",
      "signature": "def validate_process(data: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "87db1e3a20d87afa93de868e9ac9a57598ccf66750e2caccfec90ec63a59ad6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py",
      "name": "consistency_checker.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L1-L391",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5b1269fe6490c1875f711755a1b581d3a5b34840df1b599c6e4222be924a2afe",
      "chars": 13562,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py#_array",
      "name": "_array",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L45-L53",
      "signature": "def _array(data: dict[str, Any], field: str, errors: list[str]) -> list[Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d10ca779036a0952679508afa8ba680bdf646cabf1607602ae62daf9830fee77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py#_finite_number",
      "name": "_finite_number",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L56-L62",
      "signature": "def _finite_number(value: Any, field: str) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "10fe725c844621e70884e5d19d308806f4554ae901aa9048c8f5ea00c9d59c99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py#_track_id",
      "name": "_track_id",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L65-L79",
      "signature": "def _track_id( value: Any, field: str, seen: set[str], errors: list[str], ) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "15c58c10561773df918e726ec838232bb63e6f8d8706f298688cc0be98df517d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L356-L366",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "08ea748bb221244c8eddcf1a276ac3999af2b190a216fae15e2151ac033bb753",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L369-L386",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd4a2f39f1ccf60effc6318958df97a2be1509a2188027c4e3673b5727fd9aac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "name": "validate_consistency",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/consistency_checker.py",
      "span": "L82-L353",
      "signature": "def validate_consistency(data: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5894854ff8177c0ccfe10938d314c3cb323e38193a357553b292559b8d51958d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py",
      "name": "format_adverse_events.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L1-L456",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "50580131de2a3a0777829b7aa983659bd09747b0cbe8ea2625266f90918a4691",
      "chars": 16074,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#_count",
      "name": "_count",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L193-L196",
      "signature": "def _count(value: str | None, field: str) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "950669a0cd6ff31c96f94818252dcb7531ae5eafa70ceb34524e61b6e094994e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#_label",
      "name": "_label",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L178-L190",
      "signature": "def _label(value: str | None, field: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "2e4d13fd67bfecae4a3d0f2e2dd38b279c68a1d9054124bc965d3526deeeace4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#AggregateRow",
      "name": "AggregateRow",
      "kind": "class",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L86-L94",
      "signature": "class AggregateRow",
      "exported": true,
      "origin": "ast",
      "body_hash": "79e856246a2cf55a8a351e4699fd92c2132d4d022a0f04e1f9acba139f43c137",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L406-L422",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea9abee5714f8a3f9e58a47ee9b97baf8ec7c05d57342b7c9b1a0cfe1a0b956f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "name": "load_aggregate_csv",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L199-L301",
      "signature": "def load_aggregate_csv(raw_path: str) -> list[AggregateRow]",
      "exported": true,
      "origin": "ast",
      "body_hash": "acb541ae04086137c8cebdec9fa6e1fdce9aa06c96b1dfcd4aed17b6b8a66700",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_metadata",
      "name": "load_aggregate_metadata",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L168-L175",
      "signature": "def load_aggregate_metadata( raw_path: str, *, input_name: str, ) -> dict[str, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fad6e1c64470463052cc8523e377957a48c70e97403dbdeb06871067d3b03e29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L425-L451",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d299182f646cae70892404a40fa7798b1d78238abf217e6d59dba472f791559",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#render_markdown",
      "name": "render_markdown",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L304-L403",
      "signature": "def render_markdown( rows: list[AggregateRow], *, metadata: dict[str, object], expected_meddra_version: str | None = None, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3a579330ed9b647dcbe16e3efbaea21a6137f50f94d1d212f49fd903767b1ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/format_adverse_events.py#validate_aggregate_metadata",
      "name": "validate_aggregate_metadata",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/format_adverse_events.py",
      "span": "L97-L165",
      "signature": "def validate_aggregate_metadata( data: dict[str, object], *, input_name: str, ) -> dict[str, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "317ab13cd5f99bce7c7f711f29879b3a62c23de72b97932d30b62df3818c4986",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/generate_report_template.py",
      "name": "generate_report_template.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/generate_report_template.py",
      "span": "L1-L116",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "38adad4eeddd8651629f0c25e384e6e159d81dc251dc88e62f6f89e565eac9e1",
      "chars": 4005,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/generate_report_template.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/generate_report_template.py",
      "span": "L78-L90",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b038c2f36c816d13fdae2c2efc709de70ea88d945952d121f28b48597abda8a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/generate_report_template.py#generate_template",
      "name": "generate_template",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/generate_report_template.py",
      "span": "L51-L75",
      "signature": "def generate_template( template_type: str, raw_output: str, *, overwrite: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0c9cb8ec9aacfbdfcf0c1844388fac6c34bb39a7444bf053bffc2bd4a7eeae1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/generate_report_template.py#list_templates",
      "name": "list_templates",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/generate_report_template.py",
      "span": "L44-L48",
      "signature": "def list_templates() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "51553231da784c6bce1f527594454e0602a96cf1538a363533560dd1a127ee1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/generate_report_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/generate_report_template.py",
      "span": "L93-L111",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "676f4d52bd7eb854ed220b5865d3599682d2614d531c039a7db519ecddcf9f3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/generate_report_template.py#template_directory",
      "name": "template_directory",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/generate_report_template.py",
      "span": "L39-L41",
      "signature": "def template_directory() -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "09263f4a91377e9de89d11003f61ff379e5e3c96f3e4a133ecfa878a691269f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/provenance_validator.py",
      "name": "provenance_validator.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/provenance_validator.py",
      "span": "L1-L264",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "127ebf868afc25161ff8134b1a4173e7f8fd72150f0ce47018561a203d7c6896",
      "chars": 9296,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/provenance_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/provenance_validator.py",
      "span": "L234-L244",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "adb422bbfdafaace5461d0a658f95f03e00d9d5c8f7fa654c1693389442bf7e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/provenance_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/provenance_validator.py",
      "span": "L247-L259",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e18c99e9dcc8990c4fa32e52a593956a0c61b3a94f555e57fdb56a065e418d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/provenance_validator.py#validate_provenance",
      "name": "validate_provenance",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/provenance_validator.py",
      "span": "L69-L231",
      "signature": "def validate_provenance(data: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfa597774e56ad089571295217440d2bf991f2818c4d390cfffb36692ccc9189",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/terminology_validator.py",
      "name": "terminology_validator.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/terminology_validator.py",
      "span": "L1-L278",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4496eace2c8b87bff8e6275c54c4e8601b6ce2d5f7c4f07c523f0486410b6ac5",
      "chars": 10255,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/terminology_validator.py#_load_dictionary",
      "name": "_load_dictionary",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/terminology_validator.py",
      "span": "L108-L155",
      "signature": "def _load_dictionary(raw_path: str) -> dict[tuple[str, str, str], str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e98bd1f40ccf8ca5379b6ecd25c914f50d7c34ab84523b7ac8b95afb2dc5720b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/terminology_validator.py#_validate_entry",
      "name": "_validate_entry",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/terminology_validator.py",
      "span": "L60-L105",
      "signature": "def _validate_entry(entry: Any, index: int) -> tuple[str, str, str, str, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8fbda5871eb7a3e90dd511caa011485461138981272f0f62b95da80dd2d2d233",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/terminology_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/terminology_validator.py",
      "span": "L246-L257",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1cb826b7be5efcd2cab574c1dfede4c67910d0ae1c214c86726806db525a1c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/terminology_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/terminology_validator.py",
      "span": "L260-L273",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b6d4834b1b96039ada09422a51667871d3f1b2dae20f7763247be4c25b2f470",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/terminology_validator.py#validate_terminology_manifest",
      "name": "validate_terminology_manifest",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/terminology_validator.py",
      "span": "L158-L243",
      "signature": "def validate_terminology_manifest( data: dict[str, Any], dictionary: dict[tuple[str, str, str], str] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "72d65116c84f6e458d92624c31b7b60880834805198296a341b0ca56d955339f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_case_report.py",
      "name": "validate_case_report.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/validate_case_report.py",
      "span": "L1-L279",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7a3ad939da4d3407f51b23ce208f3639d8ba51bcf1cf4ab895587f4825cb09ba",
      "chars": 9592,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_case_report.py#_fact_ids",
      "name": "_fact_ids",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_case_report.py",
      "span": "L66-L70",
      "signature": "def _fact_ids(item: dict[str, Any], field: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c94872ef8cd76df4327dc1445a1c9b6d402a593af96a55213558c5f65019b231",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_case_report.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_case_report.py",
      "span": "L245-L259",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "69defe1bf73c6f2e561c20a3ce77a66788300d0d972217e02bda1d5311aafc87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_case_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_case_report.py",
      "span": "L262-L274",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f966be942f4ebc48f7e4105b8d66faae56a61f75b92bc7a7a2b147eb6fa2350f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "name": "validate_case_manifest",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_case_report.py",
      "span": "L73-L242",
      "signature": "def validate_case_manifest(data: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8789e68811c903283d1c04394d0f25610fe488e5e40ce7cdefa86b0521fd581",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py",
      "name": "validate_trial_report.py",
      "kind": "file",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L1-L535",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "571d5e55619b6a52df7c9ff943f2c967edfa43da429f7cfe456784df7eaf83f8",
      "chars": 20250,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py#_validate_guidance",
      "name": "_validate_guidance",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L132-L258",
      "signature": "def _validate_guidance( artifact_kind: str, guidance: Any, errors: list[str], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1a17e77a228c8e9b2e088774e7cf309878d44e554be85e5a7c92d02026c040f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py#_validate_metadata",
      "name": "_validate_metadata",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L261-L325",
      "signature": "def _validate_metadata( artifact_kind: str, value: Any, errors: list[str], warnings: list[str], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6bc31706113dd3b52740e31d78ba2c88d846ea5329310c5fd7bd16e5ee6539bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py#_validated_fact_ids",
      "name": "_validated_fact_ids",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L328-L331",
      "signature": "def _validated_fact_ids(value: Any, field: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "25036f1dcff5dc5ba2a940087d751f46e79cbed1284905d7a61549eedf881a75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L505-L515",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e75094c653d53c9bddc378315d67d2c6a8dca1b2373b7db1667f6dedcde645a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L518-L530",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a606c900147b33fc5321a8028dc663467af49128ef633d582056ef120b0b6320",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "name": "validate_trial_manifest",
      "kind": "function",
      "path": "skills/clinical-reports/scripts/validate_trial_report.py",
      "span": "L334-L502",
      "signature": "def validate_trial_manifest(data: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "03a6a45c265ec7cb8806e3607effce50e126cedfc22160f20c7893e8594cb8e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/graph_neural_network.py",
      "name": "graph_neural_network.py",
      "kind": "file",
      "path": "skills/deepchem/scripts/graph_neural_network.py",
      "span": "L1-L351",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e6643bed6653407696d24d40491c3c8ad00c374f0e3895161d8466b50653ab11",
      "chars": 10213,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/graph_neural_network.py#create_model",
      "name": "create_model",
      "kind": "function",
      "path": "skills/deepchem/scripts/graph_neural_network.py",
      "span": "L50-L99",
      "signature": "def create_model(model_type, n_tasks, mode='classification')",
      "exported": true,
      "origin": "ast",
      "body_hash": "759caa82a0ddb1aa08f4de6281c241671d3c9d02b586baaf1bf75f7f8b52bb0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/graph_neural_network.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/deepchem/scripts/graph_neural_network.py",
      "span": "L256-L346",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "34783f35e375b80d098dec1e3eefe7ce80ac07af0ba936a58592f17a5f6bcd60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/graph_neural_network.py#molnet_loader",
      "name": "molnet_loader",
      "kind": "function",
      "path": "skills/deepchem/scripts/graph_neural_network.py",
      "span": "L45-L47",
      "signature": "def molnet_loader(dataset_name)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e219680511a73bd4949d53a74749fac6559a1afb2c3438eba6b15498ee251ce7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/graph_neural_network.py#train_on_custom_data",
      "name": "train_on_custom_data",
      "kind": "function",
      "path": "skills/deepchem/scripts/graph_neural_network.py",
      "span": "L176-L253",
      "signature": "def train_on_custom_data(data_path, model_type, task_type, target_cols, smiles_col='smiles', n_epochs=50)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cc147a1fef8fbf401f0174f32494fc460f468f34d862fbbffc476415dc7f417",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/graph_neural_network.py#train_on_molnet",
      "name": "train_on_molnet",
      "kind": "function",
      "path": "skills/deepchem/scripts/graph_neural_network.py",
      "span": "L102-L173",
      "signature": "def train_on_molnet(dataset_name, model_type, n_epochs=50)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ec6636edff2e54407853686c3141e43e616542212b30c684b1fa16a18193fef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/predict_solubility.py",
      "name": "predict_solubility.py",
      "kind": "file",
      "path": "skills/deepchem/scripts/predict_solubility.py",
      "span": "L1-L224",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8b0ef83e042521e3d55cfbc882dd86e690def1350b0e35661ae199aa708a5631",
      "chars": 6784,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/predict_solubility.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/deepchem/scripts/predict_solubility.py",
      "span": "L157-L219",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "229cabea3ef0569ff5334ee85a31bcf56bd75058d223f5b7f3fed930ac05e7d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/predict_solubility.py#predict_new_molecules",
      "name": "predict_new_molecules",
      "kind": "function",
      "path": "skills/deepchem/scripts/predict_solubility.py",
      "span": "L119-L154",
      "signature": "def predict_new_molecules(model, smiles_list, transformers=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "868838ed6e2825530ead5efb674b112730a73350f9f6bbeb7287f40cec1cbfc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/predict_solubility.py#train_solubility_model",
      "name": "train_solubility_model",
      "kind": "function",
      "path": "skills/deepchem/scripts/predict_solubility.py",
      "span": "L19-L116",
      "signature": "def train_solubility_model(data_path=None, smiles_col='smiles', target_col='measured log solubility in mols per litre')",
      "exported": true,
      "origin": "ast",
      "body_hash": "49d8c17c0653d34ff7fc0316405269a5a3b1bca48e4c4bde2f153ff9d6c722a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py",
      "name": "transfer_learning.py",
      "kind": "file",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L1-L444",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "aca2b850a91411b12ba6fc6b814a166ca6e27aefdc61a9ec9063a21664bc935a",
      "chars": 13628,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py#load_custom_dataset",
      "name": "load_custom_dataset",
      "kind": "function",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L264-L310",
      "signature": "def load_custom_dataset(data_path, target_cols, smiles_col, model_type)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf5333c717acade02432eef6867ddc4ed8ded57b8967e3ab629a3fae2a1dc29a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py#load_molnet_dataset",
      "name": "load_molnet_dataset",
      "kind": "function",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L220-L261",
      "signature": "def load_molnet_dataset(dataset_name, model_type)",
      "exported": true,
      "origin": "ast",
      "body_hash": "efe6a43e0735b6246cbc426655b35be9325a2313700bdda978078b0a3e7f46eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L313-L439",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "10ed8fe7dd712ab2769dbdc96b77633842ec086e092ac32eb0012b043bdd8fe6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py#train_chemberta",
      "name": "train_chemberta",
      "kind": "function",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L37-L97",
      "signature": "def train_chemberta(train_dataset, valid_dataset, test_dataset, task_type='classification', n_tasks=1, n_epochs=10)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ca5d9bccddf1a0159e19a8480b662288ae394155324ec891b4d95dd245e6883",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py#train_grover",
      "name": "train_grover",
      "kind": "function",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L100-L156",
      "signature": "def train_grover(train_dataset, test_dataset, task_type='classification', n_tasks=1, n_epochs=20)",
      "exported": true,
      "origin": "ast",
      "body_hash": "169dcc83df09b7fd6671c462ebc988a0a322751b70388d02219e799fdbf05005",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deepchem/scripts/transfer_learning.py#train_molformer",
      "name": "train_molformer",
      "kind": "function",
      "path": "skills/deepchem/scripts/transfer_learning.py",
      "span": "L159-L217",
      "signature": "def train_molformer(train_dataset, valid_dataset, test_dataset, task_type='classification', n_tasks=1, n_epochs=10)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c784630abbd34c1d3978248f6173f9b535ce8df0709a408a039e0aebfd6fab2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py",
      "name": "validate_files.py",
      "kind": "file",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L1-L196",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "63c96703778ea475c6567dc4d8a22ebf1bdfa07e8255bf256d36a8b64c555069",
      "chars": 6011,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py#check_bam_index",
      "name": "check_bam_index",
      "kind": "function",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L24-L34",
      "signature": "def check_bam_index(bam_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cd340aaa9946e28fb53444f571a6dd0748d3a8e0b6f18ef753501942ffa036e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py#check_bed_file",
      "name": "check_bed_file",
      "kind": "function",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L46-L73",
      "signature": "def check_bed_file(bed_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9e0c733f79e76839dd4d6289a7a0a80c32b0aad793a6ea09297d46f5612ae6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py#check_bigwig_file",
      "name": "check_bigwig_file",
      "kind": "function",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L37-L43",
      "signature": "def check_bigwig_file(bw_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9dd6955c3e45d06126b05bf584a51a0ba097f2ab4efa3a111a1d1b8861a8bcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py#check_file_exists",
      "name": "check_file_exists",
      "kind": "function",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L15-L21",
      "signature": "def check_file_exists(filepath)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73b137b7c1d517df58bb5dd6ec265ee918e84a27a174973f8992eb40e8193bea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L145-L191",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0f510dd964e74e31aedd11028f34f88665447d8c707a57e678269cf94297f1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/validate_files.py#validate_files",
      "name": "validate_files",
      "kind": "function",
      "path": "skills/deeptools/scripts/validate_files.py",
      "span": "L76-L142",
      "signature": "def validate_files(bam_files=None, bigwig_files=None, bed_files=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b799d7c26bea95a882ffbc480c686e8d27925d66b08b52cf3df042e05c077b8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py",
      "name": "workflow_generator.py",
      "kind": "file",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L1-L521",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "22d851818ba2f6a2296a72f82ecec061715d37cad76fac3ea9d63e68caaea66a",
      "chars": 16860,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#generate_atacseq_workflow",
      "name": "generate_atacseq_workflow",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L334-L419",
      "signature": "def generate_atacseq_workflow(output_file, params)",
      "exported": true,
      "origin": "ast",
      "body_hash": "07bd32e8c175008b912e4f0a5355ad0b3a0a41f87ca0f142a07bb73bd70b503e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_analysis_workflow",
      "name": "generate_chipseq_analysis_workflow",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L162-L280",
      "signature": "def generate_chipseq_analysis_workflow(output_file, params)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c360058c63de2ce97d4a04a6a9c94b326d62c253c871f42ff74a506d10e5716e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_qc_workflow",
      "name": "generate_chipseq_qc_workflow",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L85-L159",
      "signature": "def generate_chipseq_qc_workflow(output_file, params)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3c9d26c3935104d44d255d1e9ab3630f497706ed8d1db986694a9a27187429f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#generate_rnaseq_coverage_workflow",
      "name": "generate_rnaseq_coverage_workflow",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L283-L331",
      "signature": "def generate_rnaseq_coverage_workflow(output_file, params)",
      "exported": true,
      "origin": "ast",
      "body_hash": "84b9f4ff969faa651cdeda9a59f5a6de90a0dad46d5cd66e2f958d7b775b6e1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L422-L516",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "42d028e49be57ed3ed44643b79a852b1bac35539f3d226ad01c855238d3299dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#runnable_script_path",
      "name": "runnable_script_path",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L78-L82",
      "signature": "def runnable_script_path(output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c456d01dbea46d61c2359c28b28f1edd44a59a505d28f1ddd20edebe81d9fd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#sanitize_path",
      "name": "sanitize_path",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L37-L46",
      "signature": "def sanitize_path(value, default, label)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bf5fdabfcf23221dea6ef81257597f0e17849ec1629d90a2efd97cb6d772990",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#sanitize_path_list",
      "name": "sanitize_path_list",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L49-L54",
      "signature": "def sanitize_path_list(value, default, label)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04169e32fccd853a3f544e92a47feef10b24c3ce47830785dd4433210d931f60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#sanitize_positive_int",
      "name": "sanitize_positive_int",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L57-L65",
      "signature": "def sanitize_positive_int(value, label)",
      "exported": true,
      "origin": "ast",
      "body_hash": "16c2c8efed2f24365b22cfd05e9ad5432cab42afb254e7945ea47d23afd2deb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#shell_array",
      "name": "shell_array",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L73-L75",
      "signature": "def shell_array(values)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2ed52fc01de0e8b4e66457752219b3cd4321bdb7941c9b4e26fa7bad3667d33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "name": "shell_literal",
      "kind": "function",
      "path": "skills/deeptools/scripts/workflow_generator.py",
      "span": "L68-L70",
      "signature": "def shell_literal(value)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5b49f725a89832b4a3f28bb4c364ecec3f3b1e9b5577b0a4f7d454335efd183",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py",
      "name": "analyze_results.py",
      "kind": "file",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L1-L347",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eb3c5581a32bdca7b77505dfc1266398be51dd5f8c0f5ffd6c80fee3610db14f",
      "chars": 11691,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#classify_confidence",
      "name": "classify_confidence",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L137-L146",
      "signature": "def classify_confidence(score)",
      "exported": true,
      "origin": "ast",
      "body_hash": "300831cad6d2e69752f0cf7acb56f171ad706cc2cb89a3a84cdca608730d7880",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#export_to_csv",
      "name": "export_to_csv",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L222-L245",
      "signature": "def export_to_csv(results, output_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ebad4b5bab612f7f4c9500d7ca653105b435620f061023f7ff07a24b5216632",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#extract_confidence_score",
      "name": "extract_confidence_score",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L91-L134",
      "signature": "def extract_confidence_score(sdf_file, complex_dir)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e83bd0eee29c8411608b43477ac3329c707e3e998227cf1a465ae5f5202b334d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#get_top_predictions",
      "name": "get_top_predictions",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L248-L264",
      "signature": "def get_top_predictions(results, n=10, sort_by='confidence')",
      "exported": true,
      "origin": "ast",
      "body_hash": "89dad5b92b01b6af3364aaaeddb3e3a7db5361c006c71b5b9a9abecbb8e42d63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L283-L342",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a77e495bcf620072043299e0f21acda5b4277dd157ca008e1b7ff552df553e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#parse_confidence_scores",
      "name": "parse_confidence_scores",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L23-L50",
      "signature": "def parse_confidence_scores(results_dir)",
      "exported": true,
      "origin": "ast",
      "body_hash": "35f54cb892ff47d8b0f2cbd87f4473737deae1d61287365985cff0186505ac42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#parse_single_complex",
      "name": "parse_single_complex",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L53-L88",
      "signature": "def parse_single_complex(complex_dir)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1407256bdac46c25ecd17d06d524c9774d4adfd2b11672178d845db7e6567ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#print_summary",
      "name": "print_summary",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L149-L219",
      "signature": "def print_summary(results, top_n=None, min_confidence=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "53e9ecc50041a73d51f98ac724eafda019d99b9d8d806933cecec94463617f0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/analyze_results.py#print_top_predictions",
      "name": "print_top_predictions",
      "kind": "function",
      "path": "skills/diffdock/scripts/analyze_results.py",
      "span": "L267-L280",
      "signature": "def print_top_predictions(results, n=10)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a1b6b2f6e5ee79b8732117e5d0fcdd59e0d81c0e112d0f84807d70a2d35f755",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/prepare_batch_csv.py",
      "name": "prepare_batch_csv.py",
      "kind": "file",
      "path": "skills/diffdock/scripts/prepare_batch_csv.py",
      "span": "L1-L258",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e8cb7532be1b7514a552247dcdeccdc18af2788acb8cfc216f1b62fec3470ad0",
      "chars": 8962,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/prepare_batch_csv.py#create_template_csv",
      "name": "create_template_csv",
      "kind": "function",
      "path": "skills/diffdock/scripts/prepare_batch_csv.py",
      "span": "L162-L183",
      "signature": "def create_template_csv(output_path, num_examples=3)",
      "exported": true,
      "origin": "ast",
      "body_hash": "af878b67a7ee05052f5f636c5d5d44e8716021e9fe330fc9621376b7d7e43ada",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/prepare_batch_csv.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/diffdock/scripts/prepare_batch_csv.py",
      "span": "L186-L253",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6707ebff39b6267ae7aa847811251bb9c16d21d24deca1a22a6f01ea949793e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/prepare_batch_csv.py#validate_csv",
      "name": "validate_csv",
      "kind": "function",
      "path": "skills/diffdock/scripts/prepare_batch_csv.py",
      "span": "L61-L159",
      "signature": "def validate_csv(csv_path, base_dir=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "76463379d1d5fa208fb7ace742cee68cd7cfebab682ef58c139e3f8fcfa4b64b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/prepare_batch_csv.py#validate_file_path",
      "name": "validate_file_path",
      "kind": "function",
      "path": "skills/diffdock/scripts/prepare_batch_csv.py",
      "span": "L44-L58",
      "signature": "def validate_file_path(file_path, base_dir=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e621f41abc91b91b4eb2b4fcfdc87814a1a448221ad1fe6dd46bf3754e5e035",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/prepare_batch_csv.py#validate_smiles",
      "name": "validate_smiles",
      "kind": "function",
      "path": "skills/diffdock/scripts/prepare_batch_csv.py",
      "span": "L30-L41",
      "signature": "def validate_smiles(smiles_string)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3384e6565ff98516d02b2c283d306413a0edc73062e0d8e30f5da1848a2af53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py",
      "name": "setup_check.py",
      "kind": "file",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L1-L284",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c74988673c0e57f34ef99ebc5045780cf1e170c23668e847fb7f12eca7ae7ee8",
      "chars": 8176,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_core_dependencies",
      "name": "check_core_dependencies",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L93-L116",
      "signature": "def check_core_dependencies()",
      "exported": true,
      "origin": "ast",
      "body_hash": "01b25b1db19289bbc32e8cb54fffe36bcbaff8e8e35d3d2203020d7d7fd8f368",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_diffdock_installation",
      "name": "check_diffdock_installation",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L132-L171",
      "signature": "def check_diffdock_installation()",
      "exported": true,
      "origin": "ast",
      "body_hash": "48e8c4a5987c5316dfa8627b9630094b213ad1d232059f3c8b140eb51d9fd56d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_esm",
      "name": "check_esm",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L119-L129",
      "signature": "def check_esm()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa754a9afdb335d35900cb32e7032f65111f38bf3c2f6a76fa405a6db2346068",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_package",
      "name": "check_package",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L34-L51",
      "signature": "def check_package(package_name, import_name=None, version_attr='__version__')",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5e825fda3e3bda05a1ce87b2e189fbedc0543e9e76425a99f16a6a48862864d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_python_version",
      "name": "check_python_version",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L19-L31",
      "signature": "def check_python_version()",
      "exported": true,
      "origin": "ast",
      "body_hash": "82c29a3331c4fbb8cd4a632c93f4300ec0e79696e9313973de1e01d488f85405",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_pytorch",
      "name": "check_pytorch",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L54-L72",
      "signature": "def check_pytorch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e53d778c4d24042741d73ad12395d0a5f1955e2e9b30cba91045815ca356113",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#check_pytorch_geometric",
      "name": "check_pytorch_geometric",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L75-L90",
      "signature": "def check_pytorch_geometric()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8a081ee22c0357868c9ad6fc566b18974a8196b0924bb08478ec0869dad6851",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L233-L279",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "01720dc6248676bbb1e74766b2030aa5a5c7bcdff75030ed9b138e43cb7eba40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#print_installation_instructions",
      "name": "print_installation_instructions",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L174-L200",
      "signature": "def print_installation_instructions()",
      "exported": true,
      "origin": "ast",
      "body_hash": "26bb5d4c08c8fb12b81d356474c6383c6e9d01a8cccb2b1958bed5038b865ec0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/diffdock/scripts/setup_check.py#print_performance_notes",
      "name": "print_performance_notes",
      "kind": "function",
      "path": "skills/diffdock/scripts/setup_check.py",
      "span": "L203-L230",
      "signature": "def print_performance_notes(has_cuda)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d44a5db50e4bac2c0e5a095b4951ee7dcb05708d2fe2b95694c6c272e2f5b93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "name": "inspect_dxpy.py",
      "kind": "file",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L1-L367",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f8dbd2a62ec7dfa647c067f5e95efd62744f30f2bef1fb3896f16c6f5df4c68a",
      "chars": 10347,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L325-L340",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e3e18b81b1f6b8f5f32e4332346c6857b5df9ffcdb3a2c152df829605fd840f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_report",
      "name": "build_report",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L199-L248",
      "signature": "def build_report() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fe7e28907e78fe33ff57a20ec849b1fbfdb127b53e7267054862c1d8663e7a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_methods",
      "name": "inspect_methods",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L172-L189",
      "signature": "def inspect_methods( module_name: str, class_name: str, method_names: list[str], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd29de4163d528d89b3448d991443f484bde2953f3a6c90cd4c6d956a5f2c738",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_symbol",
      "name": "inspect_symbol",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L145-L169",
      "signature": "def inspect_symbol(module_name: str, symbol_name: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "59fd2248d00fbaf228c505536207c3573faf6304e0c56da4e2fcaf1c590ec111",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L343-L362",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8887b10fffbb36daec2a4b7fe866d5829a243d936b84b4791124ef930d14ef3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_methods",
      "name": "missing_required_methods",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L260-L277",
      "signature": "def missing_required_methods(report: dict[str, Any]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "64875cc071b1ca8ae2bd0f6d2d446b5b19545f3d9a6834a7f5a82c8abf385340",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_symbols",
      "name": "missing_required_symbols",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L251-L257",
      "signature": "def missing_required_symbols(report: dict[str, Any]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "03e32b96b23ad9cdff21cbdc5131b17155ea40559bec15afbdb724b073b3c534",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#numeric_version",
      "name": "numeric_version",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L192-L196",
      "signature": "def numeric_version(value: str) -> tuple[int, ...]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7af4803c35fe5b0ac138fac8b0f5dca1fd44b7babc4f7fb5dc64168f667afe4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#print_text",
      "name": "print_text",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L280-L322",
      "signature": "def print_text(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d03d8b2e7f511341d74ab1047cd6f3498f0c64316c8202ffda8120e79089e771",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/inspect_dxpy.py#safe_signature",
      "name": "safe_signature",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "span": "L138-L142",
      "signature": "def safe_signature(obj: Any) -> Optional[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebe6fa563f7f16d0ed35f6f3903436e792daacc3bbc20b911d86242e28e4d6bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "name": "validate_dxapp.py",
      "kind": "file",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L1-L797",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4b0a326cc8bd12276a3b00ee6f7cfaf818bbb70d5e00467569396e51d1e35f29",
      "chars": 26829,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L685-L707",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "254cf6b2c93b3db09463a26b141b09418f6dc136f546e12f9bc532d085408925",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Issue",
      "name": "Issue",
      "kind": "class",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L69-L73",
      "signature": "class Issue",
      "exported": true,
      "origin": "ast",
      "body_hash": "002e7ff76cfa157e167025a852fdfe93ce942254f35776fce5e23ec9a1489fa3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#load_manifest",
      "name": "load_manifest",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L710-L712",
      "signature": "def load_manifest(path: Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "25ba9c5713b787aa9d8fab9edd3f9234edbe78826e2580a5b49b0eb46a000360",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L736-L792",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "78e762b165e970e7d8fe2f3eb6531cf72afac886dd817053d3bf6a3ca16b73a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#print_text",
      "name": "print_text",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L722-L733",
      "signature": "def print_text( path: Path, kind: str, issues: list[Issue], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ab676062a9c748ee2a2dd546adecd88abc5d4802b42543e9ef7a243c0943480",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L715-L719",
      "signature": "def summarize(issues: Iterable[Issue]) -> dict[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0781d7efc8bb54d04a2ea02ea2d9954ba29e07bf9345c96fbd453a3147f7aabf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "name": "Validator",
      "kind": "class",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L76-L682",
      "signature": "class Validator",
      "exported": true,
      "origin": "ast",
      "body_hash": "2010e59365512bf3525748a7c663bc944f88e66d9daf46fa08cd54fbaebe50d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L77-L80",
      "signature": "def __init__(self, manifest: Any, kind: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "42b9d6e60419d088804bc44dc3043fe57125295f33ad4c5bae57deca2ff1651e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.add",
      "name": "add",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L82-L89",
      "signature": "def add( self, severity: str, code: str, path: str, message: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2828ff3b4ee4414df15a13143ba40ac1dbebd03cb0d2316030cd68574450fb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.determine_kind",
      "name": "determine_kind",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L116-L121",
      "signature": "def determine_kind(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9770c609be07643aa686b2012174f7c7790ed2be6d94b2b965e65657de04c58f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "name": "error",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L91-L92",
      "signature": "def error(self, code: str, path: str, message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c0c82b26bf4195330d3c9d0588ce618c8c6590b280f9de9ac2016dae36c7dc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.looks_embedded",
      "name": "looks_embedded",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L677-L682",
      "signature": "def looks_embedded(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "18112d031945bcda10c125e9b9740284c4db9f98c8eb9dac7f07848c4d8b2cdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "name": "scan_for_embedded_secrets",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L656-L674",
      "signature": "def scan_for_embedded_secrets( self, value: Any, path: str = \"$\", ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce8d3159331458a203ce6b290fb4248257f2dfaa98a9e995e2c29becc1f1338e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L97-L114",
      "signature": "def validate(self) -> tuple[str, list[Issue]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4caf618baff8afd4a83c2e53e45f67dc2986714b76e6213f6490ab8485af6beb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_access",
      "name": "validate_access",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L576-L631",
      "signature": "def validate_access(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5db8e40c3ede19ee22104153049e4cc28f101c8a0a63b50ca24ee9709c829cb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_exec_depends",
      "name": "validate_exec_depends",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L336-L368",
      "signature": "def validate_exec_depends(self, dependencies: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cba95c5383b5cc45d4088d0c6ff05478a11e482aa997dcbe891e3d322fabf9d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_execution_policy",
      "name": "validate_execution_policy",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L370-L417",
      "signature": "def validate_execution_policy(self, policy: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c99603a00cd90b92b60b9b7dfb703cad701521262ab6a340c740d03fdb6b77ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_https_app",
      "name": "validate_https_app",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L633-L654",
      "signature": "def validate_https_app(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4186c4b385bb9a3c02c50fbfd18f80fd2133df369306e4303644e299bcc8446e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_instance_selector",
      "name": "validate_instance_selector",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L549-L574",
      "signature": "def validate_instance_selector(self, selector: Any, path: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3389c7e42d5e6d1c5f65e6197bc5b0cb43ba05d3c61a7d1a4d23ddba520f8402",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_metadata",
      "name": "validate_metadata",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L123-L161",
      "signature": "def validate_metadata(self, kind: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b799c0aa52a641fc3e8b1ddccaaa53116e4ff730071247528cb3ae37ca9a4e83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_parameter_list",
      "name": "validate_parameter_list",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L190-L246",
      "signature": "def validate_parameter_list( self, spec_name: str, parameters: list[Any], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ab521ff5ea96c2a5ad9f5a473e7ad0a808c77452dba94c6bc067beb38ff129e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_regional_options",
      "name": "validate_regional_options",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L457-L501",
      "signature": "def validate_regional_options(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e059b19089c04c49c05b89c533849c3608eee6a771f36572aa6f34659ed1fb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "name": "validate_run_spec",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L248-L334",
      "signature": "def validate_run_spec(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49d515fee4d31423f9e6a2be187b1547eaf6d4e7de32281f010a1d59180f472a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_specs",
      "name": "validate_specs",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L163-L188",
      "signature": "def validate_specs(self, kind: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "92e65e23022da971d7b5308c5634dc9ec3cdc1acd865bdfe007ca9d2c6ec7d3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_system_requirements",
      "name": "validate_system_requirements",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L503-L547",
      "signature": "def validate_system_requirements( self, requirements: Any, path: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bf36359e22a9a29256f4d7f5d12db166144cdbc90ed98e7a16fac0dca83de26",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_timeout_policy",
      "name": "validate_timeout_policy",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L419-L455",
      "signature": "def validate_timeout_policy(self, policy: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab70f00039cfe5ea55475d62f9bfd7a06387eb8e734499fefcf98ad8fe55509f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "name": "warning",
      "kind": "method",
      "path": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "span": "L94-L95",
      "signature": "def warning(self, code: str, path: str, message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0083c496b63e1605964da571fd932a4b2ba7d8c7c09f6ecbb7846eaa49594ce9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Validator"
    },
    {
      "id": "skills/docx/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/docx/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
      "chars": 1,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/accept_changes.py",
      "name": "accept_changes.py",
      "kind": "file",
      "path": "skills/docx/scripts/accept_changes.py",
      "span": "L1-L136",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0c991d2bc7304a1248e9f3bf9b1498f0b6e76641fc457e7cbd73c99b4eef3a74",
      "chars": 4051,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/accept_changes.py#_setup_libreoffice_macro",
      "name": "_setup_libreoffice_macro",
      "kind": "function",
      "path": "skills/docx/scripts/accept_changes.py",
      "span": "L91-L118",
      "signature": "def _setup_libreoffice_macro() -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "2f959e75efba4fc27f0d032002020c034e5b16fadcac37c0e069086d4a2450db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/accept_changes.py#accept_changes",
      "name": "accept_changes",
      "kind": "function",
      "path": "skills/docx/scripts/accept_changes.py",
      "span": "L36-L88",
      "signature": "def accept_changes( input_file: str, output_file: str, ) -> tuple[None, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cabb076d3f5e4cbbffd8e77ae91a529bc3553825b067b97f5e5e71ea59e1d6e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py",
      "name": "comment.py",
      "kind": "file",
      "path": "skills/docx/scripts/comment.py",
      "span": "L1-L369",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "37d116e5f56bb142b208c6c6a4bbcf960495abf470ddb7c6675ccfac864ba3d7",
      "chars": 14046,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_append_xml",
      "name": "_append_xml",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L100-L109",
      "signature": "def _append_xml(xml_path: Path, root_tag: str, content: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f3f12d295a78063387cbb2d1f0a1b3a78361667a1ac92fded62f20d7d8e3ca6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_encode_smart_quotes",
      "name": "_encode_smart_quotes",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L94-L97",
      "signature": "def _encode_smart_quotes(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "aba9d778206920c936438e74b75328a26bcd2320eb1b284dfa265b83663cd464",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_ensure_comment_content_types",
      "name": "_ensure_comment_content_types",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L212-L232",
      "signature": "def _ensure_comment_content_types(unpacked_dir: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "fc924075ca9470e7862216353998d56635973abb7d1254ebe5506d9ef16a0357",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_ensure_comment_relationships",
      "name": "_ensure_comment_relationships",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L178-L209",
      "signature": "def _ensure_comment_relationships(unpacked_dir: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "531830407b7e24af9aa42cde1e689149f38fabb040ed5adb972a5df7d6731ec6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_find_para_id",
      "name": "_find_para_id",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L112-L119",
      "signature": "def _find_para_id(comments_path: Path, comment_id: int) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "338e048827954737d94ca41f6c779ff5ff7ed87f12c955f1c1998ba83e0c6646",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_generate_hex_id",
      "name": "_generate_hex_id",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L90-L91",
      "signature": "def _generate_hex_id() -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "615086671d57eb652c77996898c58e0e8a5b3f1f15203397d437b7c6951ef3f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_get_next_rid",
      "name": "_get_next_rid",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L135-L145",
      "signature": "def _get_next_rid(rels_path: Path) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "f5ea8b302a2a7e1c0e09b67471f03db3217d9b4e56fef72894c40d226dd8f893",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_has_content_type",
      "name": "_has_content_type",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L156-L161",
      "signature": "def _has_content_type(ct_path: Path, part_name: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "32cf4a3470d73383d4643c26bf61f85c57c254c8d805f9dcc1e51559ac910880",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_has_relationship",
      "name": "_has_relationship",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L148-L153",
      "signature": "def _has_relationship(rels_path: Path, target: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "ad54e4daa4ce0e1a4b4a857f9f3b1437d88964c409a15a2669beeda5edc71e5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#_next_comment_id",
      "name": "_next_comment_id",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L122-L132",
      "signature": "def _next_comment_id(comments_path: Path) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "538ec9c02bfd9d017225767d69e4034ebaf5979f9024e757607e0f8a4b1ddfa1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#add_comment",
      "name": "add_comment",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L235-L310",
      "signature": "def add_comment( unpacked_dir: Path | str, text: str, comment_id: int | None = None, author: str = \"Claude\", initials: str = \"C\", parent_id: int | None = None, raw: bool = False, ) -> tuple[int, str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bae75a96db20979eda0ace98d979ef5ffd532b5023553c4201f9e1f0418b8c47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/comment.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/docx/scripts/comment.py",
      "span": "L313-L364",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0623d21324e1dfff60793779cc91a05fc5fcd36cb5c4455435682f2cdd9f2eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py",
      "name": "merge_runs.py",
      "kind": "file",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L1-L311",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3ab367fd7fba4647943d0aa5e65203b15458551410f5ffc821d902616a4b9f40",
      "chars": 9394,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_can_merge",
      "name": "_can_merge",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L195-L203",
      "signature": "def _can_merge(run1, run2) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "d1e92ada9fc8069bc8bdac0f10f919d5e3d027d47e26d5d07bb7c8a424675860",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_consolidate_text",
      "name": "_consolidate_text",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L230-L232",
      "signature": "def _consolidate_text(run)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6375db882c3b2e2b5c2f263a22d653753a0ad1b327ac8b6e33d404fda451cb36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "name": "_consolidate_text_elements",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L235-L261",
      "signature": "def _consolidate_text_elements(run, tag: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "db9e7bbb2bc854527ddb22b69eaabd88822e317c7b27ec529db00c2c6567e088",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_element_text",
      "name": "_element_text",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L214-L219",
      "signature": "def _element_text(elem) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "583114a181f3316b7968a4e67b2b9779874e9e05977681382407628caa411751",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_find_elements",
      "name": "_find_elements",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L85-L96",
      "signature": "def _find_elements(root, tag: str) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "4746063c6177bc79071d02707209db8f2801760c7e0403396ce1be09fbebe573",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_find_elements.traverse",
      "name": "traverse",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L88-L93",
      "signature": "def traverse(node)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17b9d759349101753a62d6caff7c9ab0314cbc3045cb0d9e1c1af48de17a5a40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_find_runs",
      "name": "_find_runs",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L99-L100",
      "signature": "def _find_runs(root, run_names: set[str]) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "98aadc53413ee9b67e01b9cd05f641448d00a4bb07c4c05d1702d0181d93f681",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_first_child_run",
      "name": "_first_child_run",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L165-L169",
      "signature": "def _first_child_run(container, run_names: set[str])",
      "exported": false,
      "origin": "ast",
      "body_hash": "cc11b734407b8b6b54e7e760a1b4704b15efd6371819fdaeaff2a38453189b00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_get_child",
      "name": "_get_child",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L103-L104",
      "signature": "def _get_child(parent, tag: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f9bd2e9bc744b108189fde37c2366f6b3d00899c00b5209fd1c37b97a0966420",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_get_children",
      "name": "_get_children",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L107-L112",
      "signature": "def _get_children(parent, tag: str) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "816fdb197079a9542c90d6b0b7543b270a2effbc1a3b542bed1d4f8d7eea0ff8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_has_preserve",
      "name": "_has_preserve",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L222-L223",
      "signature": "def _has_preserve(elem) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "9e10dbf6432cb2f93c171d28659d81647e2a0d9e77be2d331a04b97f54f4cf21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_is_adjacent",
      "name": "_is_adjacent",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L115-L125",
      "signature": "def _is_adjacent(elem1, elem2) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "27d2fccc195a7ce7a5bd933dc3dd68586f10c4e2a12f237ab5714bd938462fbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_is_element",
      "name": "_is_element",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L69-L71",
      "signature": "def _is_element(node, tag: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "82dee07cab4970b00f8b68851f8eb0062672cdd59f8431e925283278223c4ec4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_is_run",
      "name": "_is_run",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L191-L192",
      "signature": "def _is_run(node, run_names: set[str]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "f4b63b1a49bc95caafc002088e26974c10ad5b6873b199c8aeda9fd749ccf8b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_merge_or_die",
      "name": "_merge_or_die",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L266-L271",
      "signature": "def _merge_or_die(path: Path) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a6dac08b0c36833dec6851e41c0e394a2bf07b4f5208a53b382c43bd21b2327f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_merge_run_content",
      "name": "_merge_run_content",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L206-L211",
      "signature": "def _merge_run_content(target, source)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6fc824d88db98125390cea78c57d075e293b16e4ffd771a935680423b10be4e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "name": "_merge_runs_in",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L145-L162",
      "signature": "def _merge_runs_in(container, run_names: set[str]) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "9f05cc14cc71df67bc5238fa192051082ed43d78b5c7eb552c4cb736f7c12278",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_next_element_sibling",
      "name": "_next_element_sibling",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L172-L178",
      "signature": "def _next_element_sibling(node)",
      "exported": false,
      "origin": "ast",
      "body_hash": "a544c2bb1f26a57c5d13891a518b72806a3cfe4042c7adcea0431b82b8a7eafa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_next_sibling_run",
      "name": "_next_sibling_run",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L181-L188",
      "signature": "def _next_sibling_run(node, run_names: set[str])",
      "exported": false,
      "origin": "ast",
      "body_hash": "fd355c702d5173d08e22922054470eb8063dab3740d9ece775d6afdaebbbc0fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_remove_elements",
      "name": "_remove_elements",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L130-L133",
      "signature": "def _remove_elements(root, tag: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4b719bd5c9916bdd690e407597e0f6751838f3bf06ae6c01fde32c74c91beb92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_rendered_text",
      "name": "_rendered_text",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L226-L227",
      "signature": "def _rendered_text(elem) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "c69f55b2d0edefcc46915014d38284703e0e2fe38cb67c6ebab90b4f8e235588",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_run_tag_names",
      "name": "_run_tag_names",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L74-L82",
      "signature": "def _run_tag_names(root) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ee6fdc9242da8f709fc15adb5da8514ff201c31cf54af291813da6a012fa3a89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#_strip_rsid_attrs",
      "name": "_strip_rsid_attrs",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L136-L140",
      "signature": "def _strip_rsid_attrs(runs: list)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2a706fbe7e4d18b02c66a59f73de4d30409b3fb4b7e6d95e671bcbe983f3c9d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L274-L306",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d24b43f2d868c382a04edbf8b6d39757b404f6fde2d85c4e87da86e4163a9b7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/merge_runs.py#merge_runs",
      "name": "merge_runs",
      "kind": "function",
      "path": "skills/docx/scripts/merge_runs.py",
      "span": "L40-L64",
      "signature": "def merge_runs(input_dir: str) -> tuple[int, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa2d0db54b78d238595cd73888e6ad2a23feb0d103183b698cd01994335c1b78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "678e42456d9e10923c8b9a93691cdd993de3433448a184fa72a0c31f4ae086d5",
      "chars": 3358,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py#opc_target",
      "name": "opc_target",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L24-L55",
      "signature": "def opc_target(target: str, source_part: str, target_mode: str = \"\") -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c2698a0196e92977188d7ad4500b79e58934a67daed98395efa37fac5bd0d4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py#part_text",
      "name": "part_text",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L63-L64",
      "signature": "def part_text(data: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d704bfe47bc913895098f82a39c14982ede88dde0e4c86a488f0139c9a855299",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py#rels_source_part",
      "name": "rels_source_part",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L58-L60",
      "signature": "def rels_source_part(rels_file: Path, unpacked_dir: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef8501e94f8849865395afa59d0bff7bc7f0e0cefa625be94888b756fba4429a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py#rendered_text",
      "name": "rendered_text",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L70-L71",
      "signature": "def rendered_text(text: str, preserve: bool) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c080459c79c45408eb5adc12c8d73b7202097f695d4eac99311bef2d4848631",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py#rezip",
      "name": "rezip",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L85-L111",
      "signature": "def rezip(src_dir: Path, out_path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0f3e8ef554e29a1164d055c93e533f5369b318f69483cc8d2460c7721aa40bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/__init__.py#safe_extract",
      "name": "safe_extract",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/__init__.py",
      "span": "L74-L82",
      "signature": "def safe_extract(zf: zipfile.ZipFile, dest: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4db5976845ae72a2ae510d819efa8a6c2347e3c58f109ba5c738afc91bccabc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "name": "pptx_chart.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L1-L171",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "47ac266f7d39d11ede6bb0d1f3a19d801394fd2964636f1b48beb701f1832964",
      "chars": 5862,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "name": "_canonical_ids",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L89-L98",
      "signature": "def _canonical_ids(axes: dict[str, list[str]], limit: int) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "fe1abc31e37514463c98310a8de18fe50f1ae0d98d28049f9b8a886c7e155934",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "name": "_check_chart_axis_references",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L111-L139",
      "signature": "def _check_chart_axis_references(part: str, xml: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "daeda85be68c4431c8ff932fd9607ed31c28d00646f41c699c056121e52d2b57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "name": "_check_stacked_label_positions",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L36-L53",
      "signature": "def _check_stacked_label_positions(part: str, xml: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f6578cc1f2ac1762a3e0acf9f0db7f9496e08f470e011c7be716249e2beac69",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "name": "_declared_axes",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L82-L86",
      "signature": "def _declared_axes(xml: str) -> dict[str, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8f9fa84c1d1e34124ecab18006b1ba95842fafea8901b038eca4d8516897d17e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "name": "_ext_lst_spans",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L142-L158",
      "signature": "def _ext_lst_spans(text: str) -> list[tuple[int, int]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c02cfb35f7461db872a28530296027939b10e791d03c4430976804b246b4f5b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "name": "_strip_ext_lst",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L21-L27",
      "signature": "def _strip_ext_lst(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f1c78c4e4f2fcc2f3ba89f6cae061c6b96eefd17868adb8806f1b97a3423d055",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "name": "_undeclared_axes",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L101-L108",
      "signature": "def _undeclared_axes(kind: str, block: str, axes: dict[str, list[str]]) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4c0e6191d880441be6ce5e1c7ed473aa1cc4d2613d4b5af4037c6f4d9f237eb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_chart.py#find_chart_problems",
      "name": "find_chart_problems",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "span": "L164-L170",
      "signature": "def find_chart_problems(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4192f4ba8144dc6ee31a67445371ad7252f49d6b24d5f683d931fb17a3db1d15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "name": "pptx_slide.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "span": "L1-L61",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7b9f69b4a5bd6a2d9eabf9e0e3e796d7a421373145f6a8cd11f60b7ba2d6a5d0",
      "chars": 1675,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_slide.py#fatal_slide_errors",
      "name": "fatal_slide_errors",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "span": "L53-L60",
      "signature": "def fatal_slide_errors(errors: set[str]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1864ba6bc6a1adb836e46a8e3a64a0fe4c54954bfe21dab6f52bfcef9365d86f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_slide.py#is_schema_verdict",
      "name": "is_schema_verdict",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "span": "L49-L50",
      "signature": "def is_schema_verdict(error: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3ba7b3acbf328b75274c7e352954c1549174521811bc9d0f68f2b20fd893bbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "name": "pptx_theme.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L1-L115",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ebb54c56e9c13807f5f98f0cae22d47cdd0162da8525eaa664e3f2c8c8d6bb03",
      "chars": 3510,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "name": "_is_inert",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L97-L98",
      "signature": "def _is_inert(master: str, inert_notes: bool) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "40464ba886fe1bdf31742950643161dbc6061b73822ba330ecbc447d3c08d3ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_masters",
      "name": "_masters",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L62-L63",
      "signature": "def _masters(files: Mapping[str, bytes]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e391b04d730c23a827967f5c81401ee79b5b5a9b44e590ec131d8ef3a44b7a8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "name": "_notes_master_share_is_inert",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L74-L79",
      "signature": "def _notes_master_share_is_inert(files: Mapping[str, bytes]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "b47457c7dd1081fbdb8532a28b29575591b868379dee7ea2ca73ce683c0e7caa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "name": "_rels_path",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L35-L37",
      "signature": "def _rels_path(part: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "5076825d28bd675cdfe4019c274c365ac6ef0f09691f2fadaa470dcde11655c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_resolve",
      "name": "_resolve",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L40-L44",
      "signature": "def _resolve(rels_path: str, target: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "554c94176d7f51d2a1c9f8e36e2c2f8f9cb76579eef8851cfdfbf50d30c6a471",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_shares",
      "name": "_shares",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L82-L94",
      "signature": "def _shares(files: Mapping[str, bytes])",
      "exported": false,
      "origin": "ast",
      "body_hash": "d5c3437f483f3f17c85e4037b2d9528ce13fc33effb40806fd4d372f6840fb63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_sort_key",
      "name": "_sort_key",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L29-L32",
      "signature": "def _sort_key(name: str) -> tuple[int, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5450a9c104b3f6c195508a226a99d321d4b969e16c9a3af3483feb5ce06fcf13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "name": "_theme_rel",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L47-L59",
      "signature": "def _theme_rel(files: Mapping[str, bytes], master: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "329a7d6f2733b9bf7dc48fa9ec6535c433a6e1a5e434f08c79e15e529d78a352",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "name": "find_shared_master_themes",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L101-L105",
      "signature": "def find_shared_master_themes(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd18e0dc141b3d7f252e9ed3fa8404b02c5e0bff92c79e33d1b5f3f0f79cad5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "name": "live_shared_master_themes",
      "kind": "function",
      "path": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "span": "L108-L114",
      "signature": "def live_shared_master_themes(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4a48431dce8e00949ab50fb3b663e3ed170908aa8785623f4ea30945c6d4d4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/soffice.py",
      "name": "soffice.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/soffice.py",
      "span": "L1-L233",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "85ca09ee0d2bdbd2cd2cde7d2a18e7e1598d1b82e9cb61e7db5d223822ea0782",
      "chars": 8008,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/soffice.py#_ensure_shim",
      "name": "_ensure_shim",
      "kind": "function",
      "path": "skills/docx/scripts/office/soffice.py",
      "span": "L96-L114",
      "signature": "def _ensure_shim() -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "15addb32514ee866d69df2bd58ac3e927ea93b50a9e4441f5273d968d7bed4b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/soffice.py#_needs_shim",
      "name": "_needs_shim",
      "kind": "function",
      "path": "skills/docx/scripts/office/soffice.py",
      "span": "L87-L93",
      "signature": "def _needs_shim() -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f9b3dc9884dea09cb68c343e847cb29548d720a915acfe7da0a55d91e207582",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/soffice.py#get_soffice_env",
      "name": "get_soffice_env",
      "kind": "function",
      "path": "skills/docx/scripts/office/soffice.py",
      "span": "L50-L63",
      "signature": "def get_soffice_env() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "7644aea5769a40681f9f06c98b4511f28050aa6f38ab6404365e7fee23d10878",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/soffice.py#run_soffice",
      "name": "run_soffice",
      "kind": "function",
      "path": "skills/docx/scripts/office/soffice.py",
      "span": "L66-L74",
      "signature": "def run_soffice(args: Iterable[str], **kwargs) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "48671788bc5b99f5502fb1554198c15181f1c24058edf642950d2bb6831bd281",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validate.py",
      "name": "validate.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/validate.py",
      "span": "L1-L174",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "346a4c89d92fff55e610f11efda48c30228815b29bdb10b987e48f7af70acf1e",
      "chars": 6140,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validate.py#_fail",
      "name": "_fail",
      "kind": "function",
      "path": "skills/docx/scripts/office/validate.py",
      "span": "L31-L33",
      "signature": "def _fail(message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "51689ba8467eaa41640f60c28970907f70044894c29413600779685960e379ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validate.py#_has_tracked_changes",
      "name": "_has_tracked_changes",
      "kind": "function",
      "path": "skills/docx/scripts/office/validate.py",
      "span": "L36-L45",
      "signature": "def _has_tracked_changes(unpacked_dir: Path) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "560534a9514a4b401d3b0d357c620ef7e9bae654b558ee0270e0639acb115487",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validate.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/docx/scripts/office/validate.py",
      "span": "L48-L169",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "af5bf4afeddbb751590ec237663815fef2081fe5b81c672bbfdcace3c83ada7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/validators/__init__.py",
      "span": "L1-L16",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "83e0f035c5abea238d3f2c3968afbd511ed022b527b7c9cb60a9434cc34ff987",
      "chars": 336,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py",
      "name": "base.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L1-L876",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f818ea28c793ba42960fa4498265e2632a62c86f7b5d6aff6fa89dacc02d59ea",
      "chars": 33756,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#_load_schema",
      "name": "_load_schema",
      "kind": "function",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L17-L22",
      "signature": "def _load_schema(schema_path: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4eca50134b98a79c0b453cfb40c479ecd381e80cf5b27617ace209f46c5e25fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "name": "BaseSchemaValidator",
      "kind": "class",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L24-L871",
      "signature": "class BaseSchemaValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "1129b698cadf4eeca035657883909dad3df766fbe5f0e4256fb292cd75fadb8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L106-L119",
      "signature": "def __init__(self, unpacked_dir, original_file=None, verbose=False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c0ab3a6296e03f77457b7fff83d2cb3f8452d13685de06eb3473250f018e1c93",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "name": "_clean_ignorable_namespaces",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L728-L746",
      "signature": "def _clean_ignorable_namespaces(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f819002c77f4c9b7fb43c106023c005f6b1dc955849d1d32f674c4e533bec474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "name": "_get_expected_relationship_type",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L494-L515",
      "signature": "def _get_expected_relationship_type(self, element_name)",
      "exported": false,
      "origin": "ast",
      "body_hash": "26ae698f86a2d749400220d9511ae83a615c756277caecb410190f271ab7a124",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "name": "_get_original_file_errors",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L812-L840",
      "signature": "def _get_original_file_errors(self, xml_file, schema_path=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "130cf2ef5bf05226ec37a1df58c742e695384c33f6102bef99d80c838ad3f47b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "name": "_get_schema_path",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L710-L726",
      "signature": "def _get_schema_path(self, xml_file)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2ec1f13dd5c8862034a7ff86fbde3a8aa652bb3c6a0a666b3da21453c4b81a1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "name": "_preprocess_for_mc_ignorable",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L767-L773",
      "signature": "def _preprocess_for_mc_ignorable(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a330f2bc2606c45a1cefd6c9b89b56fc728f1aae035249fe96fc63d053d7cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "name": "_preprocess_for_schema",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L775-L776",
      "signature": "def _preprocess_for_schema(self, xml_doc, relative_path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e62d53800b442c1d56f79b61ba1803e7cbe9be702a0192a24d6509b9f252f92f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "name": "_remove_ignorable_elements",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L748-L765",
      "signature": "def _remove_ignorable_elements(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5a7432bf0ad55dac6fb4f8807af6d70a17e39ec76b73434af009811b27c5aa6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "name": "_remove_template_tags_from_text_nodes",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L842-L871",
      "signature": "def _remove_template_tags_from_text_nodes(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9246206f66577b278b24dfe657ba39a1f578938207b9fe4194e69d1835599431",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "name": "process_text_content",
      "kind": "function",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L849-L859",
      "signature": "def process_text_content(text, content_type)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c8bf1fd9c01da7ed769ebb72d2144053b482b46684453f3b8b639063815c9ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "name": "_validate_single_file_xsd",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L778-L810",
      "signature": "def _validate_single_file_xsd(self, xml_file, base_path, schema_path=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e8504a854f335f45709fa5844d3dd4ecc6ac1b0f0c2f94542d799a3d4562f6ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L124-L125",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6436276765a729adb6b5cbe0e1aef1d0ad2df44526c3f87efe142fe0ddac2af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "name": "repair_whitespace_preservation",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L127-L160",
      "signature": "def repair_whitespace_preservation(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "96c9cdd95c1b47c67993f5d515dc68e46101a7748cbc8a2b1a11152bfab8f931",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L121-L122",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc5b5e6c0b2669fa71699d476f2724fa6f36c223c9e04ce039aa0acbfd3b2afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "name": "validate_against_xsd",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L661-L708",
      "signature": "def validate_against_xsd(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95d9de05921fd5f3e0951239dacafd4be8f0728f6b2455e7a06f365e7eb52c24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "name": "validate_all_relationship_ids",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L408-L492",
      "signature": "def validate_all_relationship_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "219f87e4462705ef87d28dffee781b5fe898a8de0f24286929f114f72a58857b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_content_types",
      "name": "validate_content_types",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L517-L621",
      "signature": "def validate_content_types(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f85e505c88ebff2c51443ab46f8f16cc4942bee8dbd50aca0f45590c4791879a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "name": "validate_file_against_xsd",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L623-L659",
      "signature": "def validate_file_against_xsd(self, xml_file, verbose=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e95ad25abdb64cd6ecd0b2919d0041ebaf457809d47bab56b4d4735bbd333534",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_references",
      "name": "validate_file_references",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L310-L406",
      "signature": "def validate_file_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7af8027e7b13b6aaaa5a08fcc33a34afe42a5a2fe93856b556ef463e3dbcc7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_namespaces",
      "name": "validate_namespaces",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L189-L216",
      "signature": "def validate_namespaces(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "200e5b3d11825c433aa10cad2a5b8d0965ffa6b50f3730e9f15790ae920c8d86",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_unique_ids",
      "name": "validate_unique_ids",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L218-L308",
      "signature": "def validate_unique_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "975a00ea1cf0d677a83c5a9f996d4d5f9116e0405a714654c9e2833dfb92bd23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_xml",
      "name": "validate_xml",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/base.py",
      "span": "L162-L187",
      "signature": "def validate_xml(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee83c980cdec8a5a14485d1214b6aa515a4116d14702dee54d20dcc205954625",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py",
      "name": "docx.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L1-L467",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "93d3444c0ef3f043d21a2285c46d2cda478426b930dc33dcf3b11265935517b5",
      "chars": 17478,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "name": "DOCXSchemaValidator",
      "kind": "class",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L19-L462",
      "signature": "class DOCXSchemaValidator(BaseSchemaValidator)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15bc269c48db0effc4f9851ff7cb6b23b2857b5463917d618148a6a4f716bcfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "name": "_parse_id_value",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L257-L258",
      "signature": "def _parse_id_value(self, val: str, base: int = 16) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "0dd43837122cd1852439b1e88d1562c57523e031909005fd7c9829167953dcc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "name": "compare_paragraph_counts",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L246-L255",
      "signature": "def compare_paragraph_counts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7c4f7e66cbb9fd10b5bbdaab4dd945542960ef82c10227eedc4adce45fae6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "name": "count_paragraphs_in_original",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L182-L203",
      "signature": "def count_paragraphs_in_original(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "601470148cffee7278f0a1ada00dd1606fd1ab1582f29291ee862e7674d42125",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "name": "count_paragraphs_in_unpacked",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L166-L180",
      "signature": "def count_paragraphs_in_unpacked(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "079a8e5626c3e07797f756645d4d8d7a82423ce7bf14a604298c0ce5bc43c505",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L404-L407",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "05d0d5cc0dd73268ec0526a5bfe98c46d42e32b3346ecc1e6a7e8b99b57a4260",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "name": "repair_durableId",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L409-L462",
      "signature": "def repair_durableId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3164ce4f1a96460cff17b577b98190da50814e216da57bec6a5cb3961307d9ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L27-L67",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ad58161b49145e130f7e504307b63d17b068f84b3147203705d4318989e2f6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "name": "validate_comment_markers",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L316-L402",
      "signature": "def validate_comment_markers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0713001b010cab09af475641b503320101e429da702a27e346a3937cc49e96cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "name": "validate_deletions",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L115-L164",
      "signature": "def validate_deletions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dff8053c82e0cbf61f6bf81e7c036504b4e3be7028dce73f044ff8f0c25e315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "name": "validate_id_constraints",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L260-L314",
      "signature": "def validate_id_constraints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "938d3ca4d011cc43ac00de237f93f9fe22fd9c1f5eeb2d32c6a07a32d834b79d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "name": "validate_insertions",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L205-L244",
      "signature": "def validate_insertions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae71eea320b5cc0b2cd5962508a419be90f18afd99fdf4a24c56243edabd7421",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "name": "validate_whitespace_preservation",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/docx.py",
      "span": "L69-L113",
      "signature": "def validate_whitespace_preservation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c59f93b16ecda75c9796b875ffb61c4d6d4248327fffbbb24b868cb021280f23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py",
      "name": "pptx.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L1-L442",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17eadad2b7a8374ccbe4cda45693bcd6a36f9d61a7d60f9c9ceef9464dec8299",
      "chars": 15966,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "name": "PPTXSchemaValidator",
      "kind": "class",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L13-L437",
      "signature": "class PPTXSchemaValidator(BaseSchemaValidator)",
      "exported": true,
      "origin": "ast",
      "body_hash": "836c39302df74562e1dae535eb6b739a97490f9a4cfdfe9cdc9bb76aac8f8c6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._get_schema_path",
      "name": "_get_schema_path",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L204-L207",
      "signature": "def _get_schema_path(self, xml_file)",
      "exported": false,
      "origin": "ast",
      "body_hash": "1eee089caa153a5cb7f923bfb98a96ff8291bd4431244711881421fd2f4800d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "name": "_looks_like_uuid",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L266-L268",
      "signature": "def _looks_like_uuid(self, value)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f273b75284a7eb91c7a1f535ea9a6c3237d9e9d5016a7869f2237d4aa8d18549",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "name": "_original_slide_defects",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L123-L151",
      "signature": "def _original_slide_defects(self, schema) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "812652d3a4cafd93f7d030723faf47d2f86e590721dc5bc770f2cac7e8002a42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "name": "_package_map",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L74-L88",
      "signature": "def _package_map(self) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "0d6617de403ca75c7ad81fc1b20216155762a001ee0bf72633ed8bce2e7e7212",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._preprocess_for_schema",
      "name": "_preprocess_for_schema",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L209-L226",
      "signature": "def _preprocess_for_schema(self, xml_doc, relative_path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3811d37ab78fe83f093902b6e4a0d3f10c267eafc36c4be3d1715b48b77a3d51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L28-L72",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dc88c9721a6bb8b26536a73fea95f331e9c5a144a2c2dfd97204c48cdbce3c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "name": "validate_charts",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L109-L121",
      "signature": "def validate_charts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "faeed3148ed9f28320a702c1d64ada1b845448b0a168ad7799337614e3b1ffce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "name": "validate_master_theme_uniqueness",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L90-L107",
      "signature": "def validate_master_theme_uniqueness(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d41d9b570113e4fba0d3def9221b2a399a14464aaeae950861f935f262667282",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "name": "validate_no_duplicate_slide_layouts",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L338-L374",
      "signature": "def validate_no_duplicate_slide_layouts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc79713db3fe9a010ab0530114c594c3504a57049a56db232ff806fcdbc3b8f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "name": "validate_notes_slide_references",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L376-L437",
      "signature": "def validate_notes_slide_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a33ea23df1bbfc453bdf461e77a19066dca8c6090fa4e1f8763fbae90617ee2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "name": "validate_slide_layout_ids",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L270-L336",
      "signature": "def validate_slide_layout_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ce7a7da6c390ddbda3d253e41ec4d6e67bc2937291802368638272d5452d7b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "name": "validate_slides",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L153-L202",
      "signature": "def validate_slides(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbfd9aa6b62584b89d9699b495fcead6825f8791560c272cf2e254afb3348783",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "name": "validate_uuid_ids",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/pptx.py",
      "span": "L228-L264",
      "signature": "def validate_uuid_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60b7d9904daab6aab999c3a5208bb981abeafc1a43bdd4f7ffc4bd69ef1dd317",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py",
      "name": "redlining.py",
      "kind": "file",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L1-L300",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ed50d0885eee4b9c387f546b059bcaed64086815880a5167336244f93e305123",
      "chars": 11231,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "name": "RedliningValidator",
      "kind": "class",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L25-L295",
      "signature": "class RedliningValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5fa985e9fd94180230f9a97c6d43101b59f2423c1c59ccc2cf68654c4a02338",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L27-L33",
      "signature": "def __init__(self, unpacked_dir, original_docx, verbose=False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c64294dd23d959264cdccfb2cd5fdd0dc7612c93b8e6fba60562d4732a73394c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "name": "_extract_text_content",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L282-L295",
      "signature": "def _extract_text_content(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "89c475783c8a840f01d7526cd129d7bb16a431ab2f451924fe0f22f0bd6c0306",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "name": "_generate_detailed_diff",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L151-L179",
      "signature": "def _generate_detailed_diff(self, original_text, modified_text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4bc4c877f2b68152454666500509ae50fcbb5fcbe99b83ca56a1edb1bef6fce9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "name": "_get_git_word_diff",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L181-L250",
      "signature": "def _get_git_word_diff(self, original_text, modified_text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "616940f2bd2f517d29622b2e89f2757a5810ef29025be69acbbbf0f5183b14e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "name": "_new_tracked_changes",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L112-L149",
      "signature": "def _new_tracked_changes(self, original_root, modified_root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2e2ee2240e1573deafcfb4992ab2cdcb7584a64f1d511353fc9bc1ee6db24c00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "name": "group",
      "kind": "function",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L128-L129",
      "signature": "def group(elem)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d78eb74cbbe5a6c5c7d6e5f527892f74e8c0929dc2ba759e0cf25b8bd22d729",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "name": "text_of",
      "kind": "function",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L131-L132",
      "signature": "def text_of(elems)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a33d0814e14879d0b0ea2203e7cb513d2b5382080ee71da2f36ff04856ef22e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "name": "_remove_tracked_changes",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L252-L280",
      "signature": "def _remove_tracked_changes(self, root, targets)",
      "exported": false,
      "origin": "ast",
      "body_hash": "141ddc90975c713b0c38b5d3bfeb8b4c9681c0bea03797de9877ac2946c980b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "name": "_rendered_text",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L95-L97",
      "signature": "def _rendered_text(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "67c9bb3952fe1e3b700176d43cdeb78529a3bd869c9973f0564bfa71fcc9edd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "name": "_text_elements",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L99-L105",
      "signature": "def _text_elements(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3e40f9e1833830223485f31a30f4009ec60a91794b1b084b97e41b3c04cbd393",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "name": "_tracked_change_elements",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L90-L93",
      "signature": "def _tracked_change_elements(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2c56a56bdb8346ea56c721753bbe7bcef1be707cd5e8da8190f97edd24290616",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "name": "_tracked_change_key",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L107-L110",
      "signature": "def _tracked_change_key(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6dd26b7fcff436f7315902cdbed4a05220f7789ea53e01a7cbc852d4624d30b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L35-L36",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "59e5e12a57bac0aa730fc580572f6eabb63e2ee00625a464064ca1c4e43c53a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/docx/scripts/office/validators/redlining.py",
      "span": "L38-L88",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ca98ad6e1c370de12384af435949785055a991ee1ff1855da2b0366e42eb0df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py",
      "name": "quick_visualize.py",
      "kind": "file",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L1-L456",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2142ffd468d988d6f4ea20e018b3a05139b9002a30b630359dea3c0b7bc9ea99",
      "chars": 15012,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L324-L395",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "333f50c562dda65b6603956ee84a729c756ab395bbe405f243fc707ab35ae1f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#choose_engine",
      "name": "choose_engine",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L311-L321",
      "signature": "def choose_engine(args: argparse.Namespace) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4383a6482f508bedce5965d34c39def4f7a5d810e7a9c79682806666a2b05c75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout",
      "name": "create_smartview_layout",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L88-L167",
      "signature": "def create_smartview_layout(args: argparse.Namespace)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2477a16a02cb6ffcb6c56efd18233ca49d043de84c3ac498610069d694c6a97d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout.draw_node",
      "name": "draw_node",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L120-L161",
      "signature": "def draw_node(node)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6221bc8fa3901febe9ebcc97f0ed7c919f456ffcb280ba7baef67ee8c7570126",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout.draw_tree",
      "name": "draw_tree",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L97-L118",
      "signature": "def draw_tree(_tree)",
      "exported": true,
      "origin": "ast",
      "body_hash": "739053d899007eedd0b25a2e0f9f4dc56a22c3652bdc47c9c27df2e7f25f8d64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#create_treeview_style",
      "name": "create_treeview_style",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L244-L282",
      "signature": "def create_treeview_style(tree: Tree, args: argparse.Namespace)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aaff6bb720be6df39a83178ec057c9215e1b1074d6fe23deaea677da0b971d5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#load_tree",
      "name": "load_tree",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L55-L65",
      "signature": "def load_tree(path: Path, parser: ParserSpec) -> Tree",
      "exported": true,
      "origin": "ast",
      "body_hash": "90b32954f532a837ec72e60c82b8d0048e357e271307bfe0e50025df3a79b5e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L425-L451",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd32ea88a4e6c5fecb00b061c1cb0798c93f32bfeabaa2c1f4168f73bb88b6df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#mode_spec",
      "name": "mode_spec",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L39-L52",
      "signature": "def mode_spec(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "da01204ddf90b5f987fa9b1a9eb7540ba48612aed77d52d19a41d0772912cab6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#parser_spec",
      "name": "parser_spec",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L28-L36",
      "signature": "def parser_spec(value: str) -> ParserSpec",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f15f19cd3853df373065d3002e803c8afdb0f440e7a51f1f16dd4cb3311e4ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#render_smartview",
      "name": "render_smartview",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L214-L241",
      "signature": "def render_smartview( tree: Tree, layout, output: Path, args: argparse.Namespace, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "12e8255b564b77d4f26dd3c26cb4569d662526084477e0e346b6919b85c2623e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#render_treeview",
      "name": "render_treeview",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L285-L308",
      "signature": "def render_treeview( tree: Tree, output: Path, args: argparse.Namespace, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9401846f30402dbb098146567452d471979c164977ed730e2f5ecaed771310b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#run_interactive_smartview",
      "name": "run_interactive_smartview",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L187-L211",
      "signature": "def run_interactive_smartview( tree: Tree, layout, args: argparse.Namespace, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f4aa220bd4dfc31821c458c9f28f6aec3c8ee63f91cd882a6ffd01672d0b54f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#support_color",
      "name": "support_color",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L76-L85",
      "signature": "def support_color(node: Tree, args: argparse.Namespace) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "08c4d4e1c23cef98eef4f23203121bb22d963bdde527f645aead85bcffc46aa2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#support_fraction",
      "name": "support_fraction",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L68-L73",
      "signature": "def support_fraction(value: float | None) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d85f793ffe50088a353c2dfb04abf1592bc0af96cec898a5d2476bbf99e7156",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "name": "UserInputError",
      "kind": "class",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L24-L25",
      "signature": "class UserInputError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e8a8170e155d14dab9ca205347a936b989f6470ae1b3829b45e3b420f53ae9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#validate_args",
      "name": "validate_args",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L398-L422",
      "signature": "def validate_args(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "88a1b084a43944972382302440575751a7547d7d01213c7981a0666d19557430",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/quick_visualize.py#validate_bind_address",
      "name": "validate_bind_address",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/quick_visualize.py",
      "span": "L170-L184",
      "signature": "def validate_bind_address(host: str, allow_remote: bool) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2cb170f348e2492f7fb84bc8ba95cd8c94b006be93166f6378190976ce83806",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py",
      "name": "tree_operations.py",
      "kind": "file",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L1-L447",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "36fc5cfc1d7d6d3c672444594634ea454054c71785942d6b650a857a1e805227",
      "chars": 15763,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L322-L429",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "37ef7c72292cdf31e4d4a3960c424aff6d74cf2442ecd5f4f194525416c9bbe7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#comma_separated",
      "name": "comma_separated",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L42-L44",
      "signature": "def comma_separated(value: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e198fbf03410e5e62b7134b18119ab939ea65f091c6383e05aceab928e4a1ed4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_ascii",
      "name": "command_ascii",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L226-L234",
      "signature": "def command_ascii(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "59953cdf738f8a5d3bb979f57af9976cb078614eff5a784191d926db6e85f793",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_compare",
      "name": "command_compare",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L276-L319",
      "signature": "def command_compare(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b46938752d3e64a413a15d8ff82fa0a1e992abeeaa819121506dba7dac6b9ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_convert",
      "name": "command_convert",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L243-L246",
      "signature": "def command_convert(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64a43056bf5af1ed6aebd272f28d29ddc5f799164fed544dbb5256aa98763ea6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_leaves",
      "name": "command_leaves",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L237-L240",
      "signature": "def command_leaves(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cc75aed98604f24fdc1a3a5532637b30c1a88245aad205e44f095d258673f5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_prune",
      "name": "command_prune",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L267-L273",
      "signature": "def command_prune(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "475e78573ee02974e85755bf7ad5d8fea84eae62a739fed8a2e6fe5db6277510",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_reroot",
      "name": "command_reroot",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L249-L264",
      "signature": "def command_reroot(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d368de75eaeea2b41ce1e52b7ad46eaa901c4c835aaddac2d4b5bc45e583108",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#command_stats",
      "name": "command_stats",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L221-L223",
      "signature": "def command_stats(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64209bf1c91d3d438314bdf2b8d020cf44e40736f3e31c2fff9be07ef38fe78d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "name": "load_tree",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L47-L58",
      "signature": "def load_tree(path: Path, parser: ParserSpec) -> Tree",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3c5e814e1cf60e8526a5e6e1cc67d670514a0981b6cc916a40f866231a02ec4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L432-L442",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e89388614c8efd0b0f39489c0ac2d4ca8594d31d576b3b142fde70dc7fbf33e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#numeric_summary",
      "name": "numeric_summary",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L84-L93",
      "signature": "def numeric_summary(values: list[float]) -> dict[str, float] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c30b19a6c911226a3c1595cebe2c16df22cfd7212fcbeae4b666c6eb8f6ae7a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#parser_spec",
      "name": "parser_spec",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L31-L39",
      "signature": "def parser_spec(value: str) -> ParserSpec",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f15f19cd3853df373065d3002e803c8afdb0f440e7a51f1f16dd4cb3311e4ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#print_stats",
      "name": "print_stats",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L136-L169",
      "signature": "def print_stats(stats: dict[str, Any], as_json: bool) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "55017307aae0378d1343506da1e021712f89721d1c3f80125c05e855b94b1c94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#read_keep_names",
      "name": "read_keep_names",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L184-L207",
      "signature": "def read_keep_names(values: list[str] | None, file_path: Path | None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5404b9ef529d574b829ae249061ce40a03a7aa931ff252579bc98a892a3e17dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#resolve_unique_node",
      "name": "resolve_unique_node",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L172-L181",
      "signature": "def resolve_unique_node(tree: Tree, name: str) -> Tree",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab82e4f16642e294139433c576779f536fdcdfec81213e51da3727b6ec187798",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#save_tree",
      "name": "save_tree",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L61-L81",
      "signature": "def save_tree( tree: Tree, path: Path, parser: ParserSpec, props: list[str], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6c08acd85e1f99a9eb7709d41db93967bdc0b0cf5e9281f41b89b2a7b6c27cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#tree_stats",
      "name": "tree_stats",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L96-L133",
      "signature": "def tree_stats(tree: Tree, source: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec49b2431f4672d4b387aea762b90c18a1cb17d112accf57d66185bcef87e37b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "name": "UserInputError",
      "kind": "class",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L27-L28",
      "signature": "class UserInputError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "118ff81b1dadca0dab572d28f83d0a690bd02ecf8c191fd81bea45899efaedbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/etetoolkit/scripts/tree_operations.py#validate_requested_names",
      "name": "validate_requested_names",
      "kind": "function",
      "path": "skills/etetoolkit/scripts/tree_operations.py",
      "span": "L210-L218",
      "signature": "def validate_requested_names(tree: Tree, requested: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "349136facf3d6e3abd63cf4d58ed94ea440ebe44ca8d533036c1c1be5383e984",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py",
      "name": "exa_extract.py",
      "kind": "file",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L1-L118",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1ae6c53dcca9e57dc854509c917617a82a890181da79e574c10bb003ad58ec8d",
      "chars": 3529,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py#_build_contents",
      "name": "_build_contents",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L50-L59",
      "signature": "def _build_contents(text: bool, highlights: bool) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e15cd393e208f0801ebb82ac93e1cfff51a13eccb84de2ced417429ccad73b1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py#_to_typed",
      "name": "_to_typed",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L62-L71",
      "signature": "def _to_typed(item: Any) -> ExtractedDocument",
      "exported": false,
      "origin": "ast",
      "body_hash": "48e0dfd9beb575b9373c2129e3cf34eb03e42f1f525e96b4d14b46f4ce0bc516",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L94-L100",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c07239250b5a7be38d4838214502d23d99ce3ce0d56b023f4be74b4325af39bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py#ExtractedDocument",
      "name": "ExtractedDocument",
      "kind": "class",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L38-L47",
      "signature": "class ExtractedDocument",
      "exported": true,
      "origin": "ast",
      "body_hash": "c30c4bddc1e52ec4d29d4c7250489f2c5ecdb2d555929bd572a0d07109ce57ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L103-L113",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "baf77596c4eec39ec401f489e654fa182b97d565171f2a19611d040b625c2bf3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_extract.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_extract.py",
      "span": "L74-L91",
      "signature": "def run(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "abefe1c9e4b961558dd57753c4d01d6781336a8cc2b196f352c738a4b2e2a7ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py",
      "name": "exa_search.py",
      "kind": "file",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L1-L180",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "97442b48dcce37e5935af3ebea537b5cea41db53f1886620f1abeb21197947b0",
      "chars": 5979,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#_build_contents",
      "name": "_build_contents",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L60-L66",
      "signature": "def _build_contents(text: bool, highlights: bool) -> dict[str, Any] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c764623fcd1615f74b4ab668534d8284cc57647de75fb0b08860482fbb7b7401",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#_result_to_typed",
      "name": "_result_to_typed",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L69-L82",
      "signature": "def _result_to_typed(item: Any) -> SearchResult",
      "exported": false,
      "origin": "ast",
      "body_hash": "7d86cd6d5489dd4710c60d09c3e74d0c02e4775f15084750d0b909b609349aab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#_split_csv",
      "name": "_split_csv",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L53-L57",
      "signature": "def _split_csv(value: str | None) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "391215305bff2810294451905b2a1692de12469dc498900fb0677c6d781db54b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L130-L162",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8983e35259cc89df6beb10d6c62ee752b012c0c43410ba42493248d96cd5f8bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L165-L175",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "52304aab07fa725a4109515c6645fd95a06e6f1a898d6f9a2a9d4533e1c21551",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L85-L127",
      "signature": "def run(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0642ff339679c179147a6e835575a9d01f4d8dd802ce387b2cf17b8561f0d4a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exa-search/scripts/exa_search.py#SearchResult",
      "name": "SearchResult",
      "kind": "class",
      "path": "skills/exa-search/scripts/exa_search.py",
      "span": "L39-L50",
      "signature": "class SearchResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "56473e5112794546af090964c92dc20c18acc4a3c708d681bc7b65caf6345d62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py",
      "name": "doe_designs.py",
      "kind": "file",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L1-L184",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "50d9078c06c3609713ec48546f39685716757ab30a84fefe35b20883f7bf49c6",
      "chars": 7808,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "name": "_decode_two_level",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L31-L40",
      "signature": "def _decode_two_level(coded, factors)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3b5a837ce76e7862efc0e4bc900fa49d4274f1cccde2c697e6e2ebd6eefbbe55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "name": "_randomize",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L43-L50",
      "signature": "def _randomize(df, randomize, seed)",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f2ec7b607f3390efab3a79c24086797b5091fabec3d2e5d634a60f12391b824",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#box_behnken",
      "name": "box_behnken",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L127-L138",
      "signature": "def box_behnken(factors, center=1, randomize=True, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae86f6e3577e4cde59fa8b3baaf72b778dacaa123fb2348deee4bbeb152bbcef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#central_composite",
      "name": "central_composite",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L112-L124",
      "signature": "def central_composite(factors, center=(0, 1), alpha=\"orthogonal\", face=\"circumscribed\", randomize=True, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "26714271723d4ff3e9b95dba299f292055492b13531df30963c0520af29a3d29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#fractional_factorial",
      "name": "fractional_factorial",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L82-L96",
      "signature": "def fractional_factorial(factors, generator, randomize=True, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66db8b1bff3bad80af0d50661c0219f49a1812fe511a3dff9bd351963134a47c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#full_factorial",
      "name": "full_factorial",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L53-L67",
      "signature": "def full_factorial(factors, randomize=True, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f33a79357d8618e0bd50cca7fc61cb1f077acd82bcfece40e514425a4e49f4f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#latin_hypercube",
      "name": "latin_hypercube",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L141-L162",
      "signature": "def latin_hypercube(factors, n_samples, criterion=\"maximin\", seed=0, randomize=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5df7746ab7fa41fe8a8b2282542463ae07d07655ec307a885cca83fd8fcc9e13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#plackett_burman",
      "name": "plackett_burman",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L99-L109",
      "signature": "def plackett_burman(factors, randomize=True, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "47a976b6beb7b1c7b7d8991e27a503896dd4d8378af7f7ba32735a586f61e1d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/doe_designs.py#two_level_factorial",
      "name": "two_level_factorial",
      "kind": "function",
      "path": "skills/experimental-design/scripts/doe_designs.py",
      "span": "L70-L79",
      "signature": "def two_level_factorial(factors, randomize=True, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7784c9c502ebbfc4449aa895eb2e6526da9e80bda3db7ec212f212c7a152a4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py",
      "name": "randomization.py",
      "kind": "file",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L1-L172",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f0cf8bf7ba27a3381366b9cf03e30506d34a70670537d046e851c340187060f8",
      "chars": 7038,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#_normalize_ratio",
      "name": "_normalize_ratio",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L26-L38",
      "signature": "def _normalize_ratio(arms, ratio)",
      "exported": false,
      "origin": "ast",
      "body_hash": "b3392bf9961f7b2fdad66a755ed55572041cb88e81ba3f48a8e55b2bf88e3f0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#arm_balance",
      "name": "arm_balance",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L150-L154",
      "signature": "def arm_balance(df, arm_col=\"arm\", by=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea9cfe78b3d40f2480c28f533afc405d03822e1872b8c1a36d2371f4ecaabb88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#assign_factorial_runs",
      "name": "assign_factorial_runs",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L135-L147",
      "signature": "def assign_factorial_runs(design_df, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1168f2c144f4332cdc26549d38fa884e8ed8d121698aa37ba484a3c347768a1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#block_randomization",
      "name": "block_randomization",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L57-L86",
      "signature": "def block_randomization(n, arms=(\"treatment\", \"control\"), block_size=None, ratio=None, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f603b4aabb6286027281c6c0187a5b82f5b85f71a5ad283db6b6ea1224df43da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#cluster_randomization",
      "name": "cluster_randomization",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L115-L132",
      "signature": "def cluster_randomization(clusters, arms=(\"treatment\", \"control\"), ratio=None, block_size=None, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "77367e2d2608e0998081f7a2c1b188e55e9076ccdbd38ece4e5244fd4255705f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#simple_randomization",
      "name": "simple_randomization",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L41-L54",
      "signature": "def simple_randomization(n, arms=(\"treatment\", \"control\"), ratio=None, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "57a18f769ba04f7891359d1e014b05ada7c1e1c916ab20bb394299f2935e6f4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/experimental-design/scripts/randomization.py#stratified_block_randomization",
      "name": "stratified_block_randomization",
      "kind": "function",
      "path": "skills/experimental-design/scripts/randomization.py",
      "span": "L89-L112",
      "signature": "def stratified_block_randomization(strata, arms=(\"treatment\", \"control\"), block_size=None, ratio=None, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e159d84877f1626bf54ec40605569e6fb81b31190682a61956450c2210444b36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "87539288ce5d4caf24fc9fca14e5d70c41730c9d4285106ac4db0c4b5cefd60c",
      "chars": 69,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "name": "_capabilities.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L1-L577",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "58d431522bd302345e61dca1926d5cc4c0b21c0d63577cdeb127509a72c7fee8",
      "chars": 20714,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#_first_nonempty_text_byte",
      "name": "_first_nonempty_text_byte",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L462-L469",
      "signature": "def _first_nonempty_text_byte(path: Path, *, limit: int = 8192) -> bytes | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2cbf1d80b5e6f7ecccf8b1c5c601a7971f86382aa1f71020e01c865ce0ba21fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#_reference",
      "name": "_reference",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L156-L167",
      "signature": "def _reference( format_name: str, reference: str, note: str, ) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "81de15e3beae73ea212f5aff4387378ea35107bc83b75755fb2f40a62ab730f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#automated_capability_rows",
      "name": "automated_capability_rows",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L570-L576",
      "signature": "def automated_capability_rows() -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "93ff3599a75ea37b4a14ff9c305c22d42a7761dd0a7c3505a36aada60d9605d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "name": "capability_for_path",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L454-L459",
      "signature": "def capability_for_path(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0bdba0c22e35fdcda21d1b6a3bcf931f29114a88e489b73b3e35e257f0aa7a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#preflight_npz",
      "name": "preflight_npz",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L520-L567",
      "signature": "def preflight_npz(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fafc9d2b545dd5e08c86b78d9b4f41814560b79b4fcc18e0b58edaf59acc1118",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#suffix_key",
      "name": "suffix_key",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L439-L451",
      "signature": "def suffix_key(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa3e5281ece08441e360cdb5329d3b84e756c251c8d7347f86ba6dac3b494b49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_capabilities.py#validate_magic",
      "name": "validate_magic",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "span": "L472-L517",
      "signature": "def validate_magic(path: Path, suffix: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ecf801fe984a2c4f3496015d57945b1e82f43c898453bbed151e100bad1e02a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L1-L461",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "62f572df67792eaff8ddaa53f9938e27fbb55175442d18fcc432b66a31242b1b",
      "chars": 14035,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_absolute_lexical",
      "name": "_absolute_lexical",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L94-L97",
      "signature": "def _absolute_lexical(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "c4ec3c61c297d57f8cb46cd1c63dba4f12aea2b1aadc9c386c4db667097f0d62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_reject_json_constant",
      "name": "_reject_json_constant",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L380-L381",
      "signature": "def _reject_json_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "61069c9e1163b599ff256aeb8a9bca22f6aaf4ea9da04941da041ed454b732e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L100-L111",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "84406405da2239a4514a156c73d3653653e822ffe2069c4bb132b069b25f035f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_reject_url_and_traversal",
      "name": "_reject_url_and_traversal",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L75-L91",
      "signature": "def _reject_url_and_traversal(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8e7718c4248415027125103f5768c6d9587c34598c9f02b2684aed0a90865134",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_strict_json_bytes",
      "name": "_strict_json_bytes",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L226-L244",
      "signature": "def _strict_json_bytes(document: Any) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "d184c84407cfd62c0049d254976add4a96f69840378e66f1514e9f3e5f159cf9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_suffix_matches",
      "name": "_suffix_matches",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L140-L142",
      "signature": "def _suffix_matches(path: Path, suffixes: Iterable[str]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "85e0c2796b954d700ddb97ba8fb2ebaf32427a577799e38899472321fe7788f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_unique_json_object",
      "name": "_unique_json_object",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L384-L390",
      "signature": "def _unique_json_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1942105eb13ab9bc62e67e27beb46a08d3cd654f0c5f46a512cf3c1738302fbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#_within_root",
      "name": "_within_root",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L133-L137",
      "signature": "def _within_root(candidate: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c09269247f1db3471c89e607b8565c56bba78140ca70d54e117d163f5e1b71bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L247-L280",
      "signature": "def atomic_write_bytes( output: str | os.PathLike[str], payload: bytes, *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e484dae236bab5c7f90eeb284e0255b2223ccf6207fa0fee71d2e6ad849e7d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "name": "bounded_file_limit",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L54-L62",
      "signature": "def bounded_file_limit(value: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "381e7d286170d85f759511738707b9fc4eb5d10fca3252831a901797f1d456ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#bounded_integer",
      "name": "bounded_integer",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L38-L51",
      "signature": "def bounded_integer( value: int, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "40b81665fca01d72b3dde3b2c7de08c3dd2c6ab0228174325938e34546a5302f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L145-L182",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str] | None = None, max_bytes: int = DEFAULT_MAX_FILE_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d2b776f987d915d44aff8a97ed08a8b07351b2b521fcb617c97a14ca1bafcd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L185-L223",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6f09673541eb5e57ad2aab0b6f6678b7f1499e51026aefb776473e699b53864",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L114-L130",
      "signature": "def checked_root(value: str | os.PathLike[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "bebe0b1dedad462a3a92d00aab7633139f26f3e5b31023e2187050b8c49b53b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L34-L35",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0059a218c0346208075d169f8e599f80a360a921de61a49b347772a75770f996",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "name": "display_identifier",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L367-L377",
      "signature": "def display_identifier( value: str, *, kind: str, reveal_identifiers: bool, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "38f7dd8c750b293ecb0618b9fa994912b7f57714433e40065c6d9b183befe105",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L283-L302",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, root: str | os.PathLike[str] = \".\", force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "50f653225fc40bb95358a68292c2751f8f4601dfc402e0d5c11b97804568a55a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#emit_markdown",
      "name": "emit_markdown",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L305-L328",
      "signature": "def emit_markdown( text: str, *, output: str | os.PathLike[str] | None = None, root: str | os.PathLike[str] = \".\", force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d779503ae65b20b3c0e3b8a05377f2cdab40f9926be99b604065e53c4cc2187",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L65-L72",
      "signature": "def finite_number(value: str) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b773bf2f6a6c61bebddd3a05b37e23c3af733a19a4fc70fb6bb977c9db30d840",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#load_strict_json",
      "name": "load_strict_json",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L393-L412",
      "signature": "def load_strict_json( path: Path, *, max_bytes: int = MAX_JSON_BYTES, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "757fc9b885b1a497b176ab7275940966425f59496ad9927f3be86e5dcfa3eec4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#markdown_scalar",
      "name": "markdown_scalar",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L354-L364",
      "signature": "def markdown_scalar(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "90d7bc35864dfaf0e69c1877263b584f129d4fb060017204ef52e4b5109ce013",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L449-L460",
      "signature": "def run_cli(function: Any) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f536c2b997136f2e17ab6ab41677d26e0b0ec5b1b03476f303f81423e2126723",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#sanitize_identifier",
      "name": "sanitize_identifier",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L341-L351",
      "signature": "def sanitize_identifier(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d867b2dd277fd8dcf5a0e68ea26f97d28f1d7cb90d8773b4a48448666ce0d29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L434-L446",
      "signature": "def sha256_file(path: Path, *, max_bytes: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "55ebce889dc13658be51614292ef80d95ba84f9670d768b6d1e3bbed8e489b68",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "name": "stable_token",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L331-L338",
      "signature": "def stable_token(value: str, *, kind: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "98275ae76d30f6231c8f80cc3cb364284ab459859e293d8012fae5578494f8d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_common.py",
      "span": "L415-L431",
      "signature": "def validate_keys( value: Mapping[str, Any], *, allowed: Iterable[str], required: Iterable[str] = (), context: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5b21f5ce6148fd3b79a37c5a5ce8201f120ee8d372e4fd4909291e2f17f150b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py",
      "name": "_structured.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L1-L392",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "afe279b590f2fff35a1b779b5c814b28b000b19b0c2203c6d7c6fb50ab39c149",
      "chars": 14584,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#_array_report",
      "name": "_array_report",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L84-L158",
      "signature": "def _array_report( array: Any, np: Any, *, array_id: str | None, reveal_identifiers: bool, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ffe6c0d6f93fa9bf87b46be7c66f6d34889a51ca359f236efeeb31d0f2fbf179",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#_dtype_report",
      "name": "_dtype_report",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L40-L67",
      "signature": "def _dtype_report( dtype: Any, *, reveal_identifiers: bool, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "eac45bfc4a75d18bd6349a4c40a8149e20348392ccd09fb3468e25363527e4b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#_sample_array",
      "name": "_sample_array",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L70-L81",
      "signature": "def _sample_array(array: Any, np: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "098336dc12a24d9ee254c6c7fd116daea87e7357435d17910e779b32d7c9e942",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#_shape_elements",
      "name": "_shape_elements",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L236-L244",
      "signature": "def _shape_elements(shape: Any) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6fb5b4cea6e0b0a256a3d409c95f4922b5d739c160be4973e743018dc85d4054",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_hdf5",
      "name": "inspect_hdf5",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L247-L391",
      "signature": "def inspect_hdf5( path: Path, *, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "442dba99056dc276a35dfa417b1d7cc37ff08117d22c0e9829d81ae4e3cda2cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_json",
      "name": "inspect_json",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L26-L37",
      "signature": "def inspect_json( path: Path, *, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "01f1db26c7dde17ebedf3787e559bfa4a933f291295e008da161dff0d7e83e90",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_numpy",
      "name": "inspect_numpy",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_structured.py",
      "span": "L161-L233",
      "signature": "def inspect_numpy( path: Path, *, suffix: str, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6487f6139e2b656553d7920d27b1989edb1544eb36cf94add117b75a1be5f775",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "name": "_tabular.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L1-L906",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9c25736f9e0ddcc2c74a51e9ac8e11caa9fea47b8026d3ddd047673f2f49de17",
      "chars": 32695,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#_distribution_report",
      "name": "_distribution_report",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L492-L572",
      "signature": "def _distribution_report( values: Sequence[float], *, numeric_count: int, nonnumeric_count: int, missing_count: int, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9193e6d49e873dce896b2eef5de51c526b69818e969ece18b1302ca297bfcd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#_moment_skew",
      "name": "_moment_skew",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L481-L489",
      "signature": "def _moment_skew(values: Sequence[float]) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f3840be5005a43128fd9903b81995581723f86b85e1489aae887e85232618d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#_parse_time",
      "name": "_parse_time",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L664-L676",
      "signature": "def _parse_time(value: str) -> datetime | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "651e07acba49daaca9bf4457d8c71014aa469be69d1a1ee6292535d358b4852d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#_quantile",
      "name": "_quantile",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L181-L194",
      "signature": "def _quantile(sorted_values: Sequence[float], probability: float) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1609fecf2cd27dee56f54c6b2dd7fcfa051b04ccb143e0ef04cb431728dc7deb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "name": "audit_distributions",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L575-L661",
      "signature": "def audit_distributions( path: Path, *, columns: Sequence[str] | None = None, max_rows: int = DEFAULT_MAX_ROWS, missing_tokens: Iterable[str] | None = None, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cae94f0896ce080afceec8fb122c73e9f19406acf3d57b4310260cdfebc9d65f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_header",
      "name": "on_header",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L592-L620",
      "signature": "def on_header(names: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "13c61d49a88f260cade6d5e327aceb39d8efd4d7c396a0775d0bd1f5ab624672",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_row",
      "name": "on_row",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L622-L628",
      "signature": "def on_row(row_index: int, row: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "771b3e82f289d7b28506b061b1d47d1f68fd32c98d4d44c4875af8d9ed8f2e09",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "name": "audit_missingness_and_leakage",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L679-L905",
      "signature": "def audit_missingness_and_leakage( path: Path, *, max_rows: int = DEFAULT_MAX_ROWS, missing_tokens: Iterable[str] | None = None, group_column: str | None = None, entity_column: str | None = None, split_column: str | None = None, time_column: str | None = None, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2def03208433e93ab7287f004d4359e91d3319aa7c71dabad3bfc292e4f73df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_header",
      "name": "on_header",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L709-L717",
      "signature": "def on_header(names: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d882a4f78e7d8c86c4060f8599be52d1391cdfc66da6eff8c420c7726ee1266",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_row",
      "name": "on_row",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L734-L786",
      "signature": "def on_row(_row_index: int, row: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc76d7857ecfe4794f9638ed430ac256014afb96bc40b84b95396980e2d6c954",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.partition_report",
      "name": "partition_report",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L813-L835",
      "signature": "def partition_report( mapping: dict[str, tuple[int, list[int]]], *, key_name: str, ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "97b29327dc89a47b9a41635a24f0bc747f262d7f8ae4e738436e4c3274b82ad8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.update_partition",
      "name": "update_partition",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L719-L732",
      "signature": "def update_partition( mapping: dict[str, tuple[int, list[int]]], key: str, row: list[str], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0deedbb82bc4a05eb50a492ff63dee9757302c4049056864d27dc036deba0f6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "name": "ColumnAccumulator",
      "kind": "class",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L198-L320",
      "signature": "class ColumnAccumulator",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b97e45864b831eaf5a015fb59b4b4569cc252ca8ea67002967e8068d8236cf1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.__post_init__",
      "name": "__post_init__",
      "kind": "method",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L218-L219",
      "signature": "def __post_init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c5b8dbf9bdcc53ebca9eccd050110dfee7ab782c276dc5831df2d4712c4911e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ColumnAccumulator"
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.add",
      "name": "add",
      "kind": "method",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L221-L262",
      "signature": "def add( self, value: str, *, row_index: int, missing_tokens: frozenset[str], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33fd278a3bf0908f4c21b77cfcf513a6e00b452de4d69057a5d483a777814258",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ColumnAccumulator"
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.as_report",
      "name": "as_report",
      "kind": "method",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L264-L320",
      "signature": "def as_report(self, *, column_id: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c16af6e1f894a4703d5c05cc083298f06d7aa47206feb7cd018ecf59533571fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ColumnAccumulator"
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#delimiter_for_path",
      "name": "delimiter_for_path",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L59-L65",
      "signature": "def delimiter_for_path(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f6219d30574e6f1ea3bfcdef2a0c4a099e3cd723efe0f8b3b26b8fdc28ad06d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#is_missing",
      "name": "is_missing",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L55-L56",
      "signature": "def is_missing(value: str, missing_tokens: frozenset[str]) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "90b1c3f6a0458b6162cbf48c0018b4f85e171bd08d977da066778c496d6df904",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#normalize_missing_tokens",
      "name": "normalize_missing_tokens",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L46-L52",
      "signature": "def normalize_missing_tokens(tokens: Iterable[str] | None) -> frozenset[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8aae86ac7c8a2e93d67de14738e2d05c5dcc74f175b805838f64373a6086c9e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample",
      "name": "PrioritySample",
      "kind": "class",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L158-L178",
      "signature": "class PrioritySample",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d55ac1ecc670f9767ae807eca9297652c5c6b456cb7bd7e578c1a1ef95ce388",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L161-L163",
      "signature": "def __init__(self, limit: int) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "cfe82697491ac127fa469f5be2863b4ab8020a23634d0297b080eea8a80a5cc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrioritySample"
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.add",
      "name": "add",
      "kind": "method",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L165-L175",
      "signature": "def add(self, value: float, *, row_index: int, column_index: int) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "98c76705376de9b172e7e69aa8840d9a9036a7cd4713d1729e0714f56de6b4aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrioritySample"
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.values",
      "name": "values",
      "kind": "method",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L177-L178",
      "signature": "def values(self) -> list[float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "260f5594127dc884aa36d3e11b1e4ac2dbe7b64c8ea68181efbce86e4c34163c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrioritySample"
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_json_structure",
      "name": "profile_json_structure",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L404-L478",
      "signature": "def profile_json_structure( document: Any, *, reveal_identifiers: bool = False, max_nodes: int = 100_000, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb3f1d87977fb4911b5ded47b623cbf8166a515836b1da151ef94c98518bd852",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "name": "profile_table",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L323-L401",
      "signature": "def profile_table( path: Path, *, max_rows: int = DEFAULT_MAX_ROWS, missing_tokens: Iterable[str] | None = None, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "71d115ddc50c10a05d63bac947bf1a0b48d01ff18b02fb2812930dfd0a236a5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table.on_header",
      "name": "on_header",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L339-L344",
      "signature": "def on_header(names: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bcd0cc1683737f1af998c5da96624e2776514481ef24a3349433fdfc4c34e2e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table.on_row",
      "name": "on_row",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L346-L363",
      "signature": "def on_row(row_index: int, row: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9ba2dd96642ffbd952a48bbb422636abcdf60836ab1771abf60ccd7d8c92630",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#resolve_column",
      "name": "resolve_column",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L145-L155",
      "signature": "def resolve_column(header: Sequence[str], requested: str | None) -> int | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "36c1770215256aa53ba28b1ff2a93656f0f2cb870d237c0a24a51656feb83715",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "name": "scan_table",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L68-L142",
      "signature": "def scan_table( path: Path, *, max_rows: int = DEFAULT_MAX_ROWS, max_columns: int = MAX_COLUMNS, max_field_chars: int = MAX_FIELD_CHARS, on_header: Callable[[list[str]], None], on_row: Callable[[int, list[str]], None], ) -> ScanSummary",
      "exported": true,
      "origin": "ast",
      "body_hash": "972b5063f62c11a44f41a24b32f9a875b83e09406f1c3cd4d40720a1240ffcaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/_tabular.py#ScanSummary",
      "name": "ScanSummary",
      "kind": "class",
      "path": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "span": "L40-L43",
      "signature": "class ScanSummary",
      "exported": true,
      "origin": "ast",
      "body_hash": "f99c0c778736f8d721686ff56ffb9a544065f6335c62922bbe037190e7e2cbff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "name": "capability_manifest.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "span": "L1-L185",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1e52e1db668ebce919751a75b53ad959c36749e4b1695f59d8ac2d6c8eda4abf",
      "chars": 5433,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/capability_manifest.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "span": "L147-L176",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d47826843c0ccf98ef64b5271f56e076f0139cdff097affbf1d8eda2e6700edc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/capability_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "span": "L29-L77",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf270121bf3294567929505dd9f5a6e9d3e1da603bd1f0edc00a8389899082ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/capability_manifest.py#capability_matrix",
      "name": "capability_matrix",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "span": "L80-L96",
      "signature": "def capability_matrix() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa6cca62aef5e25920028563550186015963286d9a6a2f97d3286462867dc51b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "name": "inspect_manifest",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "span": "L99-L144",
      "signature": "def inspect_manifest( path: Path, *, max_bytes: int, include_sha256: bool = False, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "17e5066f52a53857e64a5f35bb0975978849e1a27e101be386ac0cd2cde926db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/capability_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "span": "L179-L180",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "name": "distribution_sensitivity.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "span": "L1-L118",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ca6e9f3dd59cfb382b1ff0874e709933c136ec942085a0437d4000bbf7f1f3c8",
      "chars": 3304,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "span": "L72-L109",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2c37468e40fcf3a8c65d889db55024ada7f0e88978bd89542e2e30b6dcc42544",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "span": "L20-L69",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b60893dfb22e28f6dd6d3ee7f77c01a81e79bf2b53582884aea86eb168329552",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "span": "L112-L113",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "name": "eda_analyzer.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L1-L346",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6532b28ad3f28dd9f58acecb54361c8271d2755584a54ecb0be34da74d1e5d20",
      "chars": 10547,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_infer_output_format",
      "name": "_infer_output_format",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L298-L303",
      "signature": "def _infer_output_format(requested: str | None, output: str | None) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a23480463dd12b8191fa71280b807bcb3114bed59746584ea954533920cb786c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L306-L337",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3fec7838b59d83cc4ef6e4d0fdbc820ceeeb77ea7d59aff0f54ad02758e7b1a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "name": "analyze_file",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L116-L160",
      "signature": "def analyze_file( path: Path, *, suffix: str, max_rows: int = DEFAULT_MAX_ROWS, max_records: int = DEFAULT_MAX_RECORDS, max_bases: int = DEFAULT_MAX_BASES, missing_tokens: list[str] | None = None, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ead10713c3973198d1b60b69b4c521986ef3f6dde7991dfe87a0d4b00d8c738",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L49-L113",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "745c360358ca14d804d17813032c3e8eae4f8c113e1cb39d57248e27903c5ffc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_report",
      "name": "build_report",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L163-L228",
      "signature": "def build_report( path: Path, *, max_bytes: int, max_rows: int = DEFAULT_MAX_ROWS, max_records: int = DEFAULT_MAX_RECORDS, max_bases: int = DEFAULT_MAX_BASES, missing_tokens: list[str] | None = None, reveal_identifiers: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ccca60018a07ab1a1453bf84b509f3a1f02a0350e5685a97d1b188d147c4dcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L340-L341",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#markdown_report",
      "name": "markdown_report",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "span": "L231-L295",
      "signature": "def markdown_report(report: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e45cc2e795a9dd724a2fe9329d1b6d74bdf361448058326772db43303645453",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "name": "image_inspector.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L1-L215",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bf25687da27c67eb33b976d11bfb23a40f847b635aca941374efa1133184144d",
      "chars": 7298,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#_bounded_element_count",
      "name": "_bounded_element_count",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L56-L67",
      "signature": "def _bounded_element_count(shape: Any) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "d026948a9dfe495e4a9bd3d4fd9133181c314a81addef96eb3d545e5e919952c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_pillow",
      "name": "_inspect_pillow",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L70-L105",
      "signature": "def _inspect_pillow(path: Path) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "42391d342a1baee8e836da4022bc86d30908ebecb8749aeb9c65ef6a7a206437",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_tiff",
      "name": "_inspect_tiff",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L108-L158",
      "signature": "def _inspect_tiff(path: Path) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c1c03df7be71b9e1a31a0077d2a2c63c67a494ea6d2a20bf8942c20d81b6aa12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L171-L206",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6542d7939ed79cfd145aa3b85facbd4727f8a8c93d666c66ac9e020c2835e93c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L28-L53",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "72c372d5eb5bdd05aa8370de9f2a22d07f46f9bb42285ffc11e6d4c1bda6d5d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#inspect_image_file",
      "name": "inspect_image_file",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L161-L168",
      "signature": "def inspect_image_file(path: Path, *, suffix: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "880a0a44cf71515fbcb16ed8d2e215b9eeab9a14a1c72ccce92a76d588cf3f0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/image_inspector.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "span": "L209-L210",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "name": "missingness_leakage_audit.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "span": "L1-L131",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "28458714e80ee31db636c0265ba21e1623ba27816d31e236fdc9b873a5b78ffc",
      "chars": 3904,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "span": "L83-L122",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b74de6d83cc01b1a3652f94591131c7b25880dec5cdb9d9068f51567271ba606",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "span": "L20-L80",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "51d7cda34c140336506d0dcaadb48f1dc41142b11416f5ec279cf0c99cfc0ccf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "span": "L125-L126",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "name": "report_scaffold.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "span": "L1-L144",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4d745592384bfceb0ec7384eecfc5e8ba49ebfa4ec55be75a99ce7c7e102f60b",
      "chars": 4247,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "span": "L110-L135",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5bc4e84a5db74981d40f94b0f8451d322181c3f897bf4aa893d1ea2aab4aedc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/report_scaffold.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "span": "L24-L66",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca3be31925e32791d0fb14a584104440a0eee13bef5c64b82ddfdf80f9c1bfd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/report_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "span": "L138-L139",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/report_scaffold.py#render_scaffold",
      "name": "render_scaffold",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "span": "L69-L107",
      "signature": "def render_scaffold( *, analysis_date: str, manifest: dict | None, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "33b520b1461e241359dcefb42e07ac87f67bdf59e229019bafb6dcdee6167896",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "name": "sequence_inspector.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "span": "L1-L256",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6f821c8e3b2897ad178a1c684670226b17c1afce37cd083c4f77a1daabb0340f",
      "chars": 8621,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "span": "L216-L247",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "684ad4b9a882d3e4ea62ad94ca657741054cef86a001eb052bf7298d43cc1d8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "span": "L31-L68",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "433db0fded0a10190f9c5caea41486b21c5fa3797df8928a94128e4cf4c2cd87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#inspect_sequence_file",
      "name": "inspect_sequence_file",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "span": "L71-L213",
      "signature": "def inspect_sequence_file( path: Path, *, suffix: str, max_records: int = DEFAULT_MAX_RECORDS, max_bases: int = DEFAULT_MAX_BASES, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "55d9257e616f019323e7877835cc914da2fd13c372dc12f15236e0919ea7a1d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "span": "L250-L251",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "name": "tabular_profile.py",
      "kind": "file",
      "path": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "span": "L1-L110",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "78cd139292c18e31d17de882762948db7b51fdc3278546f994270a287d0149db",
      "chars": 3077,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/tabular_profile.py#_main",
      "name": "_main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "span": "L68-L101",
      "signature": "def _main() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e8e63ef78a835c7d32c57aebc9d38f8980f6aeefb961eecb3d6f89500a86bc56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/tabular_profile.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "span": "L21-L65",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5924616aa8ebf8fb156960628e7e180dc7448a9691825f9ad35ba9e6c421f6c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/exploratory-data-analysis/scripts/tabular_profile.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "span": "L104-L105",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "715480d0490e87e5a5e5e14b34a5c5fa28042f939da84c63b2cab4039a01e5fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py",
      "name": "inspect_fcs.py",
      "kind": "file",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L1-L440",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "118a9af5374437d72020de1dfbf0aafc39aaa62d65cb92ef3821d2f5782ce22d",
      "chars": 13735,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L44-L129",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "37eba609438462d6c4c300f4ce26718d04b79147e2c7d0eed052fae174e6364b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#channel_kind",
      "name": "channel_kind",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L190-L199",
      "signature": "def channel_kind(flow: FlowData, array_index: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d72d4c31093849293af747dc6ba0e400abc51af957b4e839fc497135e89ffb04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#channel_records",
      "name": "channel_records",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L202-L219",
      "signature": "def channel_records(flow: FlowData) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0eb5f13f43728b88aec7d8c62d66bc3ac5ac231b3cddea515c6eb023d02205f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#dataset_record",
      "name": "dataset_record",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L253-L302",
      "signature": "def dataset_record( dataset_index: int, offset: int, flow: FlowData, *, include_text: bool, include_analysis: bool, stats: bool, raw: bool, estimated_array_bytes: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b7968e127f18fb0c0d6ca026c943699b3ccc17b289bb7ecbf06465b5152cabd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#finite_statistics",
      "name": "finite_statistics",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L222-L250",
      "signature": "def finite_statistics( events: np.ndarray, labels: list[str], ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6598be97196216f637132961678a4582d9c623178b307773dd80b05c786f151",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#inspect_file",
      "name": "inspect_file",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L305-L386",
      "signature": "def inspect_file(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce46e45999e8fe957402d3c981eb0cac56a196e9941e288e1cc6ddc8c22d1760",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#iter_datasets",
      "name": "iter_datasets",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L140-L187",
      "signature": "def iter_datasets( path: Path, *, max_datasets: int, null_channel_list: list[str], ignore_offset_error: bool, ignore_offset_discrepancy: bool, use_header_offsets: bool, ) -> Iterator[tuple[int, int, FlowData]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "abc3e0655e241b3aa3a359d01081fa3d2475cec7d9a3bcbdd69eb3913fcbd619",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L405-L435",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d236c40c45b92a40fc0bb13538416bd450eebdb0c753c86bb2ef7b4212ecd81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L30-L34",
      "signature": "def nonnegative_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f509c3d8569d46966954972dcdf510b5af72b8cb776f6ebd46dcf05a785478cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L37-L41",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6602124caacc04f345d45fd141024b36ca4c117526aa1cd742355a39abdf2a31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L132-L137",
      "signature": "def sha256_file(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "13a058cb0c10286ac96cdaf4688b700c6dc30aff241dfc4fa03d4c781d6884f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/flowio/scripts/inspect_fcs.py#write_report",
      "name": "write_report",
      "kind": "function",
      "path": "skills/flowio/scripts/inspect_fcs.py",
      "span": "L389-L402",
      "signature": "def write_report(report: dict[str, Any], output: Optional[Path]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a3ec689a39c895b391ee0f0acccc1a144c09b609b223dc98b9a7abbeb943570",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "93b33cb86288cb882ac5876c2cc1db9bae72fc96296abc75c7ecfab97a052989",
      "chars": 74,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L1-L492",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a256d979afd2eb376fe7a907e717a5f356d02daba6c9772208c0b295d58dff64",
      "chars": 15595,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#_absolute_lexical",
      "name": "_absolute_lexical",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L194-L195",
      "signature": "def _absolute_lexical(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "b3e4e503ad9967b0e5f1f537e76588337dc40f75923cd443d5d9a83e57497b55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#_reject_json_constant",
      "name": "_reject_json_constant",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L339-L340",
      "signature": "def _reject_json_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d174ce8d7a254e235b7145f9a8b84e0115385d53821dda45218e39299ce9a620",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L198-L210",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e598d65a3d18238c8922e24569e91db5efafd03e1d0d83febbedada063f009c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#_reject_unsafe_path_text",
      "name": "_reject_unsafe_path_text",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L179-L191",
      "signature": "def _reject_unsafe_path_text(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "0f828615c3329d195fd3a3f92b0a96aff65c5e82d8c6f21609daf137e25e5438",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L343-L349",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c1fb7c4c426a83617c5f288d429e2f2f8c78f3cf46961f321b1ae033d909c89d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#_within_root",
      "name": "_within_root",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L230-L234",
      "signature": "def _within_root(path: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "07c17727f037da0816852dcf8e3b4aba3c98f4eab7b107123ba75314fa924a0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#atomic_write",
      "name": "atomic_write",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L315-L336",
      "signature": "def atomic_write( destination: Path, payload: bytes, *, force: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e5355f03c65ae11c2474c26fda10530faba6427287b684207e9343af1d84f76",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L53-L62",
      "signature": "def bounded_int( value: Any, *, name: str, minimum: int, maximum: int ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf4513de8153c92800c00266d2b1dc5cdc253a89146aa775149d6b94bef8752e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#checked_input",
      "name": "checked_input",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L237-L279",
      "signature": "def checked_input( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", kind: str = \"file\", suffixes: Iterable[str] | None = None, max_bytes: int = MAX_HDF5_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "a820396607c28a5e58bff99fde20f0592adc9d2d4a9c8ad3aefc749cf0447a6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#checked_output",
      "name": "checked_output",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L282-L312",
      "signature": "def checked_output( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "6432b4a4ece700b1219d821c7d87875fa4c9a35e97ba65dcd420a5c9eef1ddc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L213-L227",
      "signature": "def checked_root(value: str | os.PathLike[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1e596461f8f1e5969101fa5c1aba2a60470e764c76762a5dbdd2bd485b6b809",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L402-L403",
      "signature": "def emit_json(document: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f6a78140509d06eb0c39f7329bcbb8a4969179067099ae8c843f9ebf6345eed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#fail_json",
      "name": "fail_json",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L406-L415",
      "signature": "def fail_json(tool: str, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3cbff0c96d101b435c6ffb505fcfe8302d7d418db076cbed7871974b394eb3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L65-L86",
      "signature": "def finite_float( value: Any, *, name: str, minimum: float | None = None, maximum: float | None = None, allow_none: bool = False, ) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a0d13daa42d5b1f6d2af2c600c5f7908b1a3bf8711a7739a1ef325fe9773fab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "name": "iter_local_files",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L431-L480",
      "signature": "def iter_local_files( path: Path, *, suffixes: Iterable[str] | None, max_files: int, recursive: bool = True, ) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb67d1bd4e6a8fa37e8187fd65f2417635c2e615c8f128240c9fea00b135bc98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#json_bytes",
      "name": "json_bytes",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L383-L399",
      "signature": "def json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "2073ca1bab8b5d76823e6a69da9ffdfd098c5c2eae6a37da9079bd6e9939ced8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L352-L367",
      "signature": "def load_json(path: Path, *, max_bytes: int = MAX_JSON_BYTES) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "04f6eea6ca0d41ed217501db8c79deb0bd83372b513202f126e8afb4fd9fe9b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#relative_display",
      "name": "relative_display",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L483-L491",
      "signature": "def relative_display(path: Path, root: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "01d1f24b8314b0604627a869e782590f5c7af93a523b01244f0fb06d26d4ff42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#require_mapping",
      "name": "require_mapping",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L108-L111",
      "signature": "def require_mapping(value: Any, *, context: str) -> Mapping[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1ff7bb6d87b25efccecdbc72b80a3aa6c935481d04a98e90340f2ad7db95561",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#require_text",
      "name": "require_text",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L114-L123",
      "signature": "def require_text( value: Any, *, name: str, minimum: int = 1, maximum: int = 2_000 ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "01435de542d1245d5b37709442bb0c994346e9e66db346a2cb0c53a1c0fc88ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#require_text_list",
      "name": "require_text_list",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L126-L134",
      "signature": "def require_text_list( value: Any, *, name: str, minimum: int = 1, maximum: int = 100 ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1de4a56717b17b7c2ca59034cdb41723095c806fcf3c21a7040a54fe40fe979b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#safe_relative_path",
      "name": "safe_relative_path",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L148-L176",
      "signature": "def safe_relative_path( value: Any, *, name: str, suffixes: Iterable[str] | None = None, allow_nested: bool = False, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a99ccca971394065a56df01c1b84556a5b67396ebc05ad3cf2a3bed45a3123d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#safe_slug",
      "name": "safe_slug",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L137-L145",
      "signature": "def safe_slug(value: Any, *, name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a7365cc95a18ebd882e3e41f0a683b6c51aaa827294272f5b1575115c39c527",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L418-L428",
      "signature": "def sha256_file(path: Path, *, max_bytes: int) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "02f5eb32dcbf8944b43896cf030fcdb57f095daed9297cf4b6b98dc9e4a9ef9e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#strict_json_loads",
      "name": "strict_json_loads",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L370-L380",
      "signature": "def strict_json_loads(text: str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "657f44fccc58a1dfffc12c37f67da44964323115dcf5372a9575b795efb8841a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#ToolError",
      "name": "ToolError",
      "kind": "class",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L49-L50",
      "signature": "class ToolError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bedc5c7b71cf04b2558fd1433c8a9edc7aa7f8fa04b2937de29ba95755716c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_common.py",
      "span": "L89-L105",
      "signature": "def validate_keys( value: Mapping[str, Any], *, allowed: Iterable[str], required: Iterable[str] = (), context: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7341e9c0cd6bde5b0b2cc3d2247be38dc0015d974fe4a90a6b858e11207829fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py",
      "name": "_schema.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L1-L873",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f59c034ff6dee3677b19759c04ee5472d38aa7f03406ea1c31c68d1c32e83d18",
      "chars": 28807,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py#_record",
      "name": "_record",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L228-L231",
      "signature": "def _record( target: list[dict[str, str]], code: str, message: str ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c1905d106b684ef7a56014ba2166387f06038fdc516087a2a64aad20d6ce8f3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py#_validate_parameter_structure",
      "name": "_validate_parameter_structure",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L234-L309",
      "signature": "def _validate_parameter_structure(parameters: Mapping[str, Any]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d37f4143f7c977afb3a3936d7f43100fd7d5498613d2d16895f4b8ce3b9f360d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py#example_config",
      "name": "example_config",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L735-L846",
      "signature": "def example_config() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "06e246db44cdf06f9f671810cb0c50af93dcb8e4ac4289b2cbac7bc30c28793b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py#flatten_parameters",
      "name": "flatten_parameters",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L849-L862",
      "signature": "def flatten_parameters( parameters: Mapping[str, Any], prefix: tuple[str, ...] = () ) -> list[tuple[tuple[str, ...], Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b053cfbd67f3cba08f48d8b3db60f691812a11d959c790299d1f8edcfd8e61d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py#normalized_copy",
      "name": "normalized_copy",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L865-L872",
      "signature": "def normalized_copy(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cd1175e8634ef6fcb79496d6af7cdf0a00e2bcfb6229bfd34dd28aaf3e18b2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/_schema.py#validate_config",
      "name": "validate_config",
      "kind": "function",
      "path": "skills/fluidsim/scripts/_schema.py",
      "span": "L312-L732",
      "signature": "def validate_config(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4871427f38ff1fe1e03999299be593d783ecc30c72cb8b934caf790e5246624",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py",
      "name": "budget_summary.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L1-L397",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "06c2761406a6d6907002ce6db77958af32e3bf2d7e88dc524ec3410323496d83",
      "chars": 13373,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#_bounded_slice",
      "name": "_bounded_slice",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L153-L164",
      "signature": "def _bounded_slice(shape: tuple[int, ...], maximum: int) -> tuple[Any, ...]",
      "exported": false,
      "origin": "ast",
      "body_hash": "50a8ea71714e48bac0f4ce4e754d7ee4e5d4fb5833b423d2a5e4b40a1b193da9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#_iter_text",
      "name": "_iter_text",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L97-L113",
      "signature": "def _iter_text(path: Path, *, max_records: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "12d1b6ea56dbb32b091d2218807d18541990d021236f35435e157ef168023129",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#_summarize_values",
      "name": "_summarize_values",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L167-L193",
      "signature": "def _summarize_values(values: Any, *, complete_record: bool) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90999a4c5e2ec50f463b6cadb3bfce5f3e545719a9772cfd282e6a5b9ef4662e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#_summarize_values.converted",
      "name": "converted",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L178-L182",
      "signature": "def converted(operation: str) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6e07f31d416c992641df38099e69790a52d6504ef30eacacbf76269927fb9c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L339-L352",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a45ebbe7ef21592029a3ca84b47185ac7db54b38d80d55885776a74cf482227",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L355-L392",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5aa6a49ebb168b962153b5c294af29fffc7554d2e66fe75aad9d10f0dcda9cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#OnlineStats",
      "name": "OnlineStats",
      "kind": "class",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L60-L94",
      "signature": "class OnlineStats",
      "exported": true,
      "origin": "ast",
      "body_hash": "43bda77935c21b6cf7e7f0231013011504ee0375f1acb2389a5e8eb94f1fc1cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#OnlineStats.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L63-L69",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4e840f02094f0c7e14764aae567bcc2a63b9412685b0b0fbcbd45a1450a71e73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OnlineStats"
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#OnlineStats.add",
      "name": "add",
      "kind": "method",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L71-L84",
      "signature": "def add(self, value: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbd85de4292faa6fa7031ceeec51815e070c78885a6096f181f77604a3e95e70",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OnlineStats"
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#OnlineStats.report",
      "name": "report",
      "kind": "method",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L86-L94",
      "signature": "def report(self) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "14b4462741e8ba235da68f6ccc811c306fdcf1a1b0078f0fd81d9cb17d84ef94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OnlineStats"
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L285-L336",
      "signature": "def summarize( path: Path, *, root: Path, max_files: int, max_records: int, max_datasets: int, max_values: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "91c8edc226c3cfd2e119ec178ffa9869b5e1d343029c40ac85ff6dec79600ea0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#summarize_scalar_file",
      "name": "summarize_scalar_file",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L116-L150",
      "signature": "def summarize_scalar_file(path: Path, *, max_records: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fa0bb7835148dbfbb7af6ad56125c027c5e97b1c41bf60cc895955855b259d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/budget_summary.py#summarize_spectral_file",
      "name": "summarize_spectral_file",
      "kind": "function",
      "path": "skills/fluidsim/scripts/budget_summary.py",
      "span": "L196-L282",
      "signature": "def summarize_spectral_file( path: Path, *, max_datasets: int, max_values: int ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bd690b472054d10bc0244c5daefeca7649a9fa5ddf0626247c7204838896e58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "name": "grid_resource_estimator.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "span": "L1-L287",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8164f8b24616c7aa606570a2cb54e6316178a31a841e3aabe73f9f1125bd7322",
      "chars": 9047,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/grid_resource_estimator.py#_records",
      "name": "_records",
      "kind": "function",
      "path": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "span": "L47-L50",
      "signature": "def _records(t_end: float, period: float, maximum: int) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "40d0a352a53f38a947df67563ccfdd7db3fb01e5bad806326f828e5188f1b276",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/grid_resource_estimator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "span": "L199-L233",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "37d38e496733c8bab713ccb2da499467adf7bc6e0edab6d12a162dd76df76eb1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/grid_resource_estimator.py#estimate",
      "name": "estimate",
      "kind": "function",
      "path": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "span": "L53-L196",
      "signature": "def estimate( config: dict[str, Any], *, precision_bytes: int, workspace_factor: float, safety_factor: float, compression_ratio: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b97816a530b75c01a5548f4b06a5d00cf1add089fcf7a1c65fcc6bb0934c6457",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/grid_resource_estimator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "span": "L236-L282",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1d67a64d80856623d15e8ad4ec209bd7d63f8912ab24054dc246e73dc187f04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py",
      "name": "output_inventory.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L1-L354",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b57238d1a3d02c0a440676642b562f79a8e9338559b228d14d7f40b5d7517194",
      "chars": 11198,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#_attributes",
      "name": "_attributes",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L88-L106",
      "signature": "def _attributes( obj: Any, *, count: list[int], max_attributes: int ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "616a1f39787d9c4f4e4178b55d86d71a7ece274c7403a45ed151afb8c3a27353",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#_clean_name",
      "name": "_clean_name",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L64-L68",
      "signature": "def _clean_name(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "553b9973c0f35478b68b86348217674ee9d52dfaee8a8153ba3b13ea1b7da39e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#_kind",
      "name": "_kind",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L212-L224",
      "signature": "def _kind(path: Path) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "fae1146768790815e7992ce19b001ac99ccde8feb343a842074046e1ec5daa8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#_object_address",
      "name": "_object_address",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L109-L113",
      "signature": "def _object_address(h5py: Any, obj: Any) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9327adad64cd9405779c2f49a514499ed868b619dae46e22dcc4745a8d41ad5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#_scalar",
      "name": "_scalar",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L71-L85",
      "signature": "def _scalar(value: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "4081b4a928c12e3ce01a6ef0750b6b346d31b8fcc832f76461b2dafda80ddd1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L291-L305",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a471b0d51fe103734e1f83946352c8bedcfcd863678a8e64ffb22c4771314821",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#inspect_hdf5_metadata",
      "name": "inspect_hdf5_metadata",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L116-L209",
      "signature": "def inspect_hdf5_metadata( path: Path, *, max_datasets: int, max_attributes: int, max_depth: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "56f81c2c86b05f35b6953df2f107c722c538567926a4ca3c234fa92f4712331e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "name": "inventory",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L227-L288",
      "signature": "def inventory( path: Path, *, root: Path, max_files: int, max_hdf5_files: int, max_datasets: int, max_attributes: int, max_depth: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbc84f7b9f66ca483cd4ad1b67ed2fb89f6bb3b48b4ee2cf58a77865e05b5df1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/output_inventory.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/fluidsim/scripts/output_inventory.py",
      "span": "L308-L349",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e584f48e5a11e24ae8fe19b96673943eecfdcdb871134b91f4844c6a6afb5e11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py",
      "name": "restart_compatibility.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L1-L425",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "19b25f93906a2bd3bfd15f3da61f11da887b9fc979d295baa2ff91654f717aa1",
      "chars": 15757,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#_attrs",
      "name": "_attrs",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L66-L77",
      "signature": "def _attrs(group: Any, names: tuple[str, ...]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ddcb78d94ae549115f48e431f48d7e63d7937c8ded7c5eb034f07e788e7d054a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#_find_state_file",
      "name": "_find_state_file",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L80-L92",
      "signature": "def _find_state_file(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ad4806d8e2f6c77aae8af819286305912f6771f99be4267508f30473e59b884",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#_safe_scalar",
      "name": "_safe_scalar",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L53-L63",
      "signature": "def _safe_scalar(value: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "72ff81a3c82c9b6fe9f6c1a29d18c51dbd2fb6d4784cdac3f0c6e80bd2d03f3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#_same",
      "name": "_same",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L221-L225",
      "signature": "def _same(left: Any, right: Any) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "273f03dfac7e3b02ef6cd186c62a6f5ec5837e3c96b19fb2a270dd0c51eecc0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L365-L381",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "52c2513556d77e1c015257e7505621c51fb4fe7b9e42758242ad205978600b0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#compare",
      "name": "compare",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L228-L362",
      "signature": "def compare(source: dict[str, Any], target: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "36068910502868503ec8c79064385eed5c5dec72cbda6d7d7f697bc6ecf6d554",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#compare.add",
      "name": "add",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L232-L233",
      "signature": "def add(target_list: list[dict[str, str]], code: str, message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7592c21ef92b15b5b97c64089d44815be7eb7537d6c117e1051051bfd977fedf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#load_hdf5_state",
      "name": "load_hdf5_state",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L95-L172",
      "signature": "def load_hdf5_state(path: Path, *, digest_limit: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f1c89bd32cd9347b70d17d066372e836c81bd9eed9f68905d8d0d0f846b3708",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#load_manifest",
      "name": "load_manifest",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L175-L218",
      "signature": "def load_manifest(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b61c8c486b2879462240e8f6adc728c877f917da4e241499b56c0b13b5a3a08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/fluidsim/scripts/restart_compatibility.py",
      "span": "L384-L420",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "35d4e17cb62a32dc1875c9a9b3bfa4d91558c30b838c948cbef8fd83bf339406",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/simulation_dry_run.py",
      "name": "simulation_dry_run.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/simulation_dry_run.py",
      "span": "L1-L247",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9345635846c484a74921d44af0aed3f52e5251edaf611f9e02ab803f8be06f7a",
      "chars": 7813,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/simulation_dry_run.py#_literal",
      "name": "_literal",
      "kind": "function",
      "path": "skills/fluidsim/scripts/simulation_dry_run.py",
      "span": "L39-L44",
      "signature": "def _literal(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "383a281a89a7fecb4ffca6460a6fa60d2bbccc0d97742ce75b06d159f55243a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/simulation_dry_run.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/fluidsim/scripts/simulation_dry_run.py",
      "span": "L194-L212",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e22406c9eba1ff674609ef22aa8927837c095fe2fd4264aeec129b3f603e3c3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/simulation_dry_run.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/fluidsim/scripts/simulation_dry_run.py",
      "span": "L155-L191",
      "signature": "def build_plan(config: dict[str, Any], script: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec512a2050bceb0fea84e9ce371bdb9936adf5402c06feddcd9792d374341396",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/fluidsim/scripts/simulation_dry_run.py",
      "span": "L215-L242",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a4a542e3659122eb75314341dede8f344aa56f90e63aa49d9360da5690fbb38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/simulation_dry_run.py#render_script",
      "name": "render_script",
      "kind": "function",
      "path": "skills/fluidsim/scripts/simulation_dry_run.py",
      "span": "L47-L152",
      "signature": "def render_script(config: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "591bb8f28cd1cd0315e49a78f87f1858f144fc6563c5f9d53da971b9f6a38649",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/solver_config_validator.py",
      "name": "solver_config_validator.py",
      "kind": "file",
      "path": "skills/fluidsim/scripts/solver_config_validator.py",
      "span": "L1-L71",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "afd7f5d9581fee0229bfb3ad167e57fe6fe407b16fe404ab60bef4aed51cec4b",
      "chars": 2107,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/solver_config_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/fluidsim/scripts/solver_config_validator.py",
      "span": "L19-L38",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8705c2c7e5ee51c299e41bc32d59e45a1e87b22dca7ecdbb118cee6efccddbd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/fluidsim/scripts/solver_config_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/fluidsim/scripts/solver_config_validator.py",
      "span": "L41-L66",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f90ef8774778cd89033f029dde1f86c765469586643a131fc7b91b68635edec6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py",
      "name": "generate_image.py",
      "kind": "file",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L1-L753",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9b96422bf9b6e5bf7e4e0b8668d9303e1f751436e1aabb10db1dbfdec990d48a",
      "chars": 29111,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#acceptable_suffixes",
      "name": "acceptable_suffixes",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L431-L434",
      "signature": "def acceptable_suffixes(media_type: str) -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ee9b8bacedc21266d41e75cad68be9aa9a38497e64fdb5674187fa616f1ce54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#ApiError",
      "name": "ApiError",
      "kind": "class",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L92-L93",
      "signature": "class ApiError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b8602c8455551518f7a6a8a5169445d204e44d3b517e9172aacc8ef32ffc4db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#build_payload",
      "name": "build_payload",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L386-L412",
      "signature": "def build_payload(args: argparse.Namespace) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "b63429bb2be87cf1135bc5168931de65370a58ef47d646470c688aea4d7ead58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#cost_lines",
      "name": "cost_lines",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L546-L568",
      "signature": "def cost_lines(usage: dict) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac25b6f71fbbca94cca2fd77026749ce42266044380319f6090ad44bb3e6d6e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#describe_spec",
      "name": "describe_spec",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L283-L291",
      "signature": "def describe_spec(spec: dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "04d5cfaa1063afc0363396b16664557f5ee78e5fb38b462482f9e228925a3a04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#encode_reference",
      "name": "encode_reference",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L146-L168",
      "signature": "def encode_reference(source: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "721d77258280beee86728279c61a8d8666bb5481647f30745484853aa3091ba0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#error_detail",
      "name": "error_detail",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L244-L264",
      "signature": "def error_detail(status: int, body: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d6574d883159b077f389514a8469625d236049c542c9e3e1915566699f75f54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#fetch_catalogue",
      "name": "fetch_catalogue",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L277-L280",
      "signature": "def fetch_catalogue(timeout: float, retries: int = 2) -> dict[str, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b00fe5f2043055cc1a05e8d06412b9a42f64ce3fafd15820b24606d913bdf08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#find_api_key",
      "name": "find_api_key",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L100-L143",
      "signature": "def find_api_key(explicit: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "883ca93ee2d562c7d15ccf13febc7a47326a494a391bf5e5d1138d66bf8ce0ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#format_cost",
      "name": "format_cost",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L525-L529",
      "signature": "def format_cost(cost: Any) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d38f5de859c93d523ca629b3038948e1bd10f87e57b76acac91ce8387990142",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#format_pricing",
      "name": "format_pricing",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L532-L543",
      "signature": "def format_pricing(pricing: list[dict] | None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e2f6365a2dde2b9f2baec47fab261a8105ce618ec5845c957263679f1780e20",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#image_bytes",
      "name": "image_bytes",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L468-L487",
      "signature": "def image_bytes(item: dict, timeout: float) -> bytes | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fe0efbe8187b8d01dea857ca162096b232da2ecfbfccd6c98b06883523adc19",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#list_models",
      "name": "list_models",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L589-L605",
      "signature": "def list_models(timeout: float, substring: str = \"\") -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "02c951178034ae5744e3cd46dc7777d051d21a8c482a55a78369d87236e74b2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L629-L748",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1655582e3837b7fe54512727123f8276d1bbf95b9908ce86e45010e8a4be3850",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#model_info",
      "name": "model_info",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L608-L626",
      "signature": "def model_info(model_id: str, timeout: float) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4429d6e4797006872c191654c33bed0b92a52de27055ed715ae8314a9067947c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#models_supporting",
      "name": "models_supporting",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L313-L324",
      "signature": "def models_supporting(catalogue: dict[str, dict], parameter: str, value: Any = None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b912e66a6f41a8176ec12e0fac1bd959cc2b2f6d87ca453b63186574504fcb8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#normalise_media_type",
      "name": "normalise_media_type",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L437-L439",
      "signature": "def normalise_media_type(media_type: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa22d4d3d1eb76b452066c396d2bedbb2cd5f7c8747f1b35ea90def368eb1aef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#output_paths",
      "name": "output_paths",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L442-L465",
      "signature": "def output_paths(requested: str | None, media_type: str, count: int) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9815aea28c807ef25218b971a4baa3494dc07039a92b54e449d914883de8195",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#preflight",
      "name": "preflight",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L327-L383",
      "signature": "def preflight(payload: dict, catalogue: dict[str, dict]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9673ff1a973a8fe59dfd9d42b6d2591980d0e9acbb276dca1b660823dfe8d6fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#print_model",
      "name": "print_model",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L571-L586",
      "signature": "def print_model(model: dict) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d49f5f662fd270880fa729ac4af2e1a5de380b34e865851db86efb977d5883dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#redacted_payload",
      "name": "redacted_payload",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L415-L428",
      "signature": "def redacted_payload(payload: dict) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f2a807c8cbd69b6908deec489b4c95918e652dc3a2a8cf9e2f1dd008acf63d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "name": "request_bytes",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L171-L231",
      "signature": "def request_bytes( url: str, api_key: str | None, payload: dict | None, timeout: float, retries: int = 2, accept: str = \"application/json\", max_bytes: int | None = None, ) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "afff59f9f430102d80bb7c0868de6266ef0f62fda1710ac3e3f7f7c57e9d47e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#request_json",
      "name": "request_json",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L267-L274",
      "signature": "def request_json(url: str, api_key: str | None, payload: dict | None, timeout: float, retries: int = 2) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "736ea9b8e4961b58a32a5dfbb141088ed687085e03b0f56631036b46afdb5d7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#RequestRejected",
      "name": "RequestRejected",
      "kind": "class",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L96-L97",
      "signature": "class RequestRejected(ApiError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "93ab05b336d89a4ca68da751030ee69ad888f78764a199c865c2aba98fabfcea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#retry_delay",
      "name": "retry_delay",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L234-L241",
      "signature": "def retry_delay(retry_after: str | None, attempt: int) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec0cac4f7697688907c456f58d25aadb42aae0636710c5d60d0f731f7ba19626",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#save_images",
      "name": "save_images",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L490-L522",
      "signature": "def save_images(result: dict, requested_output: str | None, timeout: float = 60.0) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "828613d85df002d5a9a713131e46b63fbba4780cdc60f7cfadef85214bb35d98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/generate-image/scripts/generate_image.py#spec_problem",
      "name": "spec_problem",
      "kind": "function",
      "path": "skills/generate-image/scripts/generate_image.py",
      "span": "L294-L310",
      "signature": "def spec_problem(name: str, value: Any, spec: dict) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "389cac598b02888a10394e788759d8ade468627c044b444c6ba41a3214356b17",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/geniml/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7bf3af913d4e1ac2707799e67f39fcc384945ffdeb8c8eca6aad7282179a2fc9",
      "chars": 58,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L1-L400",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "201a17965976ab138f8a3ef32d2d9fae8c2a51e907fe8f04e1d76a15033e548f",
      "chars": 13387,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#_open_binary_nofollow",
      "name": "_open_binary_nofollow",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L145-L154",
      "signature": "def _open_binary_nofollow(path: Path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "d3f04e80d94b79ff4feee34a13e60e4941091b00b277fa2c3fa08833fc12aec0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L94-L103",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a69ffa53f4d234ed18e527f1721f936b0da6e49874262082fa3d592e10ff10ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#_reject_unsafe_text_path",
      "name": "_reject_unsafe_text_path",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L82-L91",
      "signature": "def _reject_unsafe_text_path(raw: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6abfb87341da3885a75010b160b16b5fbbaad034a3d8f5f536cac01910853577",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#add_path_mode_argument",
      "name": "add_path_mode_argument",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L232-L238",
      "signature": "def add_path_mode_argument(parser) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc4db93f5cd22cf96be0cb8f154085ec79f9d81042148a82abe16cc99a1b6359",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L48-L62",
      "signature": "def bounded_int( value: str, *, minimum: int = 0, maximum: int, label: str, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2141daf8d4c8e6a1c12c868dbcbe9edd2c3851b9d6e1ce34499123346b38e11b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#delimiter_from_path",
      "name": "delimiter_from_path",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L294-L297",
      "signature": "def delimiter_from_path(path: Path, requested: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "925730adf5e6e4bfec99a463cc2d7b037f4224c8275023650af46a330f4114e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#display_path",
      "name": "display_path",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L221-L229",
      "signature": "def display_path(path: Path, index: int, mode: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9d5770af90d8918a39599a2da664ffb2f40ce8be5e65bdf656aba41ee6d54c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#fail_json",
      "name": "fail_json",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L389-L399",
      "signature": "def fail_json(tool: str, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dc5e6f52da961b8d225f3c98010a19416b7d6e4113fcc59f987ce9595435d06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#int_type",
      "name": "int_type",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L65-L79",
      "signature": "def int_type(*, minimum: int = 0, maximum: int, label: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e8256a76dce3d84c29c6ba76fb773fe6155356ec3b5ab2ecaba303778f2be99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#int_type.parse",
      "name": "parse",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L68-L77",
      "signature": "def parse(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc8d7fb8044ec349cb688ce3eeee26749d5187aa5a23eba5da6952888c5fcd8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#iter_text_lines",
      "name": "iter_text_lines",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L157-L200",
      "signature": "def iter_text_lines( path: Path, *, max_bytes: int, max_records: int, max_line_bytes: int = HARD_MAX_LINE_BYTES, ) -> Iterator[tuple[int, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ddb089d0d723b186265cbf759944131ed94b119b3b114260e039518cfe8c0f0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#load_chrom_sizes",
      "name": "load_chrom_sizes",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L300-L335",
      "signature": "def load_chrom_sizes( path: Path, *, max_bytes: int, max_records: int, ) -> tuple[dict[str, int], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "467eec2cc92786520a6b6e3f28e923be0f841999c0b2733c82e20511e6f5ef0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#local_path",
      "name": "local_path",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L106-L142",
      "signature": "def local_path( raw: str, *, must_exist: bool = True, kind: str = \"any\", ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ca06ed0fb9a2f99e0c5e0adc274d573525d8cbd935e0691e7563c5f895a8b2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#print_json",
      "name": "print_json",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L241-L244",
      "signature": "def print_json(payload: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e74af0260e5ac241f8ef29a99d211a624d6cf145be363d7152a5ca88270557f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#read_delimited_manifest",
      "name": "read_delimited_manifest",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L247-L291",
      "signature": "def read_delimited_manifest( path: Path, *, delimiter_name: str, max_bytes: int, max_rows: int, ) -> tuple[list[str], list[dict[str, str]]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc11dbc51b0d17cd9ae990e390ae99a76ce44228e84e4c53de7a01d962d0a583",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#SafetyError",
      "name": "SafetyError",
      "kind": "class",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L44-L45",
      "signature": "class SafetyError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7932a54874e3d68fe540bddfc6750e161b92fc697f8e6dd5c90c70b88707157",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L203-L218",
      "signature": "def sha256_file(path: Path, *, max_bytes: int) -> tuple[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "22219fc9991019ca5e2e30f870e6f1f4a69008020bc091f6edffd4f40e14459e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "name": "simple_yaml_mapping",
      "kind": "function",
      "path": "skills/geniml/scripts/_common.py",
      "span": "L338-L386",
      "signature": "def simple_yaml_mapping( path: Path, *, max_bytes: int, max_records: int = 10_000, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "056457b578bf8a86bbb23d33bdef1840043a2f004275a9f9df971103ccf28614",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/bed_validator.py",
      "name": "bed_validator.py",
      "kind": "file",
      "path": "skills/geniml/scripts/bed_validator.py",
      "span": "L1-L364",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cc5769dcab0faa3958d0cacd8feb5ec4f413591f58df4d3dc5c3ee6b9ff7f2b4",
      "chars": 11186,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/bed_validator.py#_record_issue",
      "name": "_record_issue",
      "kind": "function",
      "path": "skills/geniml/scripts/bed_validator.py",
      "span": "L78-L87",
      "signature": "def _record_issue( counter: Counter[str], examples: list[dict[str, int | str]], code: str, line_number: int, maximum: int, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "77d618bd096a1212a2f1e55729968190a5ccffcf78977662a7e16409da282c1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/bed_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geniml/scripts/bed_validator.py",
      "span": "L34-L75",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "42bd6df0830f9912ba0f1489d99bee1410fb1ccbbac00bef8e9dc79096244773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/bed_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geniml/scripts/bed_validator.py",
      "span": "L351-L359",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "96faf70fbd3735247cdd8f814caf7561d7f1af8212f76a7bad41c9f1df82755c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/bed_validator.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/geniml/scripts/bed_validator.py",
      "span": "L90-L348",
      "signature": "def validate(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ec9a23da2cf901c9ef622c085d03f47d458b05c09a126b31186de882d444b7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/consensus_plan.py",
      "name": "consensus_plan.py",
      "kind": "file",
      "path": "skills/geniml/scripts/consensus_plan.py",
      "span": "L1-L417",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c39bda5fed2a977d0b79aac1daed5489bea2756b028add861d3055c28f80eef8",
      "chars": 14245,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/consensus_plan.py#_manifest_bed",
      "name": "_manifest_bed",
      "kind": "function",
      "path": "skills/geniml/scripts/consensus_plan.py",
      "span": "L98-L102",
      "signature": "def _manifest_bed(raw: str, manifest: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "5194f731312fba921526a209b191825afe1eb7b6a5330a093b3e1201838bb7aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/consensus_plan.py#_render",
      "name": "_render",
      "kind": "function",
      "path": "skills/geniml/scripts/consensus_plan.py",
      "span": "L105-L110",
      "signature": "def _render(path: Path, label: str, mode: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "9a0a9f7267f483000c479f3d2c6e59023f5aab2e2b06c38bd8aa5e2d4a836cc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/consensus_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geniml/scripts/consensus_plan.py",
      "span": "L33-L95",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d559eee5006b05fe3a3f291d68a685474fbe9f04434ce66c61629493a200cbd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/consensus_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geniml/scripts/consensus_plan.py",
      "span": "L405-L412",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "348d92d18b72ff042a2065b2260b14e8d39d826dd55fe864ea720174f698b1a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/consensus_plan.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/geniml/scripts/consensus_plan.py",
      "span": "L113-L402",
      "signature": "def plan(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb0c722013ce28d6df7fa3665ebffbcb5cc34514c9fb21926ff5d13c7d7dbf31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/corpus_auditor.py",
      "name": "corpus_auditor.py",
      "kind": "file",
      "path": "skills/geniml/scripts/corpus_auditor.py",
      "span": "L1-L305",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c21b1c6031f077acbac5a65c36e4b1ae443b9683b7fd65517a7ea22b4ba83e55",
      "chars": 10637,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/corpus_auditor.py#_manifest_local_path",
      "name": "_manifest_local_path",
      "kind": "function",
      "path": "skills/geniml/scripts/corpus_auditor.py",
      "span": "L106-L110",
      "signature": "def _manifest_local_path(raw: str, manifest: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "79d8f9071fe2d7541047359c45d9f777e8e4dc00e539623bf060d818d505e229",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/corpus_auditor.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/geniml/scripts/corpus_auditor.py",
      "span": "L113-L290",
      "signature": "def audit(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9be4798dbcee28927167eb1ce8ee6564bcf28b8982e8f6b197e8776462589afb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/corpus_auditor.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geniml/scripts/corpus_auditor.py",
      "span": "L30-L103",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6a40563022fb32d73965e2f7a6d7c7d07b747e834f40567cc495fc101d178ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/corpus_auditor.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geniml/scripts/corpus_auditor.py",
      "span": "L293-L300",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0732d39004aa87781add075b4e8b21a0bbaf7367a228ae45ca1373a6ce6fa189",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/embedding_plan.py",
      "name": "embedding_plan.py",
      "kind": "file",
      "path": "skills/geniml/scripts/embedding_plan.py",
      "span": "L1-L477",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5f91fba98d07606d682e2a20b2535ca1a4bce3af969b6835e9e1a53c4c2ff78c",
      "chars": 17044,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/embedding_plan.py#_parquet_magic",
      "name": "_parquet_magic",
      "kind": "function",
      "path": "skills/geniml/scripts/embedding_plan.py",
      "span": "L104-L118",
      "signature": "def _parquet_magic(path: Path) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "7d848a08d853e50c5a879ffdf3977e33b26b330c5fd98ec67330cfa2945e5e1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/embedding_plan.py#_render",
      "name": "_render",
      "kind": "function",
      "path": "skills/geniml/scripts/embedding_plan.py",
      "span": "L121-L126",
      "signature": "def _render(path: Path, label: str, mode: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "9a0a9f7267f483000c479f3d2c6e59023f5aab2e2b06c38bd8aa5e2d4a836cc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/embedding_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geniml/scripts/embedding_plan.py",
      "span": "L32-L101",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8683c36083512f9443c9cf958b9107d192f0d2c192e3e3bfc2599ae26504e35a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/embedding_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geniml/scripts/embedding_plan.py",
      "span": "L465-L472",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "348d92d18b72ff042a2065b2260b14e8d39d826dd55fe864ea720174f698b1a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/embedding_plan.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/geniml/scripts/embedding_plan.py",
      "span": "L129-L462",
      "signature": "def plan(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "65c1b2ddee7240f7a40556d2ab51fb88e76d2d66a23202daee0f9fcb4c3264db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py",
      "name": "model_artifact_inspector.py",
      "kind": "file",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L1-L359",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0eabc02c435bd2afb92075d153059928db421f318191e8e236797abd122d1f1a",
      "chars": 12111,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#_read_checksum_manifest",
      "name": "_read_checksum_manifest",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L140-L173",
      "signature": "def _read_checksum_manifest( path: Path, *, max_bytes: int, max_files: int, ) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f38af189f43f8c2502c8d4df97896df39985ad3b41a3710039481bd1325dd657",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#_redacted_metadata",
      "name": "_redacted_metadata",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L176-L194",
      "signature": "def _redacted_metadata(value) -> tuple[dict[str, object], int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d685ab9d8d2931778e6eb07a6f5348c20aa03215d2b8aeff9b9d251340b15012",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#_risk_for",
      "name": "_risk_for",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L112-L122",
      "signature": "def _risk_for(path: Path) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f7c1c1107b0f135bb979224855e667788a78acb133bf5677436a0a3a46328f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#_safe_json",
      "name": "_safe_json",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L125-L137",
      "signature": "def _safe_json(path: Path, max_bytes: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "af0a14d870faf65fe7561ac39958d788fd83bb4035724db79477f1340a49f641",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#_walk_regular_files",
      "name": "_walk_regular_files",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L90-L109",
      "signature": "def _walk_regular_files(root: Path, max_files: int) -> list[Path]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ebe385eace874cd842005d802c52b9fcf4ecf9ff554e1f5942f19853ee6bd1c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L54-L87",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "6608c81ceb6fa3a2cee9bace49883c61823d720a55dd0022241e4eb2349cff10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "name": "inspect",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L197-L344",
      "signature": "def inspect(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "901b38fb093206ca0b0329244046efacf8ce783650ad4a3229b1b17f603810d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/model_artifact_inspector.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geniml/scripts/model_artifact_inspector.py",
      "span": "L347-L354",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "630f9a0a10c2c205f9dd25c3c1e0a3afe91654a06d353bd5ca437498dcedf675",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py",
      "name": "tokenizer_compatibility.py",
      "kind": "file",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L1-L322",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1eaaf8ae3bfa2db1ad4573f90f7c194a408307bd7c293ca5f128d6d177a667ef",
      "chars": 10994,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py#_count_universe",
      "name": "_count_universe",
      "kind": "function",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L82-L125",
      "signature": "def _count_universe( path: Path, *, max_bytes: int, max_records: int, ) -> tuple[int, int, Counter[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "747c0790a42b35f6a310cd469552c275e59e5e60c13168a1af3da77620a68556",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py#_parquet_magic",
      "name": "_parquet_magic",
      "kind": "function",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L128-L143",
      "signature": "def _parquet_magic(path: Path) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "08a09d8536897f7f60f767f1089fb5839c5c9d08aa1dc5b5f7860b58dca511bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py#_safe_child",
      "name": "_safe_child",
      "kind": "function",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L76-L79",
      "signature": "def _safe_child(directory: Path, name: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "fe74da93196433e28e1c3d1603bd76dcd5b686ef315fa3889e7830c60ccf3f8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L33-L73",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "17f93370e0067a9288c44e470ff50b82fa3d9daf18834705e4d8adb5b7b976bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "name": "inspect",
      "kind": "function",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L146-L307",
      "signature": "def inspect(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "036ecd670818571662b933b64486faee7c62526a9981ded238cc0903c97a3d04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geniml/scripts/tokenizer_compatibility.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geniml/scripts/tokenizer_compatibility.py",
      "span": "L310-L317",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "630f9a0a10c2c205f9dd25c3c1e0a3afe91654a06d353bd5ca437498dcedf675",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L1-L336",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c06e0f36e180849f59ca91346e19d88dfd997d96a65c667a216a01c08854c647",
      "chars": 13550,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "name": "canonical_contig",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L189-L198",
      "signature": "def canonical_contig(name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b8153f904cc051a5d2896e26e2cda5cbe23610b6da7de3646de6fb85b517e14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Convention",
      "name": "Convention",
      "kind": "class",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L26-L37",
      "signature": "class Convention",
      "exported": true,
      "origin": "ast",
      "body_hash": "c82c8d8cb9d2c1ead7073148c2e6466c9693c3e51fee566d1d9491e5e9a3710a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Convention.label",
      "name": "label",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L35-L37",
      "signature": "def label(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3575ac28ca498700e1706c67d8cc8e7820788d695c4de56df622ce8a66607ec9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Convention"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#emit",
      "name": "emit",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L311-L323",
      "signature": "def emit(rows: list[dict], columns: list[str], fmt: str, out: str | None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10bb5437b2a1e8a65728128cdcf378ddf937716738d9caabf7fd1e2ca58bf3b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#format_region",
      "name": "format_region",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L156-L161",
      "signature": "def format_region(contig: str, start: int, end: int, strand: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba8f9eb531481e2815d7ed95c50b6310f932cdd2326c42fa463da34457886756",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#from_canonical",
      "name": "from_canonical",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L84-L93",
      "signature": "def from_canonical(conv: Convention, start0: int, end0: int) -> tuple[int, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4e194be98b2514e4d4b0a6482b8382684dc7547fe299aa11046383a1e6a4a17",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#get_convention",
      "name": "get_convention",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L69-L74",
      "signature": "def get_convention(name: str) -> Convention",
      "exported": true,
      "origin": "ast",
      "body_hash": "90ee47f8f4d9981e9d4f5282000eebfe14953198ad2b5c93f0995f40ea7f45c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#iter_data_lines",
      "name": "iter_data_lines",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L326-L335",
      "signature": "def iter_data_lines(path: str | Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c032f5fccd6e27b05f529d28983a66419fc342e6ebdd64cddb464aa182f7790",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#naming_style",
      "name": "naming_style",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L171-L182",
      "signature": "def naming_style(names: list[str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ec1d0cdbcb66f11e769ad57a5d1d7e4ca366d72df3b9de6f4eeb19463501079",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#parse_region",
      "name": "parse_region",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L110-L153",
      "signature": "def parse_region(text: str, conv: Convention) -> tuple[str, int, int, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fc286bb32f46d4becefae0138b7320b100fec3f6fcf3e2d7fe0caac2b516aa1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "name": "Reference",
      "kind": "class",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L210-L303",
      "signature": "class Reference",
      "exported": true,
      "origin": "ast",
      "body_hash": "9988dd7334106f7e1411ab6f7d59f763cbb59b7e69ae44a738e4da14fd9c93bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L219-L232",
      "signature": "def __init__(self, path: str | Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c7a2b484b92ea8b48f5c1910042315d9ad13f95ed09abe0f4dad0811a51a1972",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference._load_all",
      "name": "_load_all",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L244-L257",
      "signature": "def _load_all(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ec9df6649414304cf93272086f0e13a32fc54208b64adcb5150d0bd8745c558e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference._load_fai",
      "name": "_load_fai",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L234-L242",
      "signature": "def _load_fai(self, fai: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "9efae5e706fe8ca5ce0a0f696c0c9843bd1beb1b5b82afeb3a5ab481d805d42a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference._resolve",
      "name": "_resolve",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L259-L271",
      "signature": "def _resolve(self, contig: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "7e42a08501100dc684268022f02a11a86cfa7f5d69ca35ddc1ccba8d0b97482d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference.contigs",
      "name": "contigs",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L274-L277",
      "signature": "def contigs(self) -> dict[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f90ef1290207b05a2fdae810d931eb555152355ef867c36d1d2db192a765d18",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference.fetch",
      "name": "fetch",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L282-L303",
      "signature": "def fetch(self, contig: str, start0: int, end0: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "65004fa2145c33d96698bc21d3b6d02394dda031efd59295fedc5d52e6ff9bdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#Reference.length",
      "name": "length",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L279-L280",
      "signature": "def length(self, contig: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e862f227be1dbbbc94ccfb642522e089489cbfe7a34f3288618be7261b5915cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reference"
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "name": "ReferenceError",
      "kind": "class",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L206-L207",
      "signature": "class ReferenceError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "94dae210aeeb94e1e6944b16dd95aec9db817262ea441fa3db1457a454d87620",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#strip_chr",
      "name": "strip_chr",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L185-L186",
      "signature": "def strip_chr(name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9098ffbd2498222565e15a81706d565ffc6dadf52678eac327a1d82f68dfdb99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/_common.py#to_canonical",
      "name": "to_canonical",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/_common.py",
      "span": "L77-L81",
      "signature": "def to_canonical(conv: Convention, start: int, end: int) -> tuple[int, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b233a46a80fea48f57369a958d8867057c4d191017c311450faa361ca0795362",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "name": "audit_intervals.py",
      "kind": "file",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L1-L512",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e9e8bf64e0dca3bdccbde6185d0711311c27c081537f24728dfe443fe0ffd750",
      "chars": 19077,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "name": "audit_bed",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L153-L249",
      "signature": "def audit_bed(path: Path, find: Findings, genome: dict[str, int]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc71866305c6b355228e37db55f0fc1cb6b9ca172a047c37ed3eb406c755d33f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed12",
      "name": "audit_bed12",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L252-L279",
      "signature": "def audit_bed12(find: Findings, lineno: int, fields: list[str], start: int, end: int) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "45570ce6383575e48c568a959638f72eea06433e0e3187efa3b75fb65e89e44a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_gff",
      "name": "audit_gff",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L282-L348",
      "signature": "def audit_gff(path: Path, find: Findings, genome: dict[str, int], flavour: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e38c1189f30f9aa5fe2fbcdea19252056b871e6a755495980b98140e00509987",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "name": "audit_naming",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L446-L455",
      "signature": "def audit_naming(find: Findings, contigs: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c69454ed9731f984df08698444e20e302d182ab31d415be9c60a5ca5a404bf43",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "name": "audit_vcf",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L351-L443",
      "signature": "def audit_vcf(path: Path, find: Findings, genome: dict[str, int]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4aa24bd8bdec82bcd78cf3ec2e9443d61addbc05d5ff4e70b89a0f5350cf041",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L458-L470",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c2b8c797531395a05c53cd52a1cf124e2a43b43d7ef1991519ffcf448b4d5ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "name": "check_bounds",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L94-L116",
      "signature": "def check_bounds( find: Findings, genome: dict[str, int], lineno: int, contig: str, far: int, source: str = \"the genome file\", ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "95dd17ebd44b2effdfaf102b6e8c52e2c1286b53bd2f9a105b5bb8787494afce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#detect_format",
      "name": "detect_format",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L66-L78",
      "signature": "def detect_format(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "50e6eb8962b7bb6a7ec611c655358519a7e9edb68d701af0497881a64196971d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings",
      "name": "Findings",
      "kind": "class",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L34-L63",
      "signature": "class Findings",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b039f8cb867c68341409a1010aee3f38643b7ee611665f705c3c267fd1b6fee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L37-L41",
      "signature": "def __init__(self, max_examples: int) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5494641f3f838b84f2503c710fc42e0bdd82a8db1a4c743cb6872e94963aef1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Findings"
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "name": "add",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L43-L58",
      "signature": "def add(self, severity: str, rule: str, line: int | str, detail: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e029e08af14caa881ae6143ba7d825b119f9367a28c28502f8ea9783c9ea300b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Findings"
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.fatal",
      "name": "fatal",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L61-L63",
      "signature": "def fatal(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "57821110607afb98d11090f9037b214ff3167274f94a1de1ecf759ce82d11f18",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Findings"
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#load_genome",
      "name": "load_genome",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L81-L91",
      "signature": "def load_genome(path: Path | None) -> dict[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4db825afe1d6b44cb6317cb8ba4899957750b36deb0cebc4016a527ab740b0b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L473-L507",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8df4a152e926bba561f95409331c2d01292a5747560f919f37c0c04a762117d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState",
      "name": "SortState",
      "kind": "class",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L119-L145",
      "signature": "class SortState",
      "exported": true,
      "origin": "ast",
      "body_hash": "2912aeb1897f834980119ec81977d7372373d9a4d26f2e4a6fa538f6c51ac4fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L123-L126",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "211dfc59c8a6dbc801bebf968c074b336e7caf0f4111ad503779dfb7c142a296",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortState"
    },
    {
      "id": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.check",
      "name": "check",
      "kind": "method",
      "path": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "span": "L128-L145",
      "signature": "def check(self, find: Findings, lineno: int, contig: str, pos: int, why: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf115a7bd87cb7718824919bfbd0f1978fcce8220ccd42faa4c7e2280de28fdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortState"
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py",
      "name": "check_contigs.py",
      "kind": "file",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L1-L383",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cf1e700572954611c37a6590bed3c9061bbf045551b61b581f3432e45446a386",
      "chars": 16049,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L315-L332",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cfee3df406f908932fc9b79cb31b7e476ce1441fa753c12eb0ed11c2b4a3dc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#compare",
      "name": "compare",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L239-L312",
      "signature": "def compare(loaded: list[tuple[Path, dict[str, int], str, bool]]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "73a72112788f33d97f4f30efc863ec5fdaf3cb1798751c5443f381b45b01b332",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#identify",
      "name": "identify",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L180-L231",
      "signature": "def identify(sizes: dict[str, int], exact: bool) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6fd1d7531f21f475fbc6310725f549c9c171bf5d1a9ab7c8d8b460c3d7fc7a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "name": "load",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L154-L172",
      "signature": "def load(path: Path) -> tuple[dict[str, int], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0807daf5612b110b2ff89dbd018c581a8ce9a4b991f2a881f9f04c6eeff566be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L335-L378",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "db9424891a896c948c5714cfbdf20717a4b299d877302e8d6d6c9072a8880705",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#read_fasta_names",
      "name": "read_fasta_names",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L85-L98",
      "signature": "def read_fasta_names(path: Path) -> tuple[dict[str, int], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "46fd97f557e099f62263d01764be9943175de30f9bed46a6715cc72e110d8100",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#read_intervals",
      "name": "read_intervals",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L136-L151",
      "signature": "def read_intervals(path: Path, start_col: int, end_col: int) -> tuple[dict[str, int], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "00a9cb65ff6e1f7f3c6cc97a10c994495cc81f78445f170408f10d74f221cbfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#read_sam_header",
      "name": "read_sam_header",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L122-L133",
      "signature": "def read_sam_header(path: Path) -> tuple[dict[str, int], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f03eab77e65e464242310744a71b6cc5d4b0e71b726e888a94104d07bbfbc8cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#read_sizes",
      "name": "read_sizes",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L73-L82",
      "signature": "def read_sizes(path: Path) -> tuple[dict[str, int], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a69fc99456aecca780b274f201f11322c5dbf6ea57faf0568ccc95708c453f85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/check_contigs.py#read_vcf",
      "name": "read_vcf",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/check_contigs.py",
      "span": "L101-L119",
      "signature": "def read_vcf(path: Path) -> tuple[dict[str, int], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1df63a383c1296ca1355b3b1372fbfe2d30b5b764b8dcb7fd69f1252f4ca4e06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/convert_coords.py",
      "name": "convert_coords.py",
      "kind": "file",
      "path": "skills/genomic-coordinates/scripts/convert_coords.py",
      "span": "L1-L181",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6bfd8600d14a7cf0bb22b0524ebe6cd0855157c0ce68fb66eb2408ea96696fb3",
      "chars": 6618,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/convert_coords.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/convert_coords.py",
      "span": "L119-L135",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac5b75a0ef46841ad1efc1ac9718fa4ff36bcb7c92456cf9c7f3cc352f7f9efc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "name": "convert_one",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/convert_coords.py",
      "span": "L40-L89",
      "signature": "def convert_one( contig: str, start: int, end: int, src: Convention, dst: Convention, strand: str | None = None, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "d69963614f543c05f578efaa8e3b2ae33d4b39b11446958d9acf658bc38f230b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one.render",
      "name": "render",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/convert_coords.py",
      "span": "L73-L76",
      "signature": "def render(conv: Convention, s: int, e: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "52d4c381fa8487710d7db059aefd171461b9f19994080755791d55fd00ac2bab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/convert_coords.py",
      "span": "L138-L176",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3807c6432bb45710cfb3f0c192678aa306cf1e451d8ea81aa7dadff089b1811a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/convert_coords.py#read_intervals",
      "name": "read_intervals",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/convert_coords.py",
      "span": "L92-L116",
      "signature": "def read_intervals(path: str, conv: Convention) -> list[tuple[str, int, int, str | None]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "494fa59a447b4760a77985f39e70b5c1691d6ba4f8b4af7bac3c0a034e30f23f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "name": "normalize_variant.py",
      "kind": "file",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L1-L291",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6250b8eff0ae9e33bef2a58f90f0dae2c88fe3079d75958bccb1271773e8efcd",
      "chars": 9962,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L179-L203",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5ca7d67bb60024c640a08501e6292bb1b9058bda555b03ef1ac444eb4b193a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#classify",
      "name": "classify",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L46-L55",
      "signature": "def classify(ref: str, alt: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd4dae0174d67aba55f816af9bcfab47942abcee18f40705c30b0e1ceac9a426",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L240-L286",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bada352ad77151cbf724d96505bf736ae1ada940245e8e621e20fc09dba97cbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#normalize",
      "name": "normalize",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L58-L143",
      "signature": "def normalize( reference: Reference, contig: str, pos: int, ref: str, alt: str, window: int = DEFAULT_WINDOW, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "3aa7c491cf12697ee063826aa999e68a9f9e79ac4c546b18b937d65157acba59",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#parse_spec",
      "name": "parse_spec",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L146-L154",
      "signature": "def parse_spec(text: str) -> tuple[str, int, str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d09591fc681a275c8db1743ed065e8d73c4945fe1e2b052a3c05f1cdca57d1ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#read_records",
      "name": "read_records",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L157-L176",
      "signature": "def read_records(path: str, split: bool) -> list[tuple[str, int, str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c119a40083429e8bd0db61ff8534866756f7687f5820964bfdaed934f2a11316",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L206-L237",
      "signature": "def run(records, reference, window) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "db6cee738b0d10460d895c6914e2ad0507dc94950cf8830008ea73f126dc7095",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/genomic-coordinates/scripts/normalize_variant.py#VariantError",
      "name": "VariantError",
      "kind": "class",
      "path": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "span": "L42-L43",
      "signature": "class VariantError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c59e67974fdbcdbecc339237fcc383112d7c288a0620dd8ed075e582e57c025",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L1-L606",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f4ef80f3259a4f1da6d8fa4c7b9cab63673aedf637c81727c1822a70ada3423c",
      "chars": 21323,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#_candidate_path",
      "name": "_candidate_path",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L138-L149",
      "signature": "def _candidate_path(value: str | Path, root: Path, *, label: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "dd2e00eeba4b32b80aa512ccab33eed550b0f3879b412c70a1b8dc4cc85da8b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#_json_scalar",
      "name": "_json_scalar",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L290-L298",
      "signature": "def _json_scalar(value: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "dc76b3a7649230e2e581363ac3eec9b8027d534e69c08fb7d60d697198d76ebc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L310-L311",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7140a26d2ff207e9b4f56491975612a13a9d56937016800feeb11ebfe4095b89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L125-L135",
      "signature": "def _reject_symlink_components(candidate: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "91864f336c331c6ea0d5db5a1822bef39e0804b9827d60ac8adf62ffd9e5a344",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#_root_path",
      "name": "_root_path",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L110-L122",
      "signature": "def _root_path(value: str | Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "e19e13d4f6cc7d72ca95a54aeb10c849b9247d03e6da113ccf0e2d17f14c4f34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#_strict_object",
      "name": "_strict_object",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L301-L307",
      "signature": "def _strict_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1630989455ee8704bf6ab47df94d54ec27d772f40a381a9321858cfe1e6e9e55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#bounded_limit",
      "name": "bounded_limit",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L76-L82",
      "signature": "def bounded_limit(value: int, *, name: str, maximum: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3039ed30aa3daf53a183e3a435ee296fc10db7e1a6ff9d7ed57536eba9b998f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L152-L179",
      "signature": "def checked_input_file( value: str | Path, *, root: str | Path = \".\", max_bytes: int = DEFAULT_MAX_INPUT_BYTES, allowed_suffixes: set[str] | None = None, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "67ff3e54234a6c2e2b2fa0ff929cd274128995f28200e3ee3212cfa0ad55d038",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L182-L198",
      "signature": "def checked_output_file( value: str | Path, *, root: str | Path = \".\", allowed_suffixes: set[str], ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "32971885c0ae9049a13c0859aca3b87946cb1fbd3f11c348b10359cd715c1c1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L61-L62",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8f5f3790c3f5a57ba941131cd749e525f3950a6408ccc1fbf064b683c5b5693",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#crs_summary",
      "name": "crs_summary",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L251-L287",
      "signature": "def crs_summary(value: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b1c967f57b4a867aafca34c60e6c56c8d5e710e06d99313cd0f852078c9d2a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#disable_proj_network",
      "name": "disable_proj_network",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L242-L248",
      "signature": "def disable_proj_network() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "438b1cc8d1f2f4ad48a607152583e186384f8880208e2820c2302eecfe4122c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#duplicate_column_state",
      "name": "duplicate_column_state",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L520-L531",
      "signature": "def duplicate_column_state(frame: Any, name: str | None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "141f8e15368678c35bfac8f0689b6237ff51ace42d83e8e2b1fa61bf52edfda0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L584-L586",
      "signature": "def emit_json(payload: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5372028904f7cb9a8100acfc1ddb5a2e2dcd79d48ec3dd2952355ac15fd31a3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#fail_json",
      "name": "fail_json",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L589-L605",
      "signature": "def fail_json(tool: str, exc: BaseException) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4c206fa35b4eeb889cd80114e52a106a79cbd7011fdee7cd4867922e99ee0d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L85-L93",
      "signature": "def finite_number(value: Any, *, name: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "f30038b082d3f21304623063507929fd7a41993f404c83c9080e77b640abdda0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#geometry_state",
      "name": "geometry_state",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L488-L517",
      "signature": "def geometry_state(frame: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "16bc1e7820083577870abd6a1fb01e175aab22cfb3605c2fbbee94e594d4ccde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "name": "inspect_gdal_vector",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L382-L434",
      "signature": "def inspect_gdal_vector(path: Path, *, layer: str | None = None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7e205a22184f498d10161cdc2c6c5a8c8c88a7ce93375714af067c0936e4773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#inspect_geoparquet",
      "name": "inspect_geoparquet",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L314-L379",
      "signature": "def inspect_geoparquet(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7b04e3899594ac64ad0bb7164e710449fbf5b2787f36c4479054c5e8b6a1c2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "name": "inspect_local_vector",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L437-L446",
      "signature": "def inspect_local_vector(path: Path, *, layer: str | None = None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "779749fb12b8f9d231dc85e0586716d705a958538c2433e003d22678d50ca11b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#json_text",
      "name": "json_text",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L573-L581",
      "signature": "def json_text(payload: Any) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b32becbd8c543fb57ccf6ba9704033e78b8c6827b5f542ccb2c58e18011894c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "name": "load_geodataframe",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L449-L485",
      "signature": "def load_geodataframe( path: Path, *, layer: str | None, max_features: int, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "beb6b946ddb72bc3a8070fc4a7c676307f013481760c00264140649ec9edb6d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#native_versions",
      "name": "native_versions",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L221-L239",
      "signature": "def native_versions() -> dict[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f364e9f7fb964e51cf3f0e0b8aac0de7e51229f9f511456d362737b99aa57cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#package_versions",
      "name": "package_versions",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L210-L218",
      "signature": "def package_versions() -> dict[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5f080f883b36441c9f4849834bdba416a00bd6df97375cedc3be3943fc7e99e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L65-L73",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "df4e1b1a4b806ffed9fe72ec6315cab1c889faada066833a2b33288a80d8a78c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#reject_nonlocal",
      "name": "reject_nonlocal",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L96-L107",
      "signature": "def reject_nonlocal(value: str, *, label: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eaf675758cec9d4d1d9c9ffd58a46897ff70d6121778fa9eb435cf8c173ab30d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L201-L207",
      "signature": "def sha256_file(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b37da5ad33afc7c7548cbc4e8465cc521fd0e99c6b9bd986ff4831faf91e77e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/_common.py#write_new_geopackage",
      "name": "write_new_geopackage",
      "kind": "function",
      "path": "skills/geopandas/scripts/_common.py",
      "span": "L534-L570",
      "signature": "def write_new_geopackage( frame: Any, destination: Path, *, max_output_bytes: int = DEFAULT_MAX_OUTPUT_BYTES, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c998461a6f759320e493c87f12db57cfc266c40a320c10363b566df73a44279c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "name": "crs_reprojection_plan.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "span": "L1-L211",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f4490bac304b735835c8986620e76e64ea142e655e241908565dd17834e5e314",
      "chars": 7420,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/crs_reprojection_plan.py#_candidate_summary",
      "name": "_candidate_summary",
      "kind": "function",
      "path": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "span": "L75-L83",
      "signature": "def _candidate_summary(transformer: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b51e3ea1f076a47b317bd3ba08eb2c5b1adfc9ed9d66692ee7dd4b27e4f230ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/crs_reprojection_plan.py#_dynamic",
      "name": "_dynamic",
      "kind": "function",
      "path": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "span": "L69-L72",
      "signature": "def _dynamic(crs: Any) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "cf3d4161ed8e3fbaa88a84204ef772976bc56bad421d431a11aafb610bb51868",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/crs_reprojection_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "span": "L25-L66",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5df5ffd7b59c626fe3f8b223eaeba951538d803832482ce1b45b0edacbef269b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/crs_reprojection_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "span": "L199-L206",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8852c1110c6a0eafdf6bd7110d3753f93d49c1ee4c38ca84a3a6b8199e72557",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "span": "L86-L196",
      "signature": "def plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a6e6c2a76609f02687b380e25152135ac572422d69861178efc5c55b34b4b6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/export_plan.py",
      "name": "export_plan.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/export_plan.py",
      "span": "L1-L306",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "77aa0bae19d1a60128a7dc2a24d06d4f9288d882d960905b154d46c76ebab3d4",
      "chars": 11094,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/export_plan.py#_format_risks",
      "name": "_format_risks",
      "kind": "function",
      "path": "skills/geopandas/scripts/export_plan.py",
      "span": "L123-L145",
      "signature": "def _format_risks(format_name: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "81aded47cf9d8c482882a443e1972ef04b162e762cb9c995a0f1094ddb8f47c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/export_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geopandas/scripts/export_plan.py",
      "span": "L42-L120",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "37ea7185ab9bd5d0448a91458ee42d35a0b155a3670971a466cde5fcbb434de9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/export_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geopandas/scripts/export_plan.py",
      "span": "L294-L301",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8852c1110c6a0eafdf6bd7110d3753f93d49c1ee4c38ca84a3a6b8199e72557",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/export_plan.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/geopandas/scripts/export_plan.py",
      "span": "L148-L291",
      "signature": "def plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b99bbf907644eb62d9dc3b67a8cf33180dd44b083122acade96a9668b4a988a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/geometry_validity_report.py",
      "name": "geometry_validity_report.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/geometry_validity_report.py",
      "span": "L1-L228",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d1727489a97f8b5941fecb9e7612da727416f4bc3c91a6bc5a8b86052e62f798",
      "chars": 7436,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/geometry_validity_report.py#_type_transition_count",
      "name": "_type_transition_count",
      "kind": "function",
      "path": "skills/geopandas/scripts/geometry_validity_report.py",
      "span": "L90-L97",
      "signature": "def _type_transition_count(before: Any, after: Any) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "3c50ddb4e39c52d3970e62bbec057207dc2f923f836564bb4073c462bfa231be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/geometry_validity_report.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geopandas/scripts/geometry_validity_report.py",
      "span": "L35-L87",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2889e70dfdce046a6d4870e52d332f77bdd860fb2bf43e34f733dadb07dc6af4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/geometry_validity_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geopandas/scripts/geometry_validity_report.py",
      "span": "L217-L223",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "192c6cb5b64211cdabc38c3f3ba8138b4aa26ac1ed9cd31146f38dbf1db12b1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "name": "report",
      "kind": "function",
      "path": "skills/geopandas/scripts/geometry_validity_report.py",
      "span": "L100-L214",
      "signature": "def report(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e30fb1e981cd9d02e9bf58b222ae4c0084974b113a65283563f2f8198c32057",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "name": "sensitive_coordinates_checklist.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "span": "L1-L231",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b53830e89bae6c359d237895d8836df29f11b0220facb97eda444d0d98b89079",
      "chars": 8980,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "span": "L22-L85",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f582902d7617be919f076f701cf601305ffaefbbdd9a1af02b65bc0b4bac082",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#checklist",
      "name": "checklist",
      "kind": "function",
      "path": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "span": "L88-L216",
      "signature": "def checklist(args: argparse.Namespace) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d202f824b99693ae3ccc64a5951480c94ae30d32cf84a2d28666d5fb02b9261",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "span": "L219-L226",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f89c42468f043159aa6d02b636e5068ae3efc830a9001c19cadd960e31fb1f56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py",
      "name": "spatial_join_audit.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L1-L369",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "91911e184de4aeb48371134b77c034497026163172b4fdcc2ae2a038ba287672",
      "chars": 12848,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py#_counter_summary",
      "name": "_counter_summary",
      "kind": "function",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L115-L125",
      "signature": "def _counter_summary(counter: Counter[int], total_features: int) -> dict[str, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ef98580d832d2d408ecfcc8b44790287168e884f0078bf2e5224a778f10a6286",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py#_run_chunked_join",
      "name": "_run_chunked_join",
      "kind": "function",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L128-L195",
      "signature": "def _run_chunked_join( left: Any, right: Any, *, mode: str, predicate: str, distance: float | None, max_distance: float | None, exclusive: bool, attributes: list[str], max_pairs: int, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5f79135da5146ac1a458a90fddf698ec6c452befb6b9d6bfa3ab3ec34975eaf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py#_work_frame",
      "name": "_work_frame",
      "kind": "function",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L105-L112",
      "signature": "def _work_frame(frame: Any, row_column: str, attributes: list[str]) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "6b1b63ee79f6cc83507d4f4675f5efe693faff2dfe4aec221ab3b023338bea2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L198-L354",
      "signature": "def audit(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fb4c1f49550db00587ed48a71214a9026398902c876f17f137bee065ff7020e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L36-L102",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d39d76adbe1f4b7869562e4807b00ca1f9b1fbfd3dec693e05c7426d3bfdfa6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/spatial_join_audit.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geopandas/scripts/spatial_join_audit.py",
      "span": "L357-L364",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f935231eb05211653e8547b3ab23dc341890640fbaf23033b6927bc0399c1e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/vector_inventory.py",
      "name": "vector_inventory.py",
      "kind": "file",
      "path": "skills/geopandas/scripts/vector_inventory.py",
      "span": "L1-L141",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5b69d0c0f1e99cb9c7c663e4286f703c797b0d150711e1e4c293f6082767483f",
      "chars": 4488,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/vector_inventory.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/geopandas/scripts/vector_inventory.py",
      "span": "L29-L66",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8931d916300f88b565701e3fa36553cbff66d15882bf91db8589b595e8b31c44",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/vector_inventory.py#inventory",
      "name": "inventory",
      "kind": "function",
      "path": "skills/geopandas/scripts/vector_inventory.py",
      "span": "L69-L127",
      "signature": "def inventory(args: argparse.Namespace) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa737d1a00b8b0e3810de0ee800f886a12472e0d253d1c0047b100a49e9df77d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/geopandas/scripts/vector_inventory.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/geopandas/scripts/vector_inventory.py",
      "span": "L130-L136",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6f16e1fd8245884b9fb5fa2e67caddfcf31807c696c69bd6b0503d539d9b408",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L1-L191",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cefeb42d44648b5636053cd3d3d4e08723b4e07df27daa8c8ca1e235d596ca42",
      "chars": 6068,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#_safe_output_path",
      "name": "_safe_output_path",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L43-L54",
      "signature": "def _safe_output_path(raw: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "cc216b03f03672e45ea4e2a46048f5ec7661ef5bc5c616b3c85743cb568ba396",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#argparse_nonnegative_int",
      "name": "argparse_nonnegative_int",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L172-L184",
      "signature": "def argparse_nonnegative_int( value: str, *, maximum: int = MAX_BYTES, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a31fa4ba7186b4ad1b1ba0704603904d58cc244dae0e3513f0c741196fcfbc2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#argparse_positive_int",
      "name": "argparse_positive_int",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L157-L169",
      "signature": "def argparse_positive_int( value: str, *, maximum: int = MAX_TASKS, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a9fdf76131c034a949fced89ef43f223d07ff1f808e40d598d21c111b6a6563",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L128-L139",
      "signature": "def bounded_int( value: Any, *, minimum: int = 0, maximum: int = MAX_BYTES, ) -> int | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9fcdc2013bf79551a4dd3e8caa7c1c4936a043def33f21258fb3080e769fbbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#bounded_number",
      "name": "bounded_number",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L142-L154",
      "signature": "def bounded_number( value: Any, *, minimum: float = 0.0, maximum: float = float(MAX_BYTES), ) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c795f90d7595e7fc816b80e0e008e3e111dbbb8fc5b4eee98d53ff96e39dcbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#cli_error",
      "name": "cli_error",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L187-L190",
      "signature": "def cli_error(parser: argparse.ArgumentParser, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8d8490d6108f94169ef149c58124932295784990a6e7e538226f49093055e6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L57-L91",
      "signature": "def emit_json(value: Any, output: str | None = None, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8e831cb34e101cb3ffe4a7c49ae32ff06b6f7186fe175579aa45189adc72a7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#json_text",
      "name": "json_text",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L26-L40",
      "signature": "def json_text(value: Any) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9939a33bfeb08f9d6ba8c07abbbfca29bfe3f162582a77c1f58615cdf027c69b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#read_json_file",
      "name": "read_json_file",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L94-L125",
      "signature": "def read_json_file(raw: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d24584ec53f989fbabebd9750a36c9707ae875a5334d408bf842dcae48506592",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "name": "ResourceToolError",
      "kind": "class",
      "path": "skills/get-available-resources/scripts/_common.py",
      "span": "L22-L23",
      "signature": "class ResourceToolError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "25e0837e08899396b76bb2b21929efb3afa14fe5dc1f59f8bee428e9302751d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "name": "accelerator_diagnostics.py",
      "kind": "file",
      "path": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "span": "L1-L152",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1b39815180c32917a88574bbd1477f7e02e6861642e3926a60261274a06baaa8",
      "chars": 4623,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_diagnostic_plan",
      "name": "build_diagnostic_plan",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "span": "L40-L107",
      "signature": "def build_diagnostic_plan( snapshot: Mapping[str, Any], *, backend: str = \"auto\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "df22f51f5a8a8fcc38507031e79608ec5a617b5125f3f9bd2bc7ee4b5cc6d51a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "span": "L110-L131",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "35a632130efcc1c6e0333e5ffb0ab5e6928d212030b2956b67c94945fc069ba0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/accelerator_diagnostics.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "span": "L134-L147",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "df52e5471f418e6394376f63cd348ffd9561fbee028e32048c0be3d5c452a1bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py",
      "name": "detect_resources.py",
      "kind": "file",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1-L1768",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f6063f23acb9fb2f57263e015c0bfcd07dda2088f5317481e723e2c538174945",
      "chars": 59840,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_accelerator_upper_bounds",
      "name": "_accelerator_upper_bounds",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1311-L1345",
      "signature": "def _accelerator_upper_bounds( devices: Sequence[Mapping[str, Any]], visibility: Mapping[str, Mapping[str, Any]], scheduler: Mapping[str, Any], ) -> dict[str, int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bf5a355b6794d877e21ec75e540584c68348221bddfac26058e5fdecff30be0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_amd_entries",
      "name": "_amd_entries",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1110-L1149",
      "signature": "def _amd_entries(data: Any) -> list[tuple[int, dict[str, Any]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "642dfc7d152dc2a8d996234154da5ebb4510ce9b0cb4ef8e64b010b0dcea890a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_amd_memory_bytes",
      "name": "_amd_memory_bytes",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1152-L1178",
      "signature": "def _amd_memory_bytes(entry: Mapping[str, Any]) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "87a226c420fa44ab73be6878be9f7ed046da804cb66e99b3f957a330462f0fb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "name": "_bounded_nonnegative",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L153-L160",
      "signature": "def _bounded_nonnegative(value: str | int | None) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "0711ba8ffe0e6721b5e0202386ea17267004aea9967e94bf102287e83bc0aa3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_cgroup_relative_path",
      "name": "_cgroup_relative_path",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L495-L504",
      "signature": "def _cgroup_relative_path(payload: str) -> tuple[str, ...] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8a8cfb2f725345fe4b1633f9339c27af6fccee9e7b6a8ec018dbda546162bdb1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_container_context",
      "name": "_container_context",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1522-L1554",
      "signature": "def _container_context( *, cgroup: Mapping[str, Any], exists: Callable[[Path], bool] = Path.exists, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ade21a44f6cf087db20274554be49a68147463d40c8e1a9a28d9e11fccd76371",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "name": "_detect_accelerators",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1369-L1519",
      "signature": "def _detect_accelerators( *, system: str, machine: str, environ: Mapping[str, str], scheduler: Mapping[str, Any], run_command: Callable[..., dict[str, Any]], warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9db6d41773f56b559729796ec0f3bb6901358135dbc48c1c7db36331f4bc5b97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_detect_cpu_inventory",
      "name": "_detect_cpu_inventory",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L368-L427",
      "signature": "def _detect_cpu_inventory( *, system: str, psutil_module: Any | None, mac_sysctl: Mapping[str, Any], read_text: Callable[[Path], str], warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> dict[str, int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "69f667cae70293ab089b27f9ae6c632135d8b16c686b9bdaf24752271135d33a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_detect_disk",
      "name": "_detect_disk",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L982-L1039",
      "signature": "def _detect_disk( warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ab2210b35d0e6bba32bbfdaee42302bb7ae0449f690d71eaea4153b1cbe94311",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "name": "_detect_memory",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L826-L979",
      "signature": "def _detect_memory( *, system: str, machine: str, psutil_module: Any | None, mac_sysctl: Mapping[str, Any], cgroup: Mapping[str, Any], scheduler: Mapping[str, Any], read_text: Callable[[Path], str], warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d378be1ce2e5132cc1b86a3961473a0e267cb3dc2b3da0e3e239eb5310eb8bd4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_detect_process_cpu_count",
      "name": "_detect_process_cpu_count",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L430-L492",
      "signature": "def _detect_process_cpu_count( *, psutil_module: Any | None, warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> dict[str, int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "531d0dfc240a18b2d2e3c0a92569e03722c22bcc135febd839fb9cae5156c2eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_effective_cpu",
      "name": "_effective_cpu",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L775-L809",
      "signature": "def _effective_cpu( host: Mapping[str, int | None], process: Mapping[str, int | None], cgroup: Mapping[str, Any], scheduler: Mapping[str, Any], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bd627faf64e9dc3fdbd0885598198a4b1b30875af9be1f2eadec9a74e5713d44",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_linux_physical_cores",
      "name": "_linux_physical_cores",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L314-L330",
      "signature": "def _linux_physical_cores( read_text: Callable[[Path], str], ) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d3b96b2db775d78c22117e3f2f82e4150091aa2d7f3fd2a97ee90c67825c388f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_load_psutil",
      "name": "_load_psutil",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L294-L311",
      "signature": "def _load_psutil( warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> Any | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "edf11b1709cae2b1b8aad19edff0bc1b731f2b1c97e5fd981ac7c8548be2a696",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "name": "_mac_sysctl_values",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L333-L365",
      "signature": "def _mac_sysctl_values( run_command: Callable[..., dict[str, Any]], warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1dfc8696da89863356d33a155689c9f47dc165cd65eaee7f476c10f5bb7c1fb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_mib_to_bytes",
      "name": "_mib_to_bytes",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1042-L1050",
      "signature": "def _mib_to_bytes(value: str) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "eeac4ed75f72a9a7b94128d03e7ae91b3bf53558a70ba73f4ecffb074948781e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_observed_at",
      "name": "_observed_at",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1557-L1563",
      "signature": "def _observed_at() -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "30d10e8ba28c99db206dc7638ba0fb8a32957f826a840137e43991d88635d189",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_parse_cpu_max",
      "name": "_parse_cpu_max",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L191-L202",
      "signature": "def _parse_cpu_max(value: str) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f4a5ecdecd937018bcf678dbafddeb0db3d61f6f3f5329e70d5556a00507e6fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_parse_first_repeated_count",
      "name": "_parse_first_repeated_count",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L658-L665",
      "signature": "def _parse_first_repeated_count(value: str | None) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8cc057f984b4c7b6ffd1956bad1b4daa65373ee8f7b3f4b166dbf130979707d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_parse_linux_meminfo",
      "name": "_parse_linux_meminfo",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L812-L823",
      "signature": "def _parse_linux_meminfo(payload: str) -> dict[str, int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "893552b3dfdcacaa6208a888f61f008e57d6667bc65acd94cffe4ae5bda4a67b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_parse_slurm_count",
      "name": "_parse_slurm_count",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L629-L640",
      "signature": "def _parse_slurm_count(value: str | None) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "dc849d4f19e1089043428145dcfafb68f9acc93e9de74020d9c91ac1539a6142",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_parse_slurm_memory",
      "name": "_parse_slurm_memory",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L643-L655",
      "signature": "def _parse_slurm_memory(value: str | None) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "cde99eddec862f4046f08f0c56ed49902e275505064ba38ddd59e3473d4ac332",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "name": "_provenance",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L116-L124",
      "signature": "def _provenance( records: list[dict[str, str]], component: str, source: str, status: str, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "603ff82341bdf6b58bd7241d0bbdee5438fd8fa602ce5ecddcdf3b9c5b5a0470",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_read_bounded_text",
      "name": "_read_bounded_text",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L135-L140",
      "signature": "def _read_bounded_text(path: Path, maximum: int = MAX_KERNEL_TEXT) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "3b2b6ded54f3a821f671455371a02f6fcf37aee7dcacac851152b8a6b199c731",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_record_probe_failure",
      "name": "_record_probe_failure",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1348-L1366",
      "signature": "def _record_probe_failure( result: Mapping[str, Any], *, code: str, component: str, tool: str, warnings: list[dict[str, str]], provenance: list[dict[str, str]], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8315cf542a9083743406c20d32c13d05518a23e47ededa70459be03a16235d8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_recursive_scalar",
      "name": "_recursive_scalar",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1089-L1107",
      "signature": "def _recursive_scalar( value: Any, accepted_keys: set[str], ) -> tuple[str, Any] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "94c9ad44f2ed4b42c0b5abbd80ab2ee5b084daa25c9846ec3a4daac94b860bda",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_run_bounded_command",
      "name": "_run_bounded_command",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L205-L291",
      "signature": "def _run_bounded_command( argv: Sequence[str], *, timeout: float = 4.0, maximum: int = MAX_PROBE_OUTPUT, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c34e4075accc39c1692b8f4614661d5c112972ff5cae1fdf722d19498ea55ca4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_run_bounded_command.drain",
      "name": "drain",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L232-L251",
      "signature": "def drain(name: str, stream: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc237b26226458f53cfc687d6316da35bc0c64f4ca64a51096140eee2daabfeb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "name": "_safe_text",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L127-L132",
      "signature": "def _safe_text(value: Any, maximum: int = 128) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9aadd7ff975b26dbf288a8605197f5b31ff95c6b8e3d2532cc2176a567ace0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_try_read",
      "name": "_try_read",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L143-L150",
      "signature": "def _try_read( read_text: Callable[[Path], str], path: Path, ) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "45ecb114f768d57af6b758ef64d11ed114159e17e1e511c3ff066f863533977c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_visibility_summary",
      "name": "_visibility_summary",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1270-L1308",
      "signature": "def _visibility_summary(environ: Mapping[str, str]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "2836747e068a3a032a8f09aa30dd1891b8dffb0be19abaf078957d6149b4b281",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "name": "_warning",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L98-L113",
      "signature": "def _warning( warnings: list[dict[str, str]], code: str, component: str, message: str, *, severity: str = \"warning\", ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a7a5f3c594fdab5435079eec940200b0fc1ca80ca90fda6d1127610c3281adf2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1727-L1750",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "7fbee545268fc18a81fcd5258a0112d01d710f55876f69db6326fdad7b177c76",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "name": "collect_snapshot",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1566-L1716",
      "signature": "def collect_snapshot( *, skip_accelerators: bool = False, observed_at: str | None = None, environ: Mapping[str, str] | None = None, psutil_module: Any = _AUTO, read_text: Callable[[Path], str] = _read_bounded_text, run_command: Callable[..., dict[str, Any]] = _run_bounded_command, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "97bbfe35c4520281abc6db6728403ab1516d0b2c95074a9bd9e9f7dd3647d3f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#detect_all_resources",
      "name": "detect_all_resources",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1719-L1724",
      "signature": "def detect_all_resources(output_path: str | None = None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aff84ce94a07148dca15a79b35b789627b61ef5e72080782ba8ef9860fd061a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "name": "detect_cgroup_v2",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L507-L626",
      "signature": "def detect_cgroup_v2( *, read_text: Callable[[Path], str] = _read_bounded_text, root: Path = Path(\"/sys/fs/cgroup\"), proc_self_cgroup: Path = Path(\"/proc/self/cgroup\"), warnings: list[dict[str, str]] | None = None, provenance: list[dict[str, str]] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "21248c75d2de3a881d59135b790e08742c5c9678e28c57cff31e13d241db3c97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "name": "detect_scheduler",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L668-L772",
      "signature": "def detect_scheduler( environ: Mapping[str, str], *, warnings: list[dict[str, str]] | None = None, provenance: list[dict[str, str]] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "51c220eb15de49f19b1b418a4e64c51038feee64b62540450c5c85b53f3a62ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1753-L1763",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "172333cda3152457ab5fbf47bd9e8be11d7bd955ca1c0052cb068c939a43f684",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "name": "parse_amd_json",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1181-L1221",
      "signature": "def parse_amd_json(payload: str) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e09d76703a35f7defcd1d1677c636e669f6f836a08c1b55d5b4a6dd8c173b964",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#parse_apple_profiler_json",
      "name": "parse_apple_profiler_json",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1224-L1267",
      "signature": "def parse_apple_profiler_json( payload: str, *, machine: str, ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e86996af3790f57fe62e4b54a03405b4bfe7e5f87dd34b39b5a655c2cfe65727",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#parse_cpu_list",
      "name": "parse_cpu_list",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L163-L188",
      "signature": "def parse_cpu_list(value: str) -> int | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c03c69c355ee5a160508e2148e951e93bc7a53d4eb1d1ec8f2c08a8afdbc5b05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/detect_resources.py#parse_nvidia_csv",
      "name": "parse_nvidia_csv",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/detect_resources.py",
      "span": "L1053-L1086",
      "signature": "def parse_nvidia_csv(payload: str) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "083c3a7e863a19e43739b34ebd40476c0c96a8ec24187508b792df5702ba6149",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/plan_workload.py",
      "name": "plan_workload.py",
      "kind": "file",
      "path": "skills/get-available-resources/scripts/plan_workload.py",
      "span": "L1-L312",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eb378d23db082ed3e389fb016fd5031ce196806a2c60031a45293cab5d8bc000",
      "chars": 10799,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/plan_workload.py#_accelerator_decision",
      "name": "_accelerator_decision",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/plan_workload.py",
      "span": "L32-L72",
      "signature": "def _accelerator_decision( snapshot: Mapping[str, Any], requested: str, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e74cc5d6faeb40f0d4c5cdbe8f133f15c4d078a93e2bd1263d9e92433a5aa411",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/plan_workload.py#_optional_number",
      "name": "_optional_number",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/plan_workload.py",
      "span": "L28-L29",
      "signature": "def _optional_number(value: Any) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d6ea3ea4c69d53cc523bec88f811d763925aee2e0c76669fba61ff06d306aed4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/plan_workload.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/plan_workload.py",
      "span": "L239-L286",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0cf9753890ffb181b8f23d8b10475b2c6838c97f9db53bd0e680fe6fa487c4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/plan_workload.py",
      "span": "L75-L236",
      "signature": "def build_plan( snapshot: Mapping[str, Any], *, workload: str = \"cpu\", task_count: int | None = None, requested_workers: int | None = None, memory_per_worker_mib: int | None = None, reserve_memory_mib: int | None = None, accelerator: str = \"none\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "09a57466cbcb851a07259a958311d8db0e49fce98f07fdcb4c16e4bde4310f18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/plan_workload.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/plan_workload.py",
      "span": "L289-L307",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d100b7cff121f5d9c6dd28db610b8cca4adc62ddccf193c0ded5f37c7a5b82a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py",
      "name": "snapshot_tools.py",
      "kind": "file",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L1-L487",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c636c2ae4993f5fcddd9520d85d80bcbad6cc3d4769fd85427cf8f2752dbc87d",
      "chars": 16960,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#_check_optional_number",
      "name": "_check_optional_number",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L46-L59",
      "signature": "def _check_optional_number( parent: Mapping[str, Any], key: str, path: str, errors: list[dict[str, str]], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5115e08e07262be38aaba551000a507e3e0125b9258bbd93739b00c2690b2513",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#_diff_values",
      "name": "_diff_values",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L336-L405",
      "signature": "def _diff_values( before: Any, after: Any, path: str, changes: list[dict[str, Any]], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7e136f9d6854e53746c86585106e97b5a1bad0cbdf953da325c237e13d324433",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#_expect_mapping",
      "name": "_expect_mapping",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L27-L43",
      "signature": "def _expect_mapping( parent: Mapping[str, Any], key: str, path: str, errors: list[dict[str, str]], ) -> Mapping[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "869c7ad749195dc0e46098019fe51fee087b280e6dc0ca833d10ae20d2eee0e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#_is_optional_nonnegative_number",
      "name": "_is_optional_nonnegative_number",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L23-L24",
      "signature": "def _is_optional_nonnegative_number(value: Any) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "291d508caefa5a3bcacd7ee7e12e14f0ebad441c3067a774a6653da7a0fe9d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#_strip_volatile",
      "name": "_strip_volatile",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L330-L333",
      "signature": "def _strip_volatile(snapshot: Mapping[str, Any]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e0ed02d947d6cbddad3f08e2b44e42f7f3c2128c81ec85c098b6c4775266d0ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L436-L461",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4eeb2283287f31f54ff8e40bebe0adf72674574ac0e377278c68867e449e3c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "name": "diff_snapshots",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L408-L433",
      "signature": "def diff_snapshots( before: Mapping[str, Any], after: Mapping[str, Any], *, include_volatile: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "232aed2a032971e4d0995053d110575b0fecacdca221c1c7a67ce4c7da854c97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L464-L482",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9201416d007abcb54914e63d585621dd3a907ba9a8be5f66423be876f2e0cca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "name": "validate_snapshot",
      "kind": "function",
      "path": "skills/get-available-resources/scripts/snapshot_tools.py",
      "span": "L62-L327",
      "signature": "def validate_snapshot(snapshot: Mapping[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb480c9e0dab7b4dd2bcd8057a178d8995531f176495daebe1e972b686f56494",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/batch_sequence_analysis.py",
      "name": "batch_sequence_analysis.py",
      "kind": "file",
      "path": "skills/gget/scripts/batch_sequence_analysis.py",
      "span": "L1-L193",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "282042419948d9bc62321ee421f604c1cdb997deac4c852ca0f44cf8565c4ade",
      "chars": 6119,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/batch_sequence_analysis.py#analyze_sequences",
      "name": "analyze_sequences",
      "kind": "function",
      "path": "skills/gget/scripts/batch_sequence_analysis.py",
      "span": "L36-L139",
      "signature": "def analyze_sequences( fasta_file, blast_db=\"nr\", align=True, predict_structure=False, output_dir=\"output\", )",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc507032a31fe817ca6a37c4e4bb75253c6027995a34dc9fbc63c506fa794a09",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/batch_sequence_analysis.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gget/scripts/batch_sequence_analysis.py",
      "span": "L142-L188",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6687e8cda457e780cc9603f4f55d6a510d7ee3493c6cfa341827d56f5087c8ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/batch_sequence_analysis.py#read_fasta",
      "name": "read_fasta",
      "kind": "function",
      "path": "skills/gget/scripts/batch_sequence_analysis.py",
      "span": "L13-L33",
      "signature": "def read_fasta(fasta_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7236031b587fd49b44a46e135629e31b41860cf3f643a45a91b5226314168806",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/enrichment_pipeline.py",
      "name": "enrichment_pipeline.py",
      "kind": "file",
      "path": "skills/gget/scripts/enrichment_pipeline.py",
      "span": "L1-L236",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "172578543891484aefa5aeb21c82d4f8de4757f214d956bfb88cfbbfb03ffcbf",
      "chars": 7201,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/enrichment_pipeline.py#enrichment_pipeline",
      "name": "enrichment_pipeline",
      "kind": "function",
      "path": "skills/gget/scripts/enrichment_pipeline.py",
      "span": "L30-L166",
      "signature": "def enrichment_pipeline( gene_list, species=\"human\", background=None, output_prefix=\"enrichment\", plot=True, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "486f0cff694934dc8c92dcbbcad118c7421f41a070b36a1083094798c25901f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/enrichment_pipeline.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gget/scripts/enrichment_pipeline.py",
      "span": "L169-L231",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "337ec71e2d198f6620e92a69c1014e0cedec7dd6a8e4b56636c5e1bea15f01bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/enrichment_pipeline.py#read_gene_list",
      "name": "read_gene_list",
      "kind": "function",
      "path": "skills/gget/scripts/enrichment_pipeline.py",
      "span": "L14-L27",
      "signature": "def read_gene_list(file_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e828ead2d84550ce0a6c740b27bae39003c2c5fc44014ad39d24a576ff711735",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/gene_analysis.py",
      "name": "gene_analysis.py",
      "kind": "file",
      "path": "skills/gget/scripts/gene_analysis.py",
      "span": "L1-L176",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "028daf5ea955d49fc3f7ed8b47cffe343f72ebc3fa9dd8fa0bd224c9d35ccaec",
      "chars": 6297,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/gene_analysis.py#analyze_gene",
      "name": "analyze_gene",
      "kind": "function",
      "path": "skills/gget/scripts/gene_analysis.py",
      "span": "L26-L143",
      "signature": "def analyze_gene(gene_name, species=\"homo_sapiens\", output_prefix=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5933a453b2520b3d1846f0f82eb39c97a282a1080f36297dbcb3621037ba5e14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/gene_analysis.py#fasta_text",
      "name": "fasta_text",
      "kind": "function",
      "path": "skills/gget/scripts/gene_analysis.py",
      "span": "L12-L23",
      "signature": "def fasta_text(sequences)",
      "exported": true,
      "origin": "ast",
      "body_hash": "abe69a80834dd4df5555f9305812ed39ee7adb9c3c0ced158c5e8ef66e67b1d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gget/scripts/gene_analysis.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gget/scripts/gene_analysis.py",
      "span": "L146-L171",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3ac740a354ef6893f72eede85f44e21154094d7694b950f66a993858d57d82e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/gtars/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ad3f0f0e13877aa22ac08ee94dca3c1a353a0c43b9a6e516a653698881e6970d",
      "chars": 57,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L1-L462",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9c12a0951f7006ee1ad959a0933e3b5ac8a53de121ca125e96f60d71ec0769f2",
      "chars": 14970,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#_open_binary_nofollow",
      "name": "_open_binary_nofollow",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L140-L149",
      "signature": "def _open_binary_nofollow(path: Path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "d3f04e80d94b79ff4feee34a13e60e4941091b00b277fa2c3fa08833fc12aec0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L89-L98",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a69ffa53f4d234ed18e527f1721f936b0da6e49874262082fa3d592e10ff10ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#_reject_unsafe_text_path",
      "name": "_reject_unsafe_text_path",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L77-L86",
      "signature": "def _reject_unsafe_text_path(raw: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "aff798a60660f113ed3fe0fb048b145443286b22bc08f416074448cef0538d27",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#add_path_mode_argument",
      "name": "add_path_mode_argument",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L425-L431",
      "signature": "def add_path_mode_argument(parser: argparse.ArgumentParser) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc964e225ca1b052625136ad48713e2a4a64a78670a39831bc9bb2d628305d7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L44-L60",
      "signature": "def bounded_int( value: str, *, minimum: int = 0, maximum: int, label: str, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "acc143928bcabc0d881b3f2627a766bb89f6a3d05319ac408ddfe2cdb9b77d65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#display_path",
      "name": "display_path",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L434-L442",
      "signature": "def display_path(path: Path, index: int, mode: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "01967f66de53e9bef95ccfbbbf639d0f185b8d758c52d31b46d629916c1af60b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#fail_json",
      "name": "fail_json",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L451-L461",
      "signature": "def fail_json(tool: str, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dc5e6f52da961b8d225f3c98010a19416b7d6e4113fcc59f987ce9595435d06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#inspect_bed",
      "name": "inspect_bed",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L289-L422",
      "signature": "def inspect_bed( path: Path, *, max_bytes: int, max_records: int, chrom_sizes: dict[str, int] | None = None, chrom_order: list[str] | None = None, max_examples: int = 10, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3377c6be9c32df65189e428ae86a25bd777e7d5af5cdca50056bde71a0f63b3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#inspect_bed.issue",
      "name": "issue",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L320-L324",
      "signature": "def issue(kind: str, code: str, line_number: int) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfd9c07e8686085dfcc20b3059933f078b80ad4e4c027a930446edcf2bf0f3e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#int_type",
      "name": "int_type",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L63-L74",
      "signature": "def int_type(*, minimum: int = 0, maximum: int, label: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "68dc112ba6880f521a773d2c82bd714e8298ac1ee7150f6c42ec8f103165da5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#int_type.parse",
      "name": "parse",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L66-L72",
      "signature": "def parse(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1c8df23918d200e0a762ec50b9b7828a7a83fc94c8a463f0fdd0cf980a4e127",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#iter_text_lines",
      "name": "iter_text_lines",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L152-L196",
      "signature": "def iter_text_lines( path: Path, *, max_bytes: int, max_records: int, max_line_bytes: int = HARD_MAX_LINE_BYTES, ) -> Iterator[tuple[int, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8283ef8b68ea000f0c0ad7879aaea2d50d524af6d40b98dba0759cbe9214309b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#load_chrom_sizes",
      "name": "load_chrom_sizes",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L249-L286",
      "signature": "def load_chrom_sizes( path: Path, *, max_bytes: int, max_records: int, ) -> tuple[dict[str, int], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f20496ca067a0b76d74ab7495bf2e3646acce3a0ab52da2627611b259c2334f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L217-L246",
      "signature": "def load_json(path: Path, *, max_bytes: int) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dda752201f2e4919e07c658aec259aa94803422134bfffda9d648c1a5791350",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#load_json.invalid_constant",
      "name": "invalid_constant",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L236-L237",
      "signature": "def invalid_constant(value: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7e823e2e7a88b63f8e73c0f69d633b7cba0f0500816ca163cfb703cbe33c3d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#load_json.object_pairs",
      "name": "object_pairs",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L228-L234",
      "signature": "def object_pairs(pairs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b25694a5d9abf15b72e38139fd2c169e51057703ccc9a53c899711fc0c936f73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#local_path",
      "name": "local_path",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L101-L137",
      "signature": "def local_path( raw: str, *, must_exist: bool = True, kind: str = \"any\", ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ca06ed0fb9a2f99e0c5e0adc274d573525d8cbd935e0691e7563c5f895a8b2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#print_json",
      "name": "print_json",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L445-L448",
      "signature": "def print_json(payload: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e74af0260e5ac241f8ef29a99d211a624d6cf145be363d7152a5ca88270557f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#SafetyError",
      "name": "SafetyError",
      "kind": "class",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L40-L41",
      "signature": "class SafetyError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7932a54874e3d68fe540bddfc6750e161b92fc697f8e6dd5c90c70b88707157",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/gtars/scripts/_common.py",
      "span": "L199-L214",
      "signature": "def sha256_file(path: Path, *, max_bytes: int) -> tuple[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "070a94cd05591cc59ea560ec4854b5c87c3a106be45cee3f27705d62ec857405",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py",
      "name": "artifact_inspector.py",
      "kind": "file",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L1-L329",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ac7d631fac18addee45732e148654e8a84cd439c2a5b834c98834fc9bc70ccfc",
      "chars": 10846,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#_native_format",
      "name": "_native_format",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L94-L108",
      "signature": "def _native_format(prefix: bytes) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "91afa315050e952df9f20541deb50cac2c8dff3ae2a2846335684c436962294e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#_parse_metadata",
      "name": "_parse_metadata",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L111-L125",
      "signature": "def _parse_metadata(path: Path, max_bytes: int) -> dict[str, str | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f1e6ab31830de4e0eeb9b438e6ef8b8672b1eb2c6378a072bb39f4a1d39772b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#_read_checksums",
      "name": "_read_checksums",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L128-L151",
      "signature": "def _read_checksums( path: Path, *, max_bytes: int, max_files: int, ) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f64d1eb9eb51d7abce67412f29b7b57ebbcf1c05b0840f00506f619a6fef3abf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#_read_prefix",
      "name": "_read_prefix",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L81-L91",
      "signature": "def _read_prefix(path: Path, length: int = 16) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "50d7d21e149ef99e522cb7faf92bf3a26b7477495b171444dc52bcb9c5a1f8a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L36-L78",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "55569d81ec1d6d9e842ba813aab224cf2d1bda3d7c70a317801d8e0307adaa57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "name": "inspect",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L154-L314",
      "signature": "def inspect(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e393c75cc32bda62083996ef6ff7ed1d5abd286d48d7bac449798cae2d7e188",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/artifact_inspector.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gtars/scripts/artifact_inspector.py",
      "span": "L317-L324",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "63ed86afb5bad3469f0297e91f3f7e68b83668cdd8538eb5a7b86a0e6b11694f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/bed_validator.py",
      "name": "bed_validator.py",
      "kind": "file",
      "path": "skills/gtars/scripts/bed_validator.py",
      "span": "L1-L184",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1ab6f216a7a3047a8b0612990e7485dfe147c96a14d7c54153bde0f7ee47e791",
      "chars": 5432,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/bed_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/gtars/scripts/bed_validator.py",
      "span": "L28-L76",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9c4b24ebf8ae8403e194e86f9d05e91afe51c82de0be8af910a43bfa7779ccc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/bed_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gtars/scripts/bed_validator.py",
      "span": "L172-L179",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f74414ddc2ef5b3bad020c831539fdfd14f563895b2058ef3c4f9ff81ec787ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/bed_validator.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/gtars/scripts/bed_validator.py",
      "span": "L79-L169",
      "signature": "def validate(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0e020a8747fc67054b0a25808f4257ec20a49dbb0ea07d514b025d26261b09",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/coverage_preflight.py",
      "name": "coverage_preflight.py",
      "kind": "file",
      "path": "skills/gtars/scripts/coverage_preflight.py",
      "span": "L1-L257",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7462afe4b85c4b71cdc23c38f0f098e2e25f5899f2d361bc12437deb6926a417",
      "chars": 8273,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/coverage_preflight.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/gtars/scripts/coverage_preflight.py",
      "span": "L30-L108",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "1af56efd2742b2e09a41f5db8c8f584bf9131873adfcfc55110c2dc3d5013adb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/coverage_preflight.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gtars/scripts/coverage_preflight.py",
      "span": "L245-L252",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c007c96611d18017a99ba450d680b52e8aaec741eaf41fddfce018b09a123f55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/coverage_preflight.py#preflight",
      "name": "preflight",
      "kind": "function",
      "path": "skills/gtars/scripts/coverage_preflight.py",
      "span": "L114-L242",
      "signature": "def preflight(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1c2c9d60765cd8f3bc57d5a6ad160b05392194a5ee666f8f9ba36ce24bddbd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py",
      "name": "execution_plan.py",
      "kind": "file",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L1-L366",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4ef4bd4dbfb6ad15dbcc76d3ca111d5152f2e4c7c4e440fcead13d1e0d9b2496",
      "chars": 11927,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py#_output",
      "name": "_output",
      "kind": "function",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L121-L122",
      "signature": "def _output(raw: str | None) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "16c7b3b0aa86e73de5d829ed0035f854c1f8bcbc1ab38a0df7c0e346b35389d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py#_require",
      "name": "_require",
      "kind": "function",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L115-L118",
      "signature": "def _require(value: str | None, option: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "5260796b7424838f2665d6e1e8332073c2c5ad9acb7f1cf67b0550625be71c93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L32-L112",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "af9165750ee0ea0633d32aacf145d321c629aba9e2ecc070a08e4f3d0131ee89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L125-L351",
      "signature": "def build_plan(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "309abd3114193c6587b148da143f07214d6a240727fdaa061fed4533db5f9b23",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py#build_plan.add_bed",
      "name": "add_bed",
      "kind": "function",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L155-L183",
      "signature": "def add_bed(raw: str, role: str, *, sorted_required: bool = False) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "83c4fc660a0a971a68a2f0f68e79ae4c6c807c14b64a263862344711621f59df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/execution_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gtars/scripts/execution_plan.py",
      "span": "L354-L361",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7b36ddf04c5bcb5bf6cb9c661eb0dac36871a3d52b99f5020f30bd0e4e6ca52",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py",
      "name": "refget_digest_plan.py",
      "kind": "file",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L1-L312",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c804bfa7796c6b8a39a73928a9dde274df6073ccce4d7c2aab7f57725d3dd299",
      "chars": 10925,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#_normalize_expected_digest",
      "name": "_normalize_expected_digest",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L69-L74",
      "signature": "def _normalize_expected_digest(value: object) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f6ccb07f8561c16ce6adcde434b168272fee367c65380934c2581f250a98fb51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta",
      "name": "_read_fasta",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L77-L138",
      "signature": "def _read_fasta( path: Path, *, max_bytes: int, max_records: int, ) -> list[dict[str, object]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5274aae2fda648170591628c211d3ecf7cf2eecd7ae971345c71af424c5293d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta.finish",
      "name": "finish",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L88-L102",
      "signature": "def finish() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc72cbddbd582f81b3b18e9b5c1ae45f88dba1b1473fa4e7c60f276df3037998",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L34-L60",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "661c9ce089fe30560b46e375bef190001ff41b04e599bb62c761eb706e504201",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L300-L307",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f74414ddc2ef5b3bad020c831539fdfd14f563895b2058ef3c4f9ff81ec787ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#sha512t24u",
      "name": "sha512t24u",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L63-L66",
      "signature": "def sha512t24u(sequence: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ab38d233f0a57d72515c19fcae3ad02b962274071789924d6f2a2b371ddafc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/refget_digest_plan.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/gtars/scripts/refget_digest_plan.py",
      "span": "L141-L297",
      "signature": "def validate(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d27e7137729a3e4543eb2017c7b11aeb616ce7f3b0631042eef451499b5f10ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/tokenizer_manifest.py",
      "name": "tokenizer_manifest.py",
      "kind": "file",
      "path": "skills/gtars/scripts/tokenizer_manifest.py",
      "span": "L1-L239",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b756121edd2bc9652edb6c4242a33bdef33de3550183cf6cf8d23733817b896a",
      "chars": 8558,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/tokenizer_manifest.py#_mapping",
      "name": "_mapping",
      "kind": "function",
      "path": "skills/gtars/scripts/tokenizer_manifest.py",
      "span": "L66-L69",
      "signature": "def _mapping(value, label: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "fd1bc800d8d40f96d6254ec4c6a8b138ce7069e50134ec27d009bd15d68779c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/tokenizer_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/gtars/scripts/tokenizer_manifest.py",
      "span": "L33-L63",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7ae54e791ff74c16dd1c4b1da9ebc557c294c08c241b992dfe80f44010135f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/tokenizer_manifest.py#check",
      "name": "check",
      "kind": "function",
      "path": "skills/gtars/scripts/tokenizer_manifest.py",
      "span": "L72-L224",
      "signature": "def check(args: argparse.Namespace) -> tuple[dict, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2e12436e1fdac94022de43d11dee362fb110afeda965c41f78d81e9135d62a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/gtars/scripts/tokenizer_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/gtars/scripts/tokenizer_manifest.py",
      "span": "L227-L234",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "04de6cd295e990e7fc830a4415e0c59097c4233a177824a72fc7159211470bd7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py",
      "name": "fetch_catalog.py",
      "kind": "file",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L1-L359",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "23dc41d334b79239d8cc6baf49bb9c12d80324652cff209794f1027fa3bb404e",
      "chars": 13346,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#_defang",
      "name": "_defang",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L193-L203",
      "signature": "def _defang(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "e707e0ee48d8bc17e560504af86ca4cb751fec5a082a2df32ee34e0878e54de9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#_host_is_expected",
      "name": "_host_is_expected",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L184-L190",
      "signature": "def _host_is_expected(host: str) -> bool: # Exact host or a real subdomain -- \"evil-huggingface.co\" must not pass by # suffix match alone.",
      "exported": false,
      "origin": "ast",
      "body_hash": "8a7e229984d6d186a8b36ab7bb3b7373464a71f1e17973ad073f82349ff57a25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#cmd_all",
      "name": "cmd_all",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L268-L280",
      "signature": "def cmd_all(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "543fef728e1751cfede05bfc0653cbc8f307ca57d704db22c1ce949f3498d951",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#cmd_raw",
      "name": "cmd_raw",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L304-L318",
      "signature": "def cmd_raw(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e414a915e4913a9a1252d813450476944f4811b05bf37e003fa0cd334c77c0d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#cmd_search",
      "name": "cmd_search",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L283-L301",
      "signature": "def cmd_search(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbf1c92cb360d1fb7a9682502ed27c0f0d147ae2bfd179f9f8bcbee10f07b78e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topic",
      "name": "cmd_topic",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L255-L265",
      "signature": "def cmd_topic(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30538ebad5203c56a2bd5f5bd6ae9940b9a06fe6628b50b57f04a66704dc499e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topics",
      "name": "cmd_topics",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L245-L252",
      "signature": "def cmd_topics(_: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d0de2a9b7816bd2bcaa434903896b4095a4e901d46af85d230292b85bb00755",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#Entry",
      "name": "Entry",
      "kind": "class",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L69-L93",
      "signature": "class Entry",
      "exported": true,
      "origin": "ast",
      "body_hash": "266ea492f698d3c2487d874a3230f9225a2264d605bfc8440800c9c4e1ac5473",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#Entry.matches_filter",
      "name": "matches_filter",
      "kind": "method",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L79-L93",
      "signature": "def matches_filter(self, kind: str | None, tag: str | None) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d5fd13e88b4c12334faf4515ceb609c4f9cd094873a13793fe7c93222275416",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Entry"
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L96-L104",
      "signature": "def fetch(url: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2b476c0074ee19e589ece98619ed3fcffb217271ede0ed411a3f0d3c95c70d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L321-L354",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e9600a9cc294e1776a53c8522ddf12553ab1fefb5f9a4b0ee18622a8c221190",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "name": "parse_markdown",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L107-L163",
      "signature": "def parse_markdown(md: str) -> list[Entry]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ddc7b8846c6ae374d3f0803bba188f794626d02c1747f40d6fe12aafde63417",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown.finalize",
      "name": "finalize",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L118-L122",
      "signature": "def finalize(e: Entry | None, desc: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f247fcddd214bf7744b9f6041ce1d9b8f1dfbc1971320d5d9980c5bdc504cfd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#render_entries",
      "name": "render_entries",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L226-L242",
      "signature": "def render_entries(entries: Iterable[Entry], group_by_section: bool = True) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cf138180de692a1060404b1b4e67495b0cc7b6bac585f20c8779f3eaeec2258",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hugging-science/scripts/fetch_catalog.py#render_entry",
      "name": "render_entry",
      "kind": "function",
      "path": "skills/hugging-science/scripts/fetch_catalog.py",
      "span": "L206-L223",
      "signature": "def render_entry(e: Entry) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "33586f36a3b72204dd90aac7d5edbed2c0161fdbd24c054c4f42ed59996c4f14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1ed9e63a4d602a186d27f4aff40c1ab38e25ec8b971a4fa7731fdbae280eb2ca",
      "chars": 64,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1-L1313",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "041c9b531e4ce8f206b4878ad9abb782882e1d25ef2de565eba8acd7829f9679",
      "chars": 45534,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_absolute_lexical",
      "name": "_absolute_lexical",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L100-L101",
      "signature": "def _absolute_lexical(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "b3e4e503ad9967b0e5f1f537e76588337dc40f75923cd443d5d9a83e57497b55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_load_yaml",
      "name": "_load_yaml",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L260-L311",
      "signature": "def _load_yaml(text: str) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "58d707a27dfd2681ef1ca5335ffeaa202b01a0f87de0b8975e918feab68042c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_load_yaml.construct_mapping",
      "name": "construct_mapping",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L290-L300",
      "signature": "def construct_mapping(loader: Any, node: Any, deep: bool = False) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1463a1af663ad55c13ef4cd91fb2fb15a7c348c385aee519ab91a4f3b1099471",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_load_yaml.UniqueSafeLoader",
      "name": "UniqueSafeLoader",
      "kind": "class",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L287-L288",
      "signature": "class UniqueSafeLoader(yaml.SafeLoader)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a087b54b54177c324627ee4de9e21fab9d05fba030f5b2129938a985fe3fc323",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L75-L76",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8e2221a704004e396c641cb082ab12a880883813126c9da8e1158ea39ae7a69c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L104-L113",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f7182bef295212e893e90cbc92dbf9245acc91f4d0824abab4c3fd4b7a90d618",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_reject_url_or_secret_path",
      "name": "_reject_url_or_secret_path",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L88-L97",
      "signature": "def _reject_url_or_secret_path(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "9e8ab74772ca71104defd0c840702eb3f654fad683db9cfdcc54fc3f98d4a83a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L79-L85",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "fb6140bd81d1665f902c3a39994233779bf7600131a206299e6d354924a71762",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_validate_no_secret_fields",
      "name": "_validate_no_secret_fields",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L456-L477",
      "signature": "def _validate_no_secret_fields(value: Any, *, context: str = \"config\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "74da697b2c977f655892cbfa97d8969dc45da5153b052db1c9ac45020c5e445d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_validate_plain_document",
      "name": "_validate_plain_document",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L222-L257",
      "signature": "def _validate_plain_document(value: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "a99922dfb41f15b10b6c73b91464461a97083fa626f1b410e466985a2b31c3e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_validate_plain_document.visit",
      "name": "visit",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L227-L255",
      "signature": "def visit(item: Any, depth: int) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9adf81cda3acc42fc87dfdb35d6284a969613d088f528ef6a897c54e3f74001",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "name": "_validate_prompt_value",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L784-L804",
      "signature": "def _validate_prompt_value(value: Any, *, context: str, depth: int = 0) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4b6abca64216000b3ee1e75d1bb2bf628eab6788e7f6c3b2f061e01a2c2a7ab0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#_within_root",
      "name": "_within_root",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L116-L120",
      "signature": "def _within_root(candidate: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c09269247f1db3471c89e607b8565c56bba78140ca70d54e117d163f5e1b71bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L396-L401",
      "signature": "def bounded_int(value: Any, *, name: str, minimum: int, maximum: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d56efdf5ac93176b7346f555e0e61317f6fcbebd553cafd9109ea88d770b01e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#canonical_json_bytes",
      "name": "canonical_json_bytes",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1224-L1234",
      "signature": "def canonical_json_bytes(value: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "842d23909ecfa2914cab4406aa2218af994fb37d8f46f48d3d094a55cc635ccc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L140-L176",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], max_bytes: int, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f1048174e7bca3854fcf3be0976053caa3d3bc607da867e4635269be8308a9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L123-L137",
      "signature": "def checked_root(value: str | os.PathLike[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fa4fd362c23fd56674ca1663bbb28daf60b1e50f7c495f13d72fa518445d3bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#classification_metrics",
      "name": "classification_metrics",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1149-L1221",
      "signature": "def classification_metrics(records: Sequence[Mapping[str, str | None]]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c621cc6e4e81aaf2cb2444784142bf3aa2c9761350659dd8383d2e489058399a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L71-L72",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb06f9d3a183c08e3d5734e32a14169f43e95ab0d9e9cf4a2d01c804ede5b3df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#count_values",
      "name": "count_values",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1264-L1272",
      "signature": "def count_values(values: Iterable[str]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7fa9be336958dc647cd66577ba41b51884b5fa5c7b206f1f4678dcab47e43a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#emit_error",
      "name": "emit_error",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1300-L1312",
      "signature": "def emit_error(error: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f01756b46803db96e47b0b73d40a85773af08357961ef30e3b69a03e3c2deca9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1294-L1297",
      "signature": "def emit_json(document: Any, *, stream: Any = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3662c0f28296b0dd8dfe7ed572759ac891e069e074c4daf565012e3ed576dbbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L404-L416",
      "signature": "def finite_number( value: Any, *, name: str, minimum: float = 0.0, maximum: float = 1_000_000_000.0, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f0c429c8f2486e4907047fe45a28ba5db0cb3e738a471fd0680965a0d5efde7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#label_fingerprint",
      "name": "label_fingerprint",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1145-L1146",
      "signature": "def label_fingerprint(label: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bf3eb144faf1da1f163d5a998429d561fad1351c175b125e4ad8c2a5aba54b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#load_json_document",
      "name": "load_json_document",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L350-L373",
      "signature": "def load_json_document( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", max_bytes: int = MAX_JSON_BYTES, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbc1408d98ba5d0107b9ee0b82abdab6fd93398e889fd053b2359df6b03dfa77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "name": "load_structured_document",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L314-L347",
      "signature": "def load_structured_document( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", max_bytes: int = MAX_CONFIG_BYTES, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "25aa394b227d558c8749e44fa7a08ea4ceb6c8a1cefcaf9563f7d5cdfd7e76d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#named_env_presence",
      "name": "named_env_presence",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L768-L781",
      "signature": "def named_env_presence(config: Mapping[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa4cc19908a321623197bc65013bd19f2702e11e94c3ba8abb8f8d576feab11c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "name": "nonempty_text",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L419-L429",
      "signature": "def nonempty_text(value: Any, *, name: str, maximum: int = 1024) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "178689050b43997e582bbf5f8f92f088cec3d8efda9562b61ebce3ef0bd6c535",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#normalized_date",
      "name": "normalized_date",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L446-L453",
      "signature": "def normalized_date(value: Any, *, name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "78f7df7c88483d15a326c4d40f26e503d020ff150281de100834304586abc34d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#normalized_sha256",
      "name": "normalized_sha256",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L440-L443",
      "signature": "def normalized_sha256(value: Any, *, name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a1aa5878ae08a2264521e3185e3db918d2ef8f91d50b1771bf6ac052006d402",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#resolve_manifest_path",
      "name": "resolve_manifest_path",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L204-L219",
      "signature": "def resolve_manifest_path( value: str, *, data_root: Path, suffixes: Iterable[str], max_bytes: int, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ad91639be3b902ece77195eaee4b0a7a96efb3508bf11d321cd8a21f507e7ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "name": "safe_relative_path",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L179-L201",
      "signature": "def safe_relative_path( value: Any, *, name: str, suffixes: Iterable[str] | None = None, allow_dot: bool = False, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ad1089a15358b589e6a2403be946ddf666efde0a271d64a72a1f6248280df1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1237-L1251",
      "signature": "def sha256_file(path: Path, *, max_bytes: int = MAX_JSON_BYTES) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a181e12d26e98abd43a5c3a53ed3765d34cfeed0bb6a98fdf87fdae5a9e0d82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#strict_bool",
      "name": "strict_bool",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L432-L437",
      "signature": "def strict_bool(value: Any, *, name: str, expected: bool | None = None) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7635b4ab1eddef9c8c9d9615b938d95bc108daab4b895e4aed2d08502496b67",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#strict_json_bytes",
      "name": "strict_json_bytes",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1275-L1291",
      "signature": "def strict_json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c6511063beeeb9bc5e46ec5e65759bdb701d057e3e293f2c8a2c60f7b4eded1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#summarize_numbers",
      "name": "summarize_numbers",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1254-L1261",
      "signature": "def summarize_numbers(values: Sequence[float | int]) -> dict[str, float | int | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "de3f67f2b24a1213ea63c18bd6a9b2b09aa56ff90775009bd3190b29650e9afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "name": "validate_dataset_manifest",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L869-L973",
      "signature": "def validate_dataset_manifest(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0243cac6d92d109f553adfb90a4a68fc19b1af04af807b887378f77c4e12d2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "name": "validate_hypothesis_bank",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L976-L1078",
      "signature": "def validate_hypothesis_bank(document: Any) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d92a211c96d42e63f2c8edf22136a0e61ce7168130f173d690166c650def84f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L376-L393",
      "signature": "def validate_keys( value: Any, *, required: Iterable[str], optional: Iterable[str] = (), context: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "84d4bda9c8f60cac0cc4aefc01a10fc62865be482845d09fb028d28d303c834c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "name": "validate_result_document",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L1081-L1142",
      "signature": "def validate_result_document(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d74962b21be68498b2ca072d077a003e29dafc333878234c6b86437ae54b8c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "name": "validate_run_config",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L480-L765",
      "signature": "def validate_run_config(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "47d41f7a266d830977b32e011a438869d339f76414ff147cc8bfd788a3dc03b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "name": "validate_task_config",
      "kind": "function",
      "path": "skills/hypogenic/scripts/_common.py",
      "span": "L807-L866",
      "signature": "def validate_task_config(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "43d852fa9fe19d3f61e44e8925eb069ae08d438c696c3f200ae7c5e5edee9ff0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py",
      "name": "audit_dataset.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L1-L411",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ac9b015f739858cd918fcfdb176393cef9e689cae178a310270631b230bd9be5",
      "chars": 13628,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#_bounded_groups",
      "name": "_bounded_groups",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L175-L203",
      "signature": "def _bounded_groups( groups: Mapping[str, list[tuple[str, int]]], *, maximum: int, cross_split_only: bool, ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "51c7f45c1da8a9c38e66ae183b2051ad1106434e340cd585d2843da10b224b5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#_data_root_from_manifest",
      "name": "_data_root_from_manifest",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L93-L109",
      "signature": "def _data_root_from_manifest( manifest_root: str, relative_root: str, ) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "8797aebfaa5c86753daabeb986a05f0e3c6aff8e82eb5caefc8f15b1fd84cbcd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#_digest",
      "name": "_digest",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L171-L172",
      "signature": "def _digest(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b1c68cb4c9296bde9b71d6953a6f51ad48ed59b0a4f8b0c71435731f3769af51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#_field_names",
      "name": "_field_names",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L112-L120",
      "signature": "def _field_names(row: Mapping[str, Any], *, context: str) -> tuple[str, ...]",
      "exported": false,
      "origin": "ast",
      "body_hash": "949501f700ce445961ab284a8c58ebec0322f0b91e351ce961a96d2b57704380",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#_rows_from_document",
      "name": "_rows_from_document",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L123-L168",
      "signature": "def _rows_from_document( document: Any, *, max_rows: int, split_name: str, ) -> tuple[list[dict[str, Any]], str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d8b5984935c9c69930fba0e008b82d52a421287901c8960f7c6f62554acd8612",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L206-L350",
      "signature": "def audit( manifest: dict[str, Any], *, data_root: Path, max_file_bytes: int, max_rows: int, max_evidence_groups: int, manifest_sha256: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e89e9f6518345ef4af14e1009a4e4d080621c68f560c2407b06a6285d55d9ea8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L51-L90",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "035c1539abb9c6321338388462a9355a724ddafb644ddaab4acc61b84a6d1746",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/audit_dataset.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypogenic/scripts/audit_dataset.py",
      "span": "L353-L406",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "188d93827a77c8d4da82186a6417895df30cf8389e36ad7b6b2396a53d806e0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py",
      "name": "evaluate_local.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L1-L251",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eec40f9437eee0f318270ac6dc53c0eb051ad52dc6937cc9052d0e880f78ecf5",
      "chars": 7925,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "name": "_plan",
      "kind": "function",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L176-L210",
      "signature": "def _plan(args: argparse.Namespace) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "0746dab78ff2a774f007c32ba665e1ee0fb27d78f431de2d8b1dd376e853e63f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py#_report",
      "name": "_report",
      "kind": "function",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L213-L238",
      "signature": "def _report(args: argparse.Namespace) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "c4388c2433f05015b4d0f2cbd2ed6577185a2826a5f3d33cb83399cc0e92dad5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L45-L74",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "97541797cdfc3e942959b4a27b75ff4420475cc599948763bf06c27beaf4eb76",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L241-L246",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "108e7f417250e74ea5cc2a58299a0a57702df353f5509979af4992455ff7c508",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py#make_evaluation_plan",
      "name": "make_evaluation_plan",
      "kind": "function",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L77-L149",
      "signature": "def make_evaluation_plan( config: dict, manifest: dict, *, config_sha256: str, manifest_sha256: str, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "3aa719a6c6ad44857cf448c8039c8fe0cd158444bb27ebff8895234bd03766d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/evaluate_local.py#make_report",
      "name": "make_report",
      "kind": "function",
      "path": "skills/hypogenic/scripts/evaluate_local.py",
      "span": "L152-L173",
      "signature": "def make_report(result: dict, *, result_sha256: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ffa46d15ef455d2e7c94a3c3d478060daac32fa3c162fad1657fb2c586d71f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/inspect_outputs.py",
      "name": "inspect_outputs.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/inspect_outputs.py",
      "span": "L1-L167",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8440baa60fd5a3453f3dd5eb15f7ea082ce39d147c306514e2879cd099488449",
      "chars": 5771,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/inspect_outputs.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypogenic/scripts/inspect_outputs.py",
      "span": "L42-L57",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "add003e9dfc10709708e612845c66ce2eb08f245de2726ae726413cf73a2661d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/inspect_outputs.py#inspect_hypotheses",
      "name": "inspect_hypotheses",
      "kind": "function",
      "path": "skills/hypogenic/scripts/inspect_outputs.py",
      "span": "L60-L100",
      "signature": "def inspect_hypotheses(document: object, *, file_sha256: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "84d1bbb5e4c9aea62b226b797b284b881864e1c98eeb3e1d1b9eb9c630b2997d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/inspect_outputs.py#inspect_results",
      "name": "inspect_results",
      "kind": "function",
      "path": "skills/hypogenic/scripts/inspect_outputs.py",
      "span": "L103-L136",
      "signature": "def inspect_results(document: object, *, file_sha256: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "eeb9e12f91b3348a19c1d59066393d8ff9eb317cbc91be4f77e2c1f79aee5df0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypogenic/scripts/inspect_outputs.py",
      "span": "L139-L162",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac2fae5f89699bb75027244ab06e5c1cb1a76ab93657f4f8f6bc0a09bf5c6aac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/plan_run.py",
      "name": "plan_run.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/plan_run.py",
      "span": "L1-L248",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2f8454baee29db3e91c51c553c727c4441811ed233c547de5ac195932e9b703c",
      "chars": 8417,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/plan_run.py#_money",
      "name": "_money",
      "kind": "function",
      "path": "skills/hypogenic/scripts/plan_run.py",
      "span": "L64-L65",
      "signature": "def _money(value: Decimal) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "6ea22767756a973e1ea2b1c8a10db8d538503e1f229fb7e5e54d4fe5a924d5ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/plan_run.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypogenic/scripts/plan_run.py",
      "span": "L42-L61",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f833559760708401cca0d4b02b46f69e334f8958f33d4b8710b13f6b9697fbe7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/plan_run.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypogenic/scripts/plan_run.py",
      "span": "L205-L243",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe8fbb6d320ff06a83aa8f4811183ba13f2a3e036fa87fa222cf462a3677d48f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/plan_run.py#make_plan",
      "name": "make_plan",
      "kind": "function",
      "path": "skills/hypogenic/scripts/plan_run.py",
      "span": "L68-L202",
      "signature": "def make_plan( config: dict, *, config_sha256: str, check_env: bool, inputs_checked: bool, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "8015950f13aac73569ef247ebd3231a0ada9d883b94dba4b7931e1eb54db2035",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/validate_config.py",
      "name": "validate_config.py",
      "kind": "file",
      "path": "skills/hypogenic/scripts/validate_config.py",
      "span": "L1-L193",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "de14d532ae5d814d4f2240f11f73afc5996f9e4b84240eceea34dc8dfb11084a",
      "chars": 5878,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/validate_config.py#_run_policy",
      "name": "_run_policy",
      "kind": "function",
      "path": "skills/hypogenic/scripts/validate_config.py",
      "span": "L77-L130",
      "signature": "def _run_policy(args: argparse.Namespace) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "d7f7054f748ee53aaa4badd9cf9b3766eddf4a5e6fcdd53e4ca5727b319d0b00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/validate_config.py#_task_config",
      "name": "_task_config",
      "kind": "function",
      "path": "skills/hypogenic/scripts/validate_config.py",
      "span": "L133-L178",
      "signature": "def _task_config(args: argparse.Namespace) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "8412e3bfd4b314605f6d4e8dfc4470a65ea833cf44626261dece491146b17226",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/validate_config.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypogenic/scripts/validate_config.py",
      "span": "L37-L74",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "46401bd4d27e98959509424d39d4b1c2a7e56d1d2cdefe266b607180530df664",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypogenic/scripts/validate_config.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypogenic/scripts/validate_config.py",
      "span": "L181-L188",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "16553efc532cd15865ea8df87eedfd96bf774676e9ddb23f7214d18e783115f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L1-L413",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a1e1390b9bac9440d5038ebe22705420c8831d669c90c9dcbc6647c2cd494e90",
      "chars": 14234,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#_duplicate_safe_object",
      "name": "_duplicate_safe_object",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L32-L38",
      "signature": "def _duplicate_safe_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "062916d42ac4d6716eefcd89915104fdc746d9c072a7a76722001f751d43fb18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#_reject_url_like_path",
      "name": "_reject_url_like_path",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L41-L43",
      "signature": "def _reject_url_like_path(raw_path: str | Path, context: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "16014f12fa1888d5bbdd03e5a5f1d288332b4829e21195ed1ae116664622f2ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#atomic_write_text",
      "name": "atomic_write_text",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L361-L383",
      "signature": "def atomic_write_text( destination: Path, text: str, *, mode: int = 0o600 ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "72b0bcf28c418b1d294c10d3daa1cc0b6bf4806de117f24e44ef4e35f87632bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#error_exit",
      "name": "error_exit",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L410-L412",
      "signature": "def error_exit(exc: ValidationError) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f437c3e7fe34948f4d0da356ea8f592c695fe956ba0e55360fb2e4abbf91af2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#issue",
      "name": "issue",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L405-L407",
      "signature": "def issue(code: str, field: str) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e76ae2693bc59f58494a3160bd27e7803956a205653e5ab6a393730bfe2cb96",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#read_csv_records",
      "name": "read_csv_records",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L130-L184",
      "signature": "def read_csv_records( raw_path: str | Path, *, fields: Iterable[str], max_rows: int = MAX_ROWS, ) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ada01b140b449a22b9008111369c7efe9dc72ed6773750c746721fe07bf26bb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L97-L111",
      "signature": "def read_json(raw_path: str | Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "548460f37e2137501d89eb5e60d4f70d1b706193f20a20e97803ba9838026b4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#read_markdown",
      "name": "read_markdown",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L114-L127",
      "signature": "def read_markdown(raw_path: str | Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fdc1e211ae5cbe2b1108a5fc68be828f4c380f58d3a3c4311cebe8e34732f392",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_bool",
      "name": "require_bool",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L248-L251",
      "signature": "def require_bool(value: Any, context: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "53cdd8f927b7dc9a4b81c58729e2fbd1ee9d4ea404049bc84c08ce58d8938f53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_enum",
      "name": "require_enum",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L254-L261",
      "signature": "def require_enum(value: Any, choices: Iterable[str], context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee0fc60c448ff687c866742cae0b12a2c3a2c0ebe32b167dfd983cf316b81390",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_exact_keys",
      "name": "require_exact_keys",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L193-L207",
      "signature": "def require_exact_keys( value: dict[str, Any], *, required: Iterable[str], optional: Iterable[str] = (), context: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4660f03a3305ded5e348574b67bf4f1e54c2924d457fa28e547bdb6d078cd922",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_https_url",
      "name": "require_https_url",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L354-L358",
      "signature": "def require_https_url(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b6df4fa4f5fd7d169c778be268c030cc82942946ce4e7d71ea613973ceaa430",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_identifier",
      "name": "require_identifier",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L264-L268",
      "signature": "def require_identifier(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b09b3117ef5ff3fa4069d2e5170708cc2c9dcde7227bbec5b66a096eb5e04612",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_identifier_list",
      "name": "require_identifier_list",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L299-L312",
      "signature": "def require_identifier_list( value: Any, context: str, *, minimum: int = 0, maximum: int = 100, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fe66b17a8a730e748ef6a5643f22881c1a8b5eb0b2e146f204220c494c376fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_iso_date",
      "name": "require_iso_date",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L329-L335",
      "signature": "def require_iso_date(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c1670a544cfe1cbbb0a98764a66a1eac0e3256526573687646031c5e14ccbdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_list",
      "name": "require_list",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L210-L223",
      "signature": "def require_list( value: Any, context: str, *, minimum: int = 0, maximum: int = MAX_LIST_ITEMS, ) -> list[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba099c3601a0a6ff9479e57d6e67511a1f29764984ea2dc6adb44f7850272d6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_object",
      "name": "require_object",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L187-L190",
      "signature": "def require_object(value: Any, context: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bedbb0ad99ef3e6ea2fab4e3ad5fa5a1193557a70e91d773c85a29f84d061f06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_partial_date",
      "name": "require_partial_date",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L338-L351",
      "signature": "def require_partial_date(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "edc0e729d0085d96c0e130c960a5df54ec208cc864a0dc576e8a0e638183bbfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "name": "require_text",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L226-L245",
      "signature": "def require_text( value: Any, context: str, *, allow_empty: bool = False, minimum: int = 1, maximum: int = MAX_TEXT_CHARS, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc0c4bc232e6d2a0a6dc9a7b25f1b9528c44a3e92eea074babba1476dc78a75d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_text_list",
      "name": "require_text_list",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L284-L296",
      "signature": "def require_text_list( value: Any, context: str, *, minimum: int = 0, maximum: int = 100, item_maximum: int = 1_000, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "50e011b9fe81567f8725f832b81eb3dfd7789618280c64d6ecd35085f9ea7ee7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#require_unique",
      "name": "require_unique",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L271-L281",
      "signature": "def require_unique(values: Iterable[str], context: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "709f241e38ea13756e8ddd891a2e7530d8a0c90cdef6dd84a83d3373b8dcfb00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "name": "safe_input_path",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L46-L67",
      "signature": "def safe_input_path(raw_path: str | Path, suffixes: Iterable[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e61a9c73d326105d30ff21d799c41748735e09b67572c9e221fd412b96c7b7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#safe_output_path",
      "name": "safe_output_path",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L70-L94",
      "signature": "def safe_output_path( raw_path: str | Path, suffix: str, *, force: bool = False ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "d75a4f77e796ab1fc962ec770fc6712c599b7338b441b863fe78bd2c666dee4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#split_identifiers",
      "name": "split_identifiers",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L315-L326",
      "signature": "def split_identifiers( value: Any, context: str, *, allow_empty: bool = False ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f188a3fbf43e64fecd005ba179d6a7fe7c6623a16c0df542843605a6ee74afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L28-L29",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfdf6694e4d2f9efb43a70b63db4969f879e85a1dfac91124092037003394eea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#write_json_report",
      "name": "write_json_report",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L386-L395",
      "signature": "def write_json_report( data: Any, output: str | Path | None, *, force: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4369f0bdbc2d0cef339e2b9a5797d5ad115677aff806210884bbf90d04003fa0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/_common.py#write_markdown",
      "name": "write_markdown",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/_common.py",
      "span": "L398-L402",
      "signature": "def write_markdown( text: str, output: str | Path, *, force: bool = False ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "70cad062addda878bcf404185c065eaa0bfcb3dc02e435b205c6ace060803f99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "name": "audit_evidence_ledger.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L1-L338",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "18fc0a947fec34ea573eb824f540ce6ccb351aed5e08fc80ae476c2150aef2bb",
      "chars": 12069,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#_record_claim_ids",
      "name": "_record_claim_ids",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L209-L225",
      "signature": "def _record_claim_ids(record: dict[str, Any]) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3c18cbd101cdb729efa5c2344127be979dc8f91a257add53558361b412383815",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L228-L297",
      "signature": "def audit( ledger: list[dict[str, Any]], boundary: dict[str, Any], record: dict[str, Any] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f6770ae8be8e511bbeec73ca7f32415e0f24ad5df690597931153d33fd66ed9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L300-L316",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea5c9612de1d07f78a7fbdcef1539bace5295cb93a67b63987d979aa441bb726",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "name": "load_ledger",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L68-L131",
      "signature": "def load_ledger(raw_path: str) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "254d653a19fa9b0d038d7681b8e91a9a1b61e052645a75490001cbc872298fb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_search_boundary",
      "name": "load_search_boundary",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L134-L206",
      "signature": "def load_search_boundary(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "87ee0a4ac29e3b8ae4f134977013d0c97fe59a669352a8a44f00afc3534aa9f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "span": "L319-L333",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4405ebdbd2edc1cbeb1fa5c7ff5982f4e2db21a8205840192dcec6d44f7919c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "name": "check_falsification_controls.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L1-L456",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e56f67b92d15c93cbe9eb1b9fb89253239b6ac81328fb56fc96d9e2c3ec3ba32",
      "chars": 16477,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_normalize",
      "name": "_normalize",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L298-L299",
      "signature": "def _normalize(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "26199df3f1cc12af7060a00c34f91d092fdee52640b5dd5e3dad0a8dece945ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_controls",
      "name": "_parse_controls",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L151-L194",
      "signature": "def _parse_controls(raw: Any, context: str) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "578c592662670b618eba860471562af10f8e691649aaaf4024a703772c02fe7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_discriminating_tests",
      "name": "_parse_discriminating_tests",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L75-L117",
      "signature": "def _parse_discriminating_tests(raw: Any, context: str) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "59d662e40db7b31eee84f12ac95f4bc0c611df6022501fa4fe4940f76d992a04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_falsifier",
      "name": "_parse_falsifier",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L39-L72",
      "signature": "def _parse_falsifier(raw: Any, context: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8919be2a87eb453c75df91dfa4f0c331b6a2c033a0da950dbf51014b3214c15a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_nulls",
      "name": "_parse_nulls",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L120-L148",
      "signature": "def _parse_nulls(raw: Any, context: str) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a4184f6b9ba78183ff8d1b63fdbebf084d95ec75bb04500fa66f3e1d1bfd71bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_outcome_interpretation",
      "name": "_parse_outcome_interpretation",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L197-L208",
      "signature": "def _parse_outcome_interpretation(raw: Any, context: str) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8ef3f3640f80603b4a0d8a8e64f49a939aaf097ffc87eac93e26a33cd0dfe3cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L302-L420",
      "signature": "def audit( checklist: dict[str, Any], record: dict[str, Any] | None = None ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "80b97c2bfe7ea9d6cc5b21cb876a3c1dbda5005465d1ef70a3a8552bee5a0b56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L423-L438",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd9eeab50c1dadd2e05acd917cf8d5e571f234728d52509a2449ae98650b1def",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "name": "load_checklist",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L211-L295",
      "signature": "def load_checklist(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1915fe384bf2c031dc9106620513854c0ede1c1a80aa0a541d1f758d11ec1a7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "span": "L441-L451",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "92953a5619f0aa585499d6298ae369bb3b23f14b11dafc53e9c95b59f4891aa6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "name": "check_operationalization.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "span": "L1-L238",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "efc093f4b58b23e095238e60badef04d34dfb012b7958e1326a1f7d58ed5edd6",
      "chars": 8086,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_operationalization.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "span": "L142-L208",
      "signature": "def audit(checklist: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfa5e3e8e21b5c3a8f29fa0e2741dde9a84b1a5039693e21f400c04c2b8b2246",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_operationalization.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "span": "L211-L223",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a17d350dfc895092d9eaccfacb3c25830ee8a73f2a1040e942889e1f5048d04c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_operationalization.py#load_checklist",
      "name": "load_checklist",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "span": "L61-L139",
      "signature": "def load_checklist(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb8bf259d1bda74d4d675ff5d1ed31199ecbdee2be04a4e252c1bac55c2e2237",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/check_operationalization.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "span": "L226-L233",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9a81f7c98075cf8b2e20a0fe5d8f4bb270961e575207b3f13e159e088204b51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "name": "generate_preregistration_scaffold.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L1-L385",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f953e3af468cb69ebbba3ff9f3dbba3846a52e557698c03f78972e0b41fb5ba8",
      "chars": 14349,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "name": "_bullet",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L37-L38",
      "signature": "def _bullet(label: str, value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "add1991311f2c7a942b6e5c40d5c2280c63f3e82d483ef88f377f6d5f259549d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ai_use",
      "name": "_render_ai_use",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L278-L301",
      "signature": "def _render_ai_use(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a11bf8b301b02cc29a4b92c508f69992a91ce991b08c8cdd81597bc8b1b1765c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_analyses",
      "name": "_render_analyses",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L248-L275",
      "signature": "def _render_analyses(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "7c3d6782a53c8c56b7c8e1319bff581c0fb0ffca156a759fbbe1f21dead55084",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_estimands",
      "name": "_render_estimands",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L125-L157",
      "signature": "def _render_estimands(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6c64c9e6780c46066694a2b0729284457639ac95628232fb18f05366267b3612",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ethics",
      "name": "_render_ethics",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L41-L59",
      "signature": "def _render_ethics(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a43152badf6597cc07196accc8c08cd3b0681193ac681818671f6393827b8b8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_evidence",
      "name": "_render_evidence",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L62-L70",
      "signature": "def _render_evidence(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "191f65022d3c657d9e9ce270e5718fcda73b25e038e4c3381759bf912ba9a96a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_hypotheses",
      "name": "_render_hypotheses",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L102-L122",
      "signature": "def _render_hypotheses(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "59ea48cdb19ee19131a9b6d18b39dc0f473d288b0f91f9e282167ecbe54451b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_nulls_and_controls",
      "name": "_render_nulls_and_controls",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L185-L211",
      "signature": "def _render_nulls_and_controls(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6d8d630e270fd24c908b9a1a9012da97f2c5aabda269e8f65ca732a5de1277cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_observation",
      "name": "_render_observation",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L73-L82",
      "signature": "def _render_observation(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "dff58c9e5e5aaa72c73fe4d9182279eb2f6b14d72004733b3b5580424cc981c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_operationalizations",
      "name": "_render_operationalizations",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L214-L245",
      "signature": "def _render_operationalizations(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6395142430fe3e2f39001145bb1d2f353151917a384f1c1f16d221bb3a501056",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_predictions",
      "name": "_render_predictions",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L160-L182",
      "signature": "def _render_predictions(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f56b824339eb8f180243e96cf1d499ded3dcee029ac4f9fd388a6d3ad423ae6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_question",
      "name": "_render_question",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L85-L99",
      "signature": "def _render_question(record: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "5c119d666c9810147f756ae3d501b1a22bbd5ee049f01155ac3fd5c65c4141e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "name": "_safe_text",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L30-L34",
      "signature": "def _safe_text(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "e525739809ef9d1be0bdb0bbb90aa4f4805f983c6214ee4fbf0f087132123268",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L355-L367",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "720f7f8b876d55cc83677c2e7b304ee2282a18dd92023061c6472266f28e5051",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "name": "generate",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L304-L352",
      "signature": "def generate( record: dict[str, Any], template_path: Path = TEMPLATE_PATH ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d57c4d4b5b85eec6eb881b212998efa0ec8b596fe2acf1a6ed62684949753158",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "span": "L370-L380",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "000dd346449fd8da92fbd3ac4348afa920ae33d8c75e172d0464b3cd2a00332f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "name": "lint_causal_claims.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "span": "L1-L190",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "561186e71f7c0b573f7ba45ef0009460c1398048929ed55fad53a65cda56dafe",
      "chars": 6809,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/lint_causal_claims.py#_finding",
      "name": "_finding",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "span": "L54-L55",
      "signature": "def _finding(code: str, line_number: int) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b64cdd1aa5617f17cde2ae95afd4037bd9c2fef8cf53724eed4469c09d59ce59",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/lint_causal_claims.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "span": "L163-L175",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f06b3d489141ae3a22c4540b435e1c85b3487234a6c4e47a345c7ea0478c1a44",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/lint_causal_claims.py#lint",
      "name": "lint",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "span": "L58-L160",
      "signature": "def lint(markdown: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fa641abd99ec92df4dd17b6c85a122600a7c6f93032be26c7a19a8742511f43",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/lint_causal_claims.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "span": "L178-L185",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd343cf9a6a3b66cdf208c7ec6180f7fab109904b8fb592eef2007ab6e06f438",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "name": "validate_hypothesis_schema.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L1-L1079",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "63bc1b7752d20042c2845ecb2457448ec8e2d9bc8fe1337003b222f8f4620608",
      "chars": 38955,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_missing_references",
      "name": "_missing_references",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L774-L780",
      "signature": "def _missing_references( values: list[str], valid_values: set[str], code: str, field: str ) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a202f1f9fcddf5ebfc2c8739efc2b6f41949f35dc0273cb9259158939b2e2e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_ai_use",
      "name": "_parse_ai_use",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L683-L715",
      "signature": "def _parse_ai_use(raw: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b835e17b72ed424a06a9ea1bc2bc4cd6cf056dd5814edc258f04f1367a85038a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_alternatives",
      "name": "_parse_alternatives",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L309-L352",
      "signature": "def _parse_alternatives(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f37be35742a0adef60b69f2e8b14a0beab5d6801c7885b2c72cdc71adb37ee03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_analysis_plan",
      "name": "_parse_analysis_plan",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L490-L585",
      "signature": "def _parse_analysis_plan(raw: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b4c6b6c94233fc20df6067c84877f5294a42a5e24c62c807be6a59978a094371",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_controls",
      "name": "_parse_controls",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L393-L436",
      "signature": "def _parse_controls(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "db5047142f4cc3ff26ae6dbd04e84e4005276c3785ec962ee6800f9332a4e142",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_estimands",
      "name": "_parse_estimands",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L187-L244",
      "signature": "def _parse_estimands(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7eb91f8145d8f45292cb0b4ae06e392056a83b8be8e89bf2da9126d250693f10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_ethics",
      "name": "_parse_ethics",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L643-L680",
      "signature": "def _parse_ethics(raw: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "abcfb54566475e874968a276fd16943ad2cb0a9016e2c54e998a865dfea3f64c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_evidence",
      "name": "_parse_evidence",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L588-L621",
      "signature": "def _parse_evidence(raw: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ca61bb01e5240636042852abfcb0a8259a45c1b446b2827a967652692bf24391",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_hypotheses",
      "name": "_parse_hypotheses",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L126-L184",
      "signature": "def _parse_hypotheses(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c82c22c0e9583c7ad5ba5559aa360164bf7c4a4ea6639fd5a2747ead12215a2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_nulls",
      "name": "_parse_nulls",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L355-L390",
      "signature": "def _parse_nulls(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a7f9d9ebe740618bc123df1eeb6e0da76fcab0b26068a81c9f0ea2652067ea79",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_observation",
      "name": "_parse_observation",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L71-L93",
      "signature": "def _parse_observation(raw: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ea0a4283bb5855a286c6d4a7e817fac8d5094b896784941fcec4c78815d41c51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_operationalizations",
      "name": "_parse_operationalizations",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L439-L487",
      "signature": "def _parse_operationalizations(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7560b6eb02591979d9f11fad8ab23aad16430f26107799cdad0321e12d3154b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_predictions",
      "name": "_parse_predictions",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L247-L306",
      "signature": "def _parse_predictions(raw: Any) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "69bf4fd29132f3418482fd7c2714379e1ab521a92ce9cc827c12fad0e7ebcbfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_question",
      "name": "_parse_question",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L96-L123",
      "signature": "def _parse_question(raw: Any) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "96203a11c02464889d0947ff8ef2c06e1b0d6b9f7ab658862b33ac48b3ad1355",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_risk_register",
      "name": "_parse_risk_register",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L624-L640",
      "signature": "def _parse_risk_register(raw: Any) -> dict[str, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e0e053491dcd0a83034e51f6a0ead4514e452042f92afe250a8a294b871792ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L1051-L1063",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "89f6e407205158d1956493b3a1e84b95f98577cf0e67fb7e11c9351bb2531d61",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "name": "load_hypothesis_record",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L718-L771",
      "signature": "def load_hypothesis_record(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "df83f039f274c0651a2f6a44142e8d48362883769afe3635b878ad01a39801ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L1066-L1074",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab6ae65c3121eccc0d5ad3009b1bc0e4eae163ceebd5086c88cef5179fefdaba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "name": "validate_record",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "span": "L783-L1048",
      "signature": "def validate_record(record: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c5f698bfe5b8d585486418720d97154112c3db4f0522f458db9178b93a4868b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "name": "validate_prediction_matrix.py",
      "kind": "file",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L1-L287",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3888802496f4e6ece5955b4fe28d6b2e6d810c5107ce6ca45ebbd70acceed317",
      "chars": 9815,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#_normalized_expectation",
      "name": "_normalized_expectation",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L111-L112",
      "signature": "def _normalized_expectation(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "0ad0c9e906ebd1a9bac9146d4896cd3b58b22c461e6a318ae6c62cb7b09880ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#_unknown",
      "name": "_unknown",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L115-L121",
      "signature": "def _unknown( values: list[str], allowed: set[str], code: str, field: str ) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d08682db8d3285515ec874c115eb5f69a7da83e7e67e54a805017e01600c75e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L254-L269",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0d79b161b2fe2b8105186bebd755e0a117cce12e00448afafc3916979f891c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#load_matrix",
      "name": "load_matrix",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L43-L108",
      "signature": "def load_matrix(raw_path: str) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4152ab4eadfc9dbf0c88c548d967516f4bbb134b4d1593831b916026afb2a82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L272-L282",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b6e67e8d6eec1d96f86c58ff58247ccfd415e31cb14350779ff0b8b2418a547",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#validate_matrix",
      "name": "validate_matrix",
      "kind": "function",
      "path": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "span": "L124-L251",
      "signature": "def validate_matrix( rows: list[dict[str, Any]], record: dict[str, Any] | None = None ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9b489c0c2550383aa16b8fd2c38976681914e62662d22ac4e9d3c695d426dc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py",
      "name": "check_version.py",
      "kind": "file",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L1-L133",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3297b5b2ff900b5002b9a53a1ad86fe395e5cc6cbe4de970862f765873ed85f9",
      "chars": 5361,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#check_minimum",
      "name": "check_minimum",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L86-L107",
      "signature": "def check_minimum()",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b645d5f25938ad5024897be6f9c42e49783805a57122760056d057b1f436d1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#fetch_json",
      "name": "fetch_json",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L43-L53",
      "signature": "def fetch_json(url, *keys)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df85067cd5583484e806ea70a0c5dcdd799d0512f31a95b31677d9a387339578",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#install_commands",
      "name": "install_commands",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L56-L72",
      "signature": "def install_commands(spec, upgrade=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ca91c2b95a140c48f4901aa9e6b04e3cbcbd61107c7324b96c7be3c73a7b193",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L124-L128",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a4a5cf6273adb0c8e157eccbbd73778044a5d9b2f5ef583d4b44f60ba923aaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#notify_updates",
      "name": "notify_updates",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L110-L121",
      "signature": "def notify_updates(installed)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2949b5b12dc64b64e10352921dd4ed4f57b6e15e592ddb681d55342c443ee088",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#parse_version",
      "name": "parse_version",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L27-L40",
      "signature": "def parse_version(v)",
      "exported": true,
      "origin": "ast",
      "body_hash": "18e635943e61e132eaa7f10656c011692dea6d283980bac04d28756d1a6c0507",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/imaging-data-commons/scripts/check_version.py#print_install_instructions",
      "name": "print_install_instructions",
      "kind": "function",
      "path": "skills/imaging-data-commons/scripts/check_version.py",
      "span": "L75-L83",
      "signature": "def print_install_instructions(spec)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cb56d7c60d70b92b1137564e68d97e1c740a6b29f96b426c63bb9c38aeb39b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py",
      "name": "generate_infographic_ai.py",
      "kind": "file",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L1-L1447",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "23d6f1d4344cecb5147a535efd88c58415b2c19ee3c4ab1a3ae43e873b4062d1",
      "chars": 57542,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#_normalize_review_text",
      "name": "_normalize_review_text",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L77-L79",
      "signature": "def _normalize_review_text(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "62855a0e5992253011491e3418cf171dbd2d60518fe9e2e529db6f16c6a98148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#_parse_score",
      "name": "_parse_score",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L82-L96",
      "signature": "def _parse_score(text: str) -> Optional[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9925f80d919436a6f3f99135cc4e85097a314af0140b901edce3b2138e274d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#_parse_verdict",
      "name": "_parse_verdict",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L99-L111",
      "signature": "def _parse_verdict(text: str) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "62505bebf0ee069b1051cc5804e44ff026cc29cf7a4bd4a59bcc2a9de88036a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#_resolve_api_key",
      "name": "_resolve_api_key",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L114-L149",
      "signature": "def _resolve_api_key(explicit: Optional[str] = None) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90dac6c45e351a84c79664d0fc82b3b7a3a7dfa57364f4efd0c39df023062a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "name": "InfographicGenerator",
      "kind": "class",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L347-L1319",
      "signature": "class InfographicGenerator",
      "exported": true,
      "origin": "ast",
      "body_hash": "9957911848f8eaa91d2ecc1c7db8021fdc86db2a20b59bb1aaf61fbf591236a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L414-L436",
      "signature": "def __init__(self, api_key: Optional[str] = None, verbose: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e1676b518bdb6f00816b60ca1043d5ed5e227b4f5a148ee085c9c863fa31de38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._build_generation_prompt",
      "name": "_build_generation_prompt",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L774-L818",
      "signature": "def _build_generation_prompt(self, user_prompt: str, infographic_type: Optional[str] = None, style: Optional[str] = None, palette: Optional[str] = None, background: str = \"white\", context_image_count: int = 0) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "17a3a9eaddca1e1579a28ecefa2ed55c8ffb178241f8912bf8754a00d829ca38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._enhance_prompt_with_research",
      "name": "_enhance_prompt_with_research",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L629-L651",
      "signature": "def _enhance_prompt_with_research(self, user_prompt: str, research_data: Dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "173bff548ee39109ceb079ea1d55c5be0df28be65e70d75c7d3262cda4dcc86d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._extract_image_from_response",
      "name": "_extract_image_from_response",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L699-L755",
      "signature": "def _extract_image_from_response(self, response: Dict[str, Any]) -> Optional[bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "995f654f62438585edb5e0c272327af875cce9fe2ed4735da13033dc1124566f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._image_to_base64",
      "name": "_image_to_base64",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L757-L772",
      "signature": "def _image_to_base64(self, image_path: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "c0e9961effb84f71d66c0f3f363f43a62e88d64b6314b99e7cbca3fcde227b49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "name": "_log",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L438-L441",
      "signature": "def _log(self, message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0274134fa48606c79307bbc087ca49ac5ef90c7c8a175dd59bfe4ebe38e31b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._make_request",
      "name": "_make_request",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L655-L697",
      "signature": "def _make_request(self, model: str, messages: List[Dict[str, Any]], modalities: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d8ec2687912595d4cb5c6777cd7d9383ca5cea69f330caa814cd8ccc12b0d99d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "name": "generate_image",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L820-L880",
      "signature": "def generate_image(self, prompt: str, context_images: Optional[List[str]] = None) -> Optional[bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "464abe6d8d88cef6b1f50b81f8f42d9f51f9baa327994b222b157d86ffdda85d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "name": "generate_iterative",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L1102-L1319",
      "signature": "def generate_iterative(self, user_prompt: str, output_path: str, infographic_type: Optional[str] = None, style: Optional[str] = None, palette: Optional[str] = None, background: str = \"white\", iterations: int = 3, doc_type: str = \"default\", research: bool = False, context_images: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4a9889c6ae60b548f3718f6e5f926c0e4d0f1a149d6a062c1cdf3747063d15f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.improve_prompt",
      "name": "improve_prompt",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L1046-L1100",
      "signature": "def improve_prompt(self, original_prompt: str, critique: str, infographic_type: Optional[str], style: Optional[str], palette: Optional[str], background: str, iteration: int, context_image_count: int = 0) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "79f151b21217be68cc08019b03f8cce233e50c2b491de490cb225e4e4d4af149",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.research_topic",
      "name": "research_topic",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L445-L553",
      "signature": "def research_topic(self, topic: str, infographic_type: Optional[str] = None) -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "923e1322bae1b275e9778e85093d297b246129eca700817ba3b3262c067ccccc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "name": "review_image",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L882-L1044",
      "signature": "def review_image(self, image_path: str, original_prompt: str, infographic_type: Optional[str], iteration: int, doc_type: str = \"default\", max_iterations: int = 3) -> ReviewResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "08ecb54c16b936842efef3491734fe38b91500bf24ab5bcca81a474eb1912d92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.web_search",
      "name": "web_search",
      "kind": "method",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L555-L627",
      "signature": "def web_search(self, query: str) -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "07449c7b0638d32bcf2222b220894f1b014bf9b6680fa96a03920214ea2e1fc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InfographicGenerator"
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L1322-L1442",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1244cad5ba2da66e7dd3716977336d8f652d8fe76e4d974c465d116815cf36fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic_ai.py#ReviewResult",
      "name": "ReviewResult",
      "kind": "class",
      "path": "skills/infographics/scripts/generate_infographic_ai.py",
      "span": "L39-L57",
      "signature": "class ReviewResult(NamedTuple)",
      "exported": true,
      "origin": "ast",
      "body_hash": "63bbc0b92e921f5917629a9aceeb83a236ecdd7d778bdab1a39df356877f4bed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic.py",
      "name": "generate_infographic.py",
      "kind": "file",
      "path": "skills/infographics/scripts/generate_infographic.py",
      "span": "L1-L292",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "26555890a98ba0929196b2850cfcb8df32a6dd5cd2921120dac63d77016c5446",
      "chars": 11527,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic.py#build_subprocess_env",
      "name": "build_subprocess_env",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic.py",
      "span": "L93-L98",
      "signature": "def build_subprocess_env(api_key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0298eaa3da87d0fe144c9eed421c66d9a4f82fffd51312af3176b74c36e6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic.py#list_options",
      "name": "list_options",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic.py",
      "span": "L101-L154",
      "signature": "def list_options()",
      "exported": true,
      "origin": "ast",
      "body_hash": "47cd79fef70940164d0c9033a8d5ba7a5da676b51942189c58f62c4a729795ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic.py",
      "span": "L157-L287",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4a5caec739d8fe5cef3e77153a7dbef24d63f3c2156fc696615f4cb5f488356",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/infographics/scripts/generate_infographic.py#resolve_api_key",
      "name": "resolve_api_key",
      "kind": "function",
      "path": "skills/infographics/scripts/generate_infographic.py",
      "span": "L56-L90",
      "signature": "def resolve_api_key(explicit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "293410fa124c40980c02dffbfeb3e5c2a2d12f3f782ce3440b997e4a16a56520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_catalog.py",
      "name": "_catalog.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/_catalog.py",
      "span": "L1-L249",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "14ad763ebb99fab572cabd86411cd92932f51f01571e52e234337b3d84ad4b2c",
      "chars": 7732,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_catalog.py#StandardProfile",
      "name": "StandardProfile",
      "kind": "class",
      "path": "skills/iso-standards-readiness/scripts/_catalog.py",
      "span": "L159-L169",
      "signature": "class StandardProfile",
      "exported": true,
      "origin": "ast",
      "body_hash": "5603e00a1a1f5846becccda0dc71510a0fea6f6e8fe9f3684a8c1d6a23d3df74",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L1-L559",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "94af223df12d58dc94132db68bbddb485852b363a79d6e3a8ed2d525bc3cd7aa",
      "chars": 16379,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#_check_depth_and_size",
      "name": "_check_depth_and_size",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L99-L117",
      "signature": "def _check_depth_and_size(value: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d18ef93bd096562b5eb4adfa34912bbbfb024719c4c4a7d584ee1f2e786cbe7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L86-L87",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5c5bff2bccf098fd66fd16072ad47c86a83dff69d5d0a3b61e6d45fb26e50087",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#_safe_input_file",
      "name": "_safe_input_file",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L120-L137",
      "signature": "def _safe_input_file(path_text: str, suffixes: set[str]) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "4a33e37d8bc2bdc3e4f855e12e3ed7f6c8578423e1d16f78db39cb1528668203",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L90-L96",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b1133372a933e51b4611df20c66ea46cdabf113b57baddbe7e086c1edcc9552b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#build_report",
      "name": "build_report",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L469-L491",
      "signature": "def build_report( tool: str, findings: Iterable[Finding], *, metrics: dict[str, Any] | None = None, basis: str = \"2026-07-26\", standard: str | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "18543115c66caa4fc1d0eba349708449cb5ac328f7a2e878a4f42988890ef5ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#emit_report",
      "name": "emit_report",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L494-L526",
      "signature": "def emit_report( report: dict[str, Any], output: str | None, *, force: bool, compact: bool, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f0f7150265df19b22cea4b75d7dbf8cf3239f9876a41b91bd88b80db869eb35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Finding",
      "name": "Finding",
      "kind": "class",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L69-L83",
      "signature": "class Finding",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ee22862d8cfcea03abada14582f5b79146684899d619009bb8bafadeb7f43d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Finding.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L77-L83",
      "signature": "def as_dict(self) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "de2ff068f707a62f5817878eb227df950d5d117e6f8d03480fb2bba6ea730f21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Finding"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#finish",
      "name": "finish",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L529-L549",
      "signature": "def finish( tool: str, review: Review, args: argparse.Namespace, *, metrics: dict[str, Any] | None = None, standard: str | None = None, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "92fb0c28d1e206489253255b5a019d4f021b2f17fe83defe171bb6b24ed9643a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "name": "guarded_main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L552-L558",
      "signature": "def guarded_main(main_function: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6c47d17eca147b4e8259cfdf70419256419a7bb2586ce8aed772fae6fbae335",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "name": "InputError",
      "kind": "class",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L64-L65",
      "signature": "class InputError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbc0420ec91bb4a2ca4cc319a35475436c4a94bebdb319c4578a5c4a4e538aab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#is_placeholder",
      "name": "is_placeholder",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L181-L186",
      "signature": "def is_placeholder(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "05ab5ee7fd8937f86ecbf37807be76ea65590c173c38d88b6caa0b563a67a2f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L140-L159",
      "signature": "def load_json(path_text: str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2bdee20ed129cc3df042a9c595ef9c98b4575ca8e8521077d6e769ba3f86264",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#load_markdown",
      "name": "load_markdown",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L162-L172",
      "signature": "def load_markdown(path_text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d88c1d5b521fa1f486793747e468460640349d9f80918993b2062b150f4b09c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#profile_for",
      "name": "profile_for",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L459-L466",
      "signature": "def profile_for(args: argparse.Namespace) -> StandardProfile",
      "exported": true,
      "origin": "ast",
      "body_hash": "f67c5dc26916a91503d97955c8fdee7805b54f6232f3f2149a58d91a237378f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "name": "require_root_object",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L175-L178",
      "signature": "def require_root_object(value: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5541cccbedae62886855f7249e5f2beb7ffcce66f09d11b24718940bc18a1b03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "name": "Review",
      "kind": "class",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L199-L417",
      "signature": "class Review",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f91b9d3d3f29d0800b3e0307a5754491b5bcb68444af5cf4a54fea977b43616",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L202-L203",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e5d1f8e6d3c0a72e6c4badebaeae977c2d650879ef4a2940a322fbf580947080",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "name": "add",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L205-L212",
      "signature": "def add( self, code: str, path: str, message: str, severity: str = \"gap\", ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e400c94be1aa95f715985431ff4a28ccb07fce3523631a3b6a14f97fd7954555",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "name": "approval",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L341-L367",
      "signature": "def approval( self, obj: dict[str, Any], path: str, *, require_approved: bool, ) -> dict[str, Any] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed9d578c0cb8b7af5096fd86a2a8bea5a4d12381c12e68b1e69c8a74946f85fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "name": "choice",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L260-L276",
      "signature": "def choice( self, obj: dict[str, Any], key: str, allowed: set[str], path: str, ) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a94d04fccc8873a4a9fd0cea8bd93458fbbec8b7027b4bdf60a158658257dc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "name": "controlled_item",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L404-L417",
      "signature": "def controlled_item( self, obj: dict[str, Any], path: str, *, require_approved: bool = True, require_sources: bool = True, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f881d3b1b28a44aaf1e12d6f0966c4f101c06c4e7d72515c95591a2023dc5b20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "name": "date",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L278-L293",
      "signature": "def date( self, obj: dict[str, Any], key: str, path: str, *, required: bool = True, ) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fca7cf754a2ae25bbbf0e08c5e9d1c7072d213a780ee7734f0b74e74ecbc576b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "name": "evidence",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L317-L339",
      "signature": "def evidence( self, obj: dict[str, Any], path: str, *, min_items: int = 1, ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "356c2cb324adc473229f865daa1fcf59bbc19a1495b89a5cb4d3a8e4e8c9345c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "name": "list",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L220-L236",
      "signature": "def list( self, value: Any, path: str, *, min_items: int = 1, max_items: int = MAX_ITEMS, ) -> list[Any] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "70fd3a7ba29a0ac5bb94db5b60c54b36d7af4b5e3c9ab733ef1d62a81e488c2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "name": "object",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L214-L218",
      "signature": "def object(self, value: Any, path: str) -> dict[str, Any] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5e64db6f71d90d510549e6155d0196b2e0403ed28f7e247a462c34709036402",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "name": "source_refs",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L369-L402",
      "signature": "def source_refs( self, obj: dict[str, Any], path: str, *, min_items: int = 1, ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc18a032c1d48831c0e6236d0caef165208e50fe364e5d10e39df31cf92bdf64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "name": "text",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L238-L258",
      "signature": "def text( self, obj: dict[str, Any], key: str, path: str, *, max_chars: int = 500, ) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1bc01bdd6edf5327fbccebe8ada6ae5db430cc33288a067e305e07808e04485",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "name": "unique_ids",
      "kind": "method",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L295-L315",
      "signature": "def unique_ids( self, rows: Iterable[Any], path: str, *, key: str = \"id\", ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "849d714f8146bb0349447ea07e0276d3d8516c8c5309710b8f3a50e68bdf517f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Review"
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "name": "standard_parser",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L420-L456",
      "signature": "def standard_parser( description: str, input_help: str, *, with_standard: bool = False, ) -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "27c98e2a0e63594af8aafbfbae7635360ed6c06ad79f9b6391f56607249f8def",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/_common.py#valid_iso_date",
      "name": "valid_iso_date",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/_common.py",
      "span": "L189-L196",
      "signature": "def valid_iso_date(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c84137bd4d3bb48a8220a8fe3618a7644730390940d1b14f60a1bcc7194f66a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "name": "audit_document_records.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "span": "L1-L149",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7db553daa1014f851f10a5a2cc6341d65deaa1336b92b7a8ca5b20850f2b857d",
      "chars": 5518,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "name": "_core",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "span": "L22-L32",
      "signature": "def _core( review: Review, item: dict[str, Any], path: str, *, require_approved: bool, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e07d90eec45f154f9f40c33b887e0873af2ca9138084b82738ff19ab40bf5221",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/audit_document_records.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "span": "L136-L144",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fba0f968a2d0977203305dee0ad1213a35e06724971a99ab07d86bef8107118",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "span": "L35-L133",
      "signature": "def validate(data: dict[str, Any]) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1acd2b4a2c9765b020c99bc7244fd045f7dbc6ff4523c3d0fb88ad06e411eb5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_capa.py",
      "name": "check_capa.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/check_capa.py",
      "span": "L1-L241",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c4a61329328505d73a46dcafd0bafd93096c6736b18aa49e4804df47fbef2cb4",
      "chars": 8909,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_capa.py#_text_array",
      "name": "_text_array",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_capa.py",
      "span": "L29-L49",
      "signature": "def _text_array( review: Review, value: Any, path: str, *, min_items: int = 1, ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c8d2d8fcae8095420a852126dfe63a883b5fafbffd6408d46d9b5a84f6061ddf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_capa.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_capa.py",
      "span": "L228-L236",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2a6282d3dc1a5ecad700c3fd134b08b432299bded088b3548508da2fae78882",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_capa.py",
      "span": "L52-L225",
      "signature": "def validate(data: dict[str, Any]) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b65599255c527d57ccf9089def94c1b1dd9f5b4b827842d9a47d861f66e5773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "name": "check_qmsr_transition.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "span": "L1-L165",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5ec9929f3888124bd52235757664549ff9039131c0f1dc24bc086fad266010f2",
      "chars": 5719,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "span": "L152-L160",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6816622a537f3f0187afbdfb391e282e3af3e48c104a33df04b54f90c46331af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "span": "L26-L149",
      "signature": "def validate(data: dict[str, Any]) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3582bde6d5844aae828a9842a2d2774e67485eba9963feaf0497215143388bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "name": "check_supplier_controls.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "span": "L1-L167",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6fda41de53eb8d900d3365dfc47948f7e6fff6bbff966bfbaa97421857c023b3",
      "chars": 5746,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "name": "_control",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "span": "L22-L56",
      "signature": "def _control( review: Review, supplier: dict[str, Any], key: str, path: str, *, required: bool, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "bdf137115536d61c9a8182318fc04a5d98c7db9190b6060990fc8426fb366852",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "span": "L154-L162",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "27131c1d84170dacb6a1fddda4c625e772adec38592b5b1256e8c34b1f900630",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "span": "L59-L151",
      "signature": "def validate(data: dict[str, Any]) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "049b096942f2291da3f7a66c4b63345f188f18364a12091e272ff8acc93186ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "name": "check_traceability.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "span": "L1-L172",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2749bed44d1953de01669fe0af197d3442e5c30071813ae443bd3ee2a25e06c6",
      "chars": 5646,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_traceability.py#_reference_list",
      "name": "_reference_list",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "span": "L37-L61",
      "signature": "def _reference_list( review: Review, value: Any, path: str, artifact_ids: set[str], ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1e9ad52eb5965b26aa64a3c26c9135749ee90943add15045c26f488e2e8ae8bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_traceability.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "span": "L159-L167",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "85ef0f8e610314bc079d3c740c43e653970d54ea38be9a102706ba65a25a5674",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "span": "L64-L156",
      "signature": "def validate(data: dict[str, Any]) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a10f889f96d224cc617e5e4ddd71976d2853036578f8b849f8dc6c96140a183",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "name": "gap_analyzer.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "span": "L1-L168",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dd765ea96775de4fae48d8428b01e2f6c8a6d8593951448632e278192ca2f470",
      "chars": 5243,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/gap_analyzer.py#_entry_ready",
      "name": "_entry_ready",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "span": "L28-L41",
      "signature": "def _entry_ready(entry: dict[str, Any]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "df2490bd690016086ae13f9fe83f350c62db22e60ea7b2ac214ecd036db6306b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/gap_analyzer.py#analyze",
      "name": "analyze",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "span": "L44-L129",
      "signature": "def analyze( data: dict[str, Any], *, base_dir: str | None, verify_files: bool, profile: StandardProfile, ) -> tuple[dict[str, Any], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "db04b23d59fa710fb7c8379cb54000551c2e98fdddf869f3449d865fbc2aa2ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/gap_analyzer.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "span": "L132-L163",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d008d199c1e5cfa6116dfeb8166897c3dfd7af4e43c6249a753f7c1ee7d17f9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "name": "validate_evidence_manifest.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "span": "L1-L247",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "af4a56d0fa81a93d7f3c46f33ade20ea7715b88a0b7a106312459c9975e85994",
      "chars": 8446,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_safe_evidence_file",
      "name": "_safe_evidence_file",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "span": "L37-L59",
      "signature": "def _safe_evidence_file(base: Path, relative_text: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "ca659bdca46c44f875ac8c963da40e13eb677cf92a5fd38502fbe5119831e800",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_text_array",
      "name": "_text_array",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "span": "L62-L84",
      "signature": "def _text_array( review: Review, value: Any, path: str, allowed: set[str], ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d4b051a2a09956d3e27ecd9b1274127018681cda78cee0f0f9d2a6e8832b18d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "span": "L212-L242",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8862e4002e6a162391c017edcfc8b417930b69874a8b1510c5698593b69ae37",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "span": "L87-L209",
      "signature": "def validate( data: dict[str, Any], *, base_dir: str | None, verify_files: bool, profile: StandardProfile, ) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "083146387ecfea6806459e97dcc39ae38138e62632f6672045aa69a64ed2c719",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "name": "validate_scope_intake.py",
      "kind": "file",
      "path": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "span": "L1-L210",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d99495ba318126161f4faeb9d873f9ca9a4c49b57680392b1dfb2a14125a56ab",
      "chars": 7268,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#_text_list",
      "name": "_text_list",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "span": "L27-L54",
      "signature": "def _text_list( review: Review, value: Any, path: str, *, allowed: set[str] | None = None, min_items: int = 1, ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "2619ebb8b4154a55527bd6358199467ae69075422eef64089cdf54d2ca7146c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "span": "L189-L205",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e5cb7597d38b4f194d9765aece740f92343b5f3e9c67fff5b5fffed7a89d8f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "span": "L57-L186",
      "signature": "def validate( data: dict[str, Any], profile: StandardProfile, ) -> tuple[Review, dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "525301a1cd6bff44692c75eb998c69638cd8e4ca134af5780b6757636e78047f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L1-L651",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "384732d6d14b039aab3f4e2a1f9867f1f6d0ee394d1699ef19e64a3f6ea56c2c",
      "chars": 25023,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#_coerce",
      "name": "_coerce",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L82-L92",
      "signature": "def _coerce(value: str) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "ebcf6d1148eeb6286e3fbb4a8bdc10cd2e170c00b7c7d4632032aaaf400816cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#_is_valid",
      "name": "_is_valid",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L581-L584",
      "signature": "def _is_valid(shape) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "5e4b8e5913f27f64380932d3eb0989b917671fc5e67bf359f33b473fce606a7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#_normalise_region",
      "name": "_normalise_region",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L263-L314",
      "signature": "def _normalise_region(raw: dict, index: int) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "5f383b9f318d2f99f6c24ebc4673fbb95f400983b914b4d34639d1a5e47f495a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#_region_solids",
      "name": "_region_solids",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L396-L424",
      "signature": "def _region_solids(build123d, region: dict, part_bbox) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "9ee7230f837ad7b052c3de9339eb53feaf490d3a65169f05f5285c4777804e56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#cylinder_census",
      "name": "cylinder_census",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L486-L553",
      "signature": "def cylinder_census(part) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0fb35e33f7ddca48fc03a4a37a444fce917df60c6def90bc970d7785ececdf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#emit",
      "name": "emit",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L36-L41",
      "signature": "def emit(payload: Any, as_json: bool, text: str | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "093fb45f6d6ecd9cc4fa3277b650c72f928a1984046953da175d04df9d406711",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "name": "eprint",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L31-L33",
      "signature": "def eprint(message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea55bc78854e9cd6cfa0f32f9617e20bcb231da63cd849e6b3d850434bd0337e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "name": "evaluate_checks",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L427-L455",
      "signature": "def evaluate_checks(part, declared: list[dict]) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0795161090348a9410b0e7b2886e99d789466f84c8d7aba75b7cb0ddb6376c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#format_check_result",
      "name": "format_check_result",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L458-L483",
      "signature": "def format_check_result(item: dict) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4b8008bb1afbb3c05136f9d17ae24f049c85ad9f32e3eebc0fe4bc3c2816ac3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "name": "get_standard",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L52-L58",
      "signature": "def get_standard(standard_id: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf896ba78dba8a3d2be85a6d301ff10c52ecf598cf9c46def49f882f78a452c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "name": "import_model",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L115-L143",
      "signature": "def import_model(model_path: Path, overrides: dict[str, Any] | None = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "50c977357e0f9693bf128ed6caa516a34ea0dcdaba79dbd6e028a236887df65e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#intersection_volume",
      "name": "intersection_volume",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L374-L393",
      "signature": "def intersection_volume(shape_a, shape_b) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "9060a5033903feea64a6eae6ebc1a7a83f70a974fc1152e8e10f826447f9d191",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "name": "LabCadError",
      "kind": "class",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L27-L28",
      "signature": "class LabCadError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a25c83b0c7b8cc08dea1bec3a9a22ebeedb773756ed96a327485d4f23ea76b6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "name": "load_shape",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L556-L578",
      "signature": "def load_shape(path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "890db044797132ad72cbd546d852812f140eea0c66c9d3fdb05fa6f4d77da828",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#load_standards",
      "name": "load_standards",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L44-L49",
      "signature": "def load_standards() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "00c0151d1ded6b3583eb2dfd2b4bc1fb9b377a814efb118b824b077ba9f8632f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#main_guard",
      "name": "main_guard",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L641-L650",
      "signature": "def main_guard(func) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a496965b008b146b2b8cc8ed86f2e687f191653e51d1f92a6d462584c6bbad36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#measure",
      "name": "measure",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L621-L638",
      "signature": "def measure(facts: dict, name: str, swap_xy: bool = False) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "993f58dde20d4af1bc3938c0c35cad38733b8b44275978f551391fe5ace499d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#model_checks",
      "name": "model_checks",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L235-L257",
      "signature": "def model_checks(module) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c504ae1cba04700d25d62d929b2ea4a12f122e6b32feb5a48aa1a8aed8d57f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#model_interfaces",
      "name": "model_interfaces",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L165-L193",
      "signature": "def model_interfaces(module) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a8034af2f2a93122317de607f2e2cd16fb1c6fa43535e95df588d56035b7a95",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#model_parameters",
      "name": "model_parameters",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L106-L112",
      "signature": "def model_parameters(module) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e783ac4d8ddae8bff411c2f9b0a72d4b9e1ec4e364f987c21419fec6b17b18f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#normalise_checks",
      "name": "normalise_checks",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L317-L371",
      "signature": "def normalise_checks(declared: Any) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ce405a3ad9e20d981c92d1c742784632de6b4a346e19dcc7af6efcafe69ff3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#normalise_interfaces",
      "name": "normalise_interfaces",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L196-L232",
      "signature": "def normalise_interfaces(declared: Any) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bc46db8ee87a566e4131d885901342bd9bc570c4a4ecf2c0bdf3baf747b9438",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#parse_params",
      "name": "parse_params",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L95-L103",
      "signature": "def parse_params(pairs: list[str] | None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "536e8ed564c2c69fe81572071400c9b1fad964d6dc634a453a3ee9a8908bf14d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "name": "require_build123d",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L61-L71",
      "signature": "def require_build123d()",
      "exported": true,
      "origin": "ast",
      "body_hash": "834090b56a5e815e58d21f038c37a8208415a7e97a39084f407b3899e1e7dd5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#run_model",
      "name": "run_model",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L146-L162",
      "signature": "def run_model(model_path: Path, overrides: dict[str, Any] | None = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "abc61598585511c212a4f58b3152cc065b1bc9f0d486c70f4746e37fd1fa10fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#sha256_of",
      "name": "sha256_of",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L74-L79",
      "signature": "def sha256_of(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a21be6f8c78014964aeb95faa22be7c501da238b00fcf8b620f6e37bbaa4302a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "name": "shape_facts",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/_common.py",
      "span": "L587-L618",
      "signature": "def shape_facts(shape) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7b795be7b0bece348b357ca305d857304b42865912748743c2bd3b174e6f7d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py",
      "name": "check.py",
      "kind": "file",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L1-L646",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f6f1cd304c327a237f5e079c13a208f7ee3bb1bebcc9d08735ababaf6235557d",
      "chars": 27155,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "name": "_declared_interfaces",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L252-L268",
      "signature": "def _declared_interfaces(target: Path) -> tuple[list[dict], str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "cdae9fface6b893332c409a854dd501e06120f0ceb0ade5f934d2f66773ebbe9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#_evaluate",
      "name": "_evaluate",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L113-L166",
      "signature": "def _evaluate( entry, dimension: str, actual: float, offset: float, measure_label: str, intent: str ) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "5e102c0c3a0fa5143611586e724a80b86bfc4c9b962ec38f72d485976343dbfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#_min_distance",
      "name": "_min_distance",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L468-L482",
      "signature": "def _min_distance(shape_a, shape_b) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7827e8237479107d069c76f49099b0560681ecc86cef91330fa9d4f92d97e0dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#_parse_floats",
      "name": "_parse_floats",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L428-L435",
      "signature": "def _parse_floats(raw: str, count: int, flag: str) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6361d4aef97dd324eae471a2b924006c12536b2d40c8bb732e58345a57f38448",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_bores",
      "name": "cmd_bores",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L438-L465",
      "signature": "def cmd_bores(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "af475f3e40112624dad3aec211a5c479912cf4076db41ceb0c48c6ca1be34ac8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_clearance",
      "name": "cmd_clearance",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L485-L530",
      "signature": "def cmd_clearance(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "46d299ffc9bdc5e40156ec315228f75f68bbbd03735833fa0b487cc4dad04293",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_facts",
      "name": "cmd_facts",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L94-L110",
      "signature": "def cmd_facts(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "89b7704615816f463ce2b21bcbc3c328ac617ac8eadfc557c11dc10fac209d8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "name": "cmd_fit",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L169-L249",
      "signature": "def cmd_fit(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbddbda4560bebacf49a17a7ba9f0ae922e48a7d211e45c3ff8ab394b005ebdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "name": "cmd_geometry",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L350-L394",
      "signature": "def cmd_geometry(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "80abd3312908902c98c5ddb273e84d6672338ed1c06846a87da410c9e830011d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_interfaces",
      "name": "cmd_interfaces",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L271-L347",
      "signature": "def cmd_interfaces(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d01f1b8b8ea49c92dc29cef0e3d909e7ed86f2fa67ad32eba160c8c8073aa08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "name": "cmd_probe",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L397-L425",
      "signature": "def cmd_probe(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8978342d274161fd22bf177c69f4edb8ba13aebecfd16b62efc6e088919530f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#cmd_standards",
      "name": "cmd_standards",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L51-L91",
      "signature": "def cmd_standards(args) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c352de036c19814394d0ffd29d03b033af61fd5f681db4d2825bc3288f43b4a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/check.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/check.py",
      "span": "L533-L641",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b002dfabbce1edef221c2a100c9a34b03dccf416b4b165b5d957e9a104097424",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/gen.py",
      "name": "gen.py",
      "kind": "file",
      "path": "skills/lab-hardware-cad/scripts/gen.py",
      "span": "L1-L265",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d159d22429d2983921726e4ea2256935a5a63eca030463fe5ab45416ec3a7f27",
      "chars": 10764,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/gen.py#_build123d_version",
      "name": "_build123d_version",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/gen.py",
      "span": "L41-L47",
      "signature": "def _build123d_version() -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "18e7f74e9b3ba51d1b628b6490b4786fcc61031c6310e0b3a41530af9ed9551c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/gen.py#_export_dxf",
      "name": "_export_dxf",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/gen.py",
      "span": "L50-L87",
      "signature": "def _export_dxf(part, path: Path, build123d, height: float | None) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "0bf1e61f5a9040f36b11cb9fb263c5caba80630fd0d96c3faae758b5dac11585",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/gen.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/gen.py",
      "span": "L90-L260",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd7fca3911f676fbeec3023d0edf8acc6df7a2978694929fb062930fd842e3f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py",
      "name": "snapshot.py",
      "kind": "file",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L1-L279",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4d6887482d83df8f20093238597d5b8053294ab7e22de0cad24c5ae32e898e21",
      "chars": 10909,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#_edge_polylines",
      "name": "_edge_polylines",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L106-L127",
      "signature": "def _edge_polylines(shape, samples: int = 24) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "53c967c894aa8d4c9512a516ff2b2a1a19fd64c8e795159e233465fe397a6bb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#_require_matplotlib",
      "name": "_require_matplotlib",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L45-L54",
      "signature": "def _require_matplotlib()",
      "exported": false,
      "origin": "ast",
      "body_hash": "daf59a153757b71b416cb9c6db96a79bfa3de11a55c11ea333fa2427e6678609",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#_shade",
      "name": "_shade",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L63-L87",
      "signature": "def _shade(base, normals, elevation: float, azimuth: float)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f21a0bea9748d3bfed9ccf8f32f511e1fc98044c3ba1268a33c795afab46e8cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#_tessellate",
      "name": "_tessellate",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L130-L141",
      "signature": "def _tessellate(shape, deviation: float)",
      "exported": false,
      "origin": "ast",
      "body_hash": "22b0fc9e6b9f29ea94e0f34a980d09e3a28993effa6b4894f2e6c5b85531cc85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#_to_rgb",
      "name": "_to_rgb",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L57-L60",
      "signature": "def _to_rgb(color: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2bdca0dead623fe7f2839547f31e81149acec7fad448ea3b56c34db8c1932a8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#_view_label",
      "name": "_view_label",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L90-L103",
      "signature": "def _view_label(name: str, bbox) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f9034b281b1eca8331a1221c75c9c9d7d3a3ba73487c374178991116c4fbe0b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/lab-hardware-cad/scripts/snapshot.py",
      "span": "L144-L274",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "88a82849c5012b6fbc1c0974e26c6782e66bb7f4229e875177bf191d305989f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py",
      "name": "entry_operations.py",
      "kind": "file",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L1-L382",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e55a82dd338772d7b54d2105e52a408a487d05a2b4d996cdf21780715484cd8b",
      "chars": 12784,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_add_plan_options",
      "name": "_add_plan_options",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L301-L315",
      "signature": "def _add_plan_options(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f55de2be8447d466debe452032d1ab8633ae070d90a22d43b990500c7568cc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_dump",
      "name": "_dump",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L184-L189",
      "signature": "def _dump(payload: Mapping[str, Any], *, compact: bool, stream: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d61d6851b13ae8b2b8c44dca2c373fe1a4898406488f98f85a4afe29a11a6b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_expires_ms",
      "name": "_expires_ms",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L63-L67",
      "signature": "def _expires_ms(value: int | None = None) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "4a6fcab150ab7cb56c6ed0a7b9c000c46d4b363983c1aa8ab9a2cd06a35320e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_load_credentials",
      "name": "_load_credentials",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L192-L208",
      "signature": "def _load_credentials( args: argparse.Namespace, env: Mapping[str, str] ) -> tuple[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7ffa1ec0f2ebda1133e6f2a06c563d94d1f7ae51d2683d06087419f42bc8a8a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_require_secret",
      "name": "_require_secret",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L57-L60",
      "signature": "def _require_secret(value: str, label: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "13f9368603ef849b57cc4a4b33f97d3333f2fffe0303140f973746e6fdb5c18b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_require_text",
      "name": "_require_text",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L50-L54",
      "signature": "def _require_text(value: str, label: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "d13dfc0b272f7b10acd036731aff0e67d1020b517fdc0773aca922ea07361933",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#_secret_fingerprint",
      "name": "_secret_fingerprint",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L180-L181",
      "signature": "def _secret_fingerprint(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "1b34668c16900d8f21bc442317d5c0931411b515ce56f4fa91293e67e8dc7927",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "name": "build_eln_auth_params",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L96-L115",
      "signature": "def build_eln_auth_params( access_key_id: str, access_password: str, api_method: str, expires_ms: int | None = None, ) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "85a5a95cff30f45a14335d2c005dfb09a5e4a098c7ab3ffe098794385d045e31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "name": "build_inventory_headers",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L118-L141",
      "signature": "def build_inventory_headers( access_key_id: str, access_password: str, user_id: str, lab_id: str, relative_path: str, expires_ms: int | None = None, ) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "59426760ef460eb8a89fee91853550c8168ac9af544075ec86c8c1cc5a54f432",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L318-L356",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "af2f4eca795b206e2262ed3fdfe5e8188422941f543a377f3233ac90164435d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "name": "command_eln_plan",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L230-L261",
      "signature": "def command_eln_plan( args: argparse.Namespace, env: Mapping[str, str] | None = None ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "64a8ea42df501c59ed233cd26f8186f8e4cbed5027d9611aafb0904489ce4432",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "name": "command_inventory_plan",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L264-L298",
      "signature": "def command_inventory_plan( args: argparse.Namespace, env: Mapping[str, str] | None = None ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e0e98bf4401c941d60ad28160724ada309d87c4fcf9bde865e3cdefa1e8efe9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#command_self_test",
      "name": "command_self_test",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L211-L227",
      "signature": "def command_self_test(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5764630f92b96b21ce655656bceec1efebdb9086f537f36b3ae8e92328c6ddb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "name": "create_signature",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L70-L87",
      "signature": "def create_signature( access_key_id: str, api_method_input: str, expires_ms: int, access_password: str, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8ca13324b52e876948a045f279479e0dd8886834e09f387caf3ae45b0abcd5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#encode_eln_signature",
      "name": "encode_eln_signature",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L90-L93",
      "signature": "def encode_eln_signature(signature: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f8dd61e36d9f2c3225491ed297c1da7a7d045f0155c6f8a201a0a58510083bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L359-L377",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac51f9e433717eeedb25eb5c9e1d941e04d0ba9694e49bb11dfa3c06befaf32b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#validate_eln_component",
      "name": "validate_eln_component",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L144-L153",
      "signature": "def validate_eln_component(value: str, label: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed6138f401d23480d837b87534cfa776be5e3c23d7b2e574e9232fb3ecd5a286",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/entry_operations.py#validate_inventory_path",
      "name": "validate_inventory_path",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/entry_operations.py",
      "span": "L156-L177",
      "signature": "def validate_inventory_path(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "62d62baf5a76e70f1b77b550cdcec02b7fb40a3683767af41f657f72aac44c79",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py",
      "name": "notebook_operations.py",
      "kind": "file",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L1-L452",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b3c3c12202a844ffe221c0b426ef3e3b89a00c25adba62d7b4b9df48d1f40a57",
      "chars": 15659,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_emit_json",
      "name": "_emit_json",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L350-L355",
      "signature": "def _emit_json(payload: Mapping[str, Any], *, compact: bool) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "cb93f159e4d1d829b0e5b2a72e12defd0857502f384cc4f736df213672af6856",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_find_child",
      "name": "_find_child",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L59-L63",
      "signature": "def _find_child(parent: ElementTree.Element, name: str) -> ElementTree.Element | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b89ca652866def09187de6e6c153188233ba423241664592f171f31dd2578afb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_is_symlink",
      "name": "_is_symlink",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L54-L56",
      "signature": "def _is_symlink(info: zipfile.ZipInfo) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "8757c8cce35cf79296029c1b48280019c84164ad38a06ac1be7fe8013a84f6e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_local_name",
      "name": "_local_name",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L37-L38",
      "signature": "def _local_name(tag: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "66bc581377f74c230916b3cae7dc4fcb889a8cfff87f37a7e740b424495e9143",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_manifest_reference",
      "name": "_manifest_reference",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L66-L90",
      "signature": "def _manifest_reference( entry_info: ElementTree.Element, element_name: str, archive_names: set[str], errors: list[str], ) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b185a774be39602c0765bb242afb52763a403f18902fb75c30cd1abd6502faff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_member_path_error",
      "name": "_member_path_error",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L41-L51",
      "signature": "def _member_path_error(name: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5fe9b3b927caab5dd7fa8d0b74af940e4399b2217fe373a6acdd77318f8839c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_parse_manifest",
      "name": "_parse_manifest",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L93-L163",
      "signature": "def _parse_manifest( archive: zipfile.ZipFile, info: zipfile.ZipInfo, archive_names: set[str], max_manifest_bytes: int, max_index_bytes: int, errors: list[str], warnings: list[str], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f707481342137630467e3db3e4b8eb34ee32341c647d685b4818a1e20e2e4ae0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#_write_json_safely",
      "name": "_write_json_safely",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L313-L347",
      "signature": "def _write_json_safely( output_path: Path, payload: Mapping[str, Any], *, input_path: Path, force: bool, compact: bool, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4adc3bc5e34bef315f63e236fd5613a04fe3726f8bea47906c7e008c4bba4a82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L381-L421",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "acc5254dbd5a5923f55b0cb486ab98705b7ad2d72fce9df6d7427184cf82f8b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#command_inspect",
      "name": "command_inspect",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L358-L378",
      "signature": "def command_inspect(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a54182ca8553f7efe631420b2232a79c4ae031a42a950e376127edea5f0560ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "name": "inspect_container",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L166-L310",
      "signature": "def inspect_container( input_path: Path, *, max_members: int = DEFAULT_MAX_MEMBERS, max_total_bytes: int = DEFAULT_MAX_TOTAL_BYTES, max_manifest_bytes: int = DEFAULT_MAX_MANIFEST_BYTES, max_index_bytes: int = DEFAULT_MAX_INDEX_BYTES, max_compression_ratio: float = DEFAULT_MAX_COMPRESSION_RATIO, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e818509ae519c874329a15ec47439268f35593626e6446de2169f68b7bf4980c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#InspectionError",
      "name": "InspectionError",
      "kind": "class",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L33-L34",
      "signature": "class InspectionError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32ec50c46c6bec5354d9f1b056b0235e6ddc26fd6ad2862196b9e135db09da5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/notebook_operations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/notebook_operations.py",
      "span": "L424-L447",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a269014b6800543b56ce85cafb5de2bd1725ece1c3b26301fdc7ce3410738eb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py",
      "name": "setup_config.py",
      "kind": "file",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L1-L259",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "11134ea85c48ad1035355f48484fcd8f49e9061f9c8982fa4845c535cf2075d6",
      "chars": 8570,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#_dump",
      "name": "_dump",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L99-L104",
      "signature": "def _dump(payload: Mapping[str, Any], *, compact: bool, stream: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d61d6851b13ae8b2b8c44dca2c373fe1a4898406488f98f85a4afe29a11a6b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#_present",
      "name": "_present",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L95-L96",
      "signature": "def _present(env: Mapping[str, str], name: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "a338cdc4acfc4c16c1f6f1441cb7a6cb5c9d5f9fe4fe7cc694af12710c9344c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#_select_api_url",
      "name": "_select_api_url",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L107-L118",
      "signature": "def _select_api_url(args: argparse.Namespace, env: Mapping[str, str]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "d4f517da8fd3f9f82487a8115b9656b8e751de828050169fb855ea82435ae9d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L181-L233",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "86ae657974a59953fa12519f4c6be27512ec5d0ce4bae41415b21731c26791de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#command_check",
      "name": "command_check",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L136-L178",
      "signature": "def command_check( args: argparse.Namespace, env: Mapping[str, str] | None = None ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4392f84ee0ef6148ff4b8813c02fa44f72a55f5401b1cc5413bd1fd42c3bab50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#command_regions",
      "name": "command_regions",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L121-L133",
      "signature": "def command_regions(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "38e7e33acabfa34f34d3e5f9c37418236b890d08f3d264a3a9f6613eed933bef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#ConfigError",
      "name": "ConfigError",
      "kind": "class",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L59-L60",
      "signature": "class ConfigError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2264e33418067742ad910e6846da795322fc56c4e596b17c94ee99f69f53020e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L236-L254",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac51f9e433717eeedb25eb5c9e1d941e04d0ba9694e49bb11dfa3c06befaf32b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/labarchive-integration/scripts/setup_config.py#normalize_eln_api_url",
      "name": "normalize_eln_api_url",
      "kind": "function",
      "path": "skills/labarchive-integration/scripts/setup_config.py",
      "span": "L63-L92",
      "signature": "def normalize_eln_api_url(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd5807183d95015e967893eba1a1f005b86b8e2edcfd7e0b9897643be35c32ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "name": "inspect_latch_sdk.py",
      "kind": "file",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L1-L291",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cb6f6fd196269d5178a5cf65617808162d185130a5e56016b4cc36e4116b247a",
      "chars": 9155,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#build_report",
      "name": "build_report",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L186-L211",
      "signature": "def build_report() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "92beb7f2ebab623800ec562496f1b1250b06d100e6c9e864ad7a9ca8c5da6f71",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#has_required_failures",
      "name": "has_required_failures",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L245-L259",
      "signature": "def has_required_failures(report: dict[str, Any]) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "61d17b98c350a045da6c1d656ac6d7269de9ca1f3dcbe020419ad39e92fe66f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_methods",
      "name": "inspect_methods",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L166-L183",
      "signature": "def inspect_methods( module_name: str, class_name: str, method_names: list[str], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "31f2b37573aac20e86caabe99ac4a90ec84680f6e8d6fa7369f34a30673f6764",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_symbol",
      "name": "inspect_symbol",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L124-L163",
      "signature": "def inspect_symbol(module_name: str, symbol_name: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "97bd4048e82a39ebb7fff6d15d6a5ecc6de67363ef4945a0f279463bb40166cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L262-L286",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d887fe1d73734aff908e335188eb8e12088f3c67d0628752e99927481f13963c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#normalize_repr",
      "name": "normalize_repr",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L111-L114",
      "signature": "def normalize_repr(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c9f3a859db1ac69f74c7b0e3ee1e3950274eb0b1129c1eb4ae907b5e9bfc8ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#print_text",
      "name": "print_text",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L214-L242",
      "signature": "def print_text(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b578b7722d5678a72a97eb4ef6dc744c93619cbc15603ba20761e8b196af856",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#safe_signature",
      "name": "safe_signature",
      "kind": "function",
      "path": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "span": "L117-L121",
      "signature": "def safe_signature(obj: Any) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c1f81e2d735fbd5a0ef7de8632a3c3b830bfdb3b787b661837f8d72278727ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "name": "generate_schematic_ai.py",
      "kind": "file",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L1-L951",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "af055204033d446cd8e4501de0a0d0aaa952bad7c365e559f2e3a80698704ce9",
      "chars": 38484,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#_normalize_review_text",
      "name": "_normalize_review_text",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L76-L78",
      "signature": "def _normalize_review_text(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "62855a0e5992253011491e3418cf171dbd2d60518fe9e2e529db6f16c6a98148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_score",
      "name": "_parse_score",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L81-L95",
      "signature": "def _parse_score(text: str) -> Optional[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9925f80d919436a6f3f99135cc4e85097a314af0140b901edce3b2138e274d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_verdict",
      "name": "_parse_verdict",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L98-L110",
      "signature": "def _parse_verdict(text: str) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c41464342c92a566e7e5c39fc6ba54f9dfbddf56bb6ae3ec6bc7234716c651cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#_resolve_api_key",
      "name": "_resolve_api_key",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L113-L148",
      "signature": "def _resolve_api_key(explicit: Optional[str] = None) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90dac6c45e351a84c79664d0fc82b3b7a3a7dfa57364f4efd0c39df023062a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L852-L945",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0299589c478d99371db30359a7a461cf5bbac8f5fc4b5b0647561b06d81a63e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ReviewResult",
      "name": "ReviewResult",
      "kind": "class",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L38-L56",
      "signature": "class ReviewResult(NamedTuple)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfba0211a60ce31f77d081647933ce80e6124277256be9141343cf510f04926",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "name": "ScientificSchematicGenerator",
      "kind": "class",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L151-L849",
      "signature": "class ScientificSchematicGenerator",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc49a8162ef005d0dd673c65adc8d2438f0e403192c753340fd84971748d6ded",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L218-L247",
      "signature": "def __init__(self, api_key: Optional[str] = None, verbose: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c86c9be6d9ba6121db8d4266da8c2abb981536f987df258c7d8a3890f568d5f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "name": "_extract_image_from_response",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L310-L388",
      "signature": "def _extract_image_from_response(self, response: Dict[str, Any]) -> Optional[bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "67b79bf2797167a84c7dbf71193ae07a2a0db3bc4be4be56cca9fcd7b41307cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "name": "_image_to_base64",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L390-L414",
      "signature": "def _image_to_base64(self, image_path: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "851a5129363c29ebb3700f0727f1247ad7b4372d66e6565cd99c6bcbbc8e5525",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "name": "_log",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L249-L252",
      "signature": "def _log(self, message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0274134fa48606c79307bbc087ca49ac5ef90c7c8a175dd59bfe4ebe38e31b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "name": "_make_request",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L254-L308",
      "signature": "def _make_request(self, model: str, messages: List[Dict[str, Any]], modalities: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "949c5b53aebbb25a209d790ad60e00e331dd5469ad3083fc5c5d248ce5ae7018",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "name": "generate_image",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L416-L492",
      "signature": "def generate_image(self, prompt: str) -> Optional[bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f814e19ade3e7f01e6ea32a5de8ad41e8c726995934ca28948997bacb53ac315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "name": "generate_iterative",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L682-L849",
      "signature": "def generate_iterative(self, user_prompt: str, output_path: str, iterations: int = 2, doc_type: str = \"default\") -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8160369796bdf45dd9aa70fc61774b594f793c7f6432e4b9c4655d318d1fd453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "name": "improve_prompt",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L658-L680",
      "signature": "def improve_prompt(self, original_prompt: str, critique: str, iteration: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "661b56f6ef713f345e35230fefaafa2330cef0c71d96083a1a380353fb4099f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "name": "review_image",
      "kind": "method",
      "path": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "span": "L494-L656",
      "signature": "def review_image(self, image_path: str, original_prompt: str, iteration: int, doc_type: str = \"default\", max_iterations: int = 2) -> ReviewResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e2cecd3f61b97f416a90769dfc795f99cb26544ce610b4ce78679a60fa3dea4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic.py",
      "name": "generate_schematic.py",
      "kind": "file",
      "path": "skills/latex-posters/scripts/generate_schematic.py",
      "span": "L1-L199",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cec9c14d164c9ea9ccf6425f2010c40f1b077dd0c9e30395564cdc793c334b2",
      "chars": 7596,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic.py#build_subprocess_env",
      "name": "build_subprocess_env",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic.py",
      "span": "L80-L85",
      "signature": "def build_subprocess_env(api_key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0298eaa3da87d0fe144c9eed421c66d9a4f82fffd51312af3176b74c36e6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic.py",
      "span": "L88-L193",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3f6b2e36ebdd35e59bdf20801af3632d3565790d6a041a4c5705a07ee5bc253",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/latex-posters/scripts/generate_schematic.py#resolve_api_key",
      "name": "resolve_api_key",
      "kind": "function",
      "path": "skills/latex-posters/scripts/generate_schematic.py",
      "span": "L43-L77",
      "signature": "def resolve_api_key(explicit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "293410fa124c40980c02dffbfeb3e5c2a2d12f3f782ce3440b997e4a16a56520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/liteparse/scripts/batch_parse_dir.py",
      "name": "batch_parse_dir.py",
      "kind": "file",
      "path": "skills/liteparse/scripts/batch_parse_dir.py",
      "span": "L1-L164",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6d9162557da1a4d0005fb448989040a40c9246e469a62783c525aba591c6294c",
      "chars": 4338,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/liteparse/scripts/batch_parse_dir.py#_result_to_dict",
      "name": "_result_to_dict",
      "kind": "function",
      "path": "skills/liteparse/scripts/batch_parse_dir.py",
      "span": "L60-L73",
      "signature": "def _result_to_dict(result: ParseResult) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "8693d10ab1d5c814c4e31e710414eda5f683fed4ffe2610ac55c2401f52077c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/liteparse/scripts/batch_parse_dir.py#_text_item_dict",
      "name": "_text_item_dict",
      "kind": "function",
      "path": "skills/liteparse/scripts/batch_parse_dir.py",
      "span": "L47-L57",
      "signature": "def _text_item_dict(item) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "ac2da5432d0dbc2edae7e53385a8343c039ea1752bd77e239ac5e63d407207f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/liteparse/scripts/batch_parse_dir.py#iter_files",
      "name": "iter_files",
      "kind": "function",
      "path": "skills/liteparse/scripts/batch_parse_dir.py",
      "span": "L76-L86",
      "signature": "def iter_files( input_dir: Path, *, recursive: bool, extension: Optional[str], ) -> Iterable[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "53c1513f20f17746d19b1ce93e892c18f413ea60366a8cd64f442f8072d65288",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/liteparse/scripts/batch_parse_dir.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/liteparse/scripts/batch_parse_dir.py",
      "span": "L111-L159",
      "signature": "def main(argv: Optional[List[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6042cf2fb6aa3213db87b58c20173d1ff21eccdde925e409ad2ac202080b9dc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/liteparse/scripts/batch_parse_dir.py#parse_one",
      "name": "parse_one",
      "kind": "function",
      "path": "skills/liteparse/scripts/batch_parse_dir.py",
      "span": "L89-L108",
      "signature": "def parse_one( parser: LiteParse, file_path: Path, output_dir: Path, fmt: str, ) -> tuple[bool, str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e83106f74e90fd8a34ad0e7f876dcbb2155d3e46a4a43d4a9ff71bb0bbe8c044",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_pdf.py",
      "name": "generate_pdf.py",
      "kind": "file",
      "path": "skills/literature-review/scripts/generate_pdf.py",
      "span": "L1-L177",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dd561948e30101cda0955762a38f463b4ac588b13082b5717b938c3c1d772da3",
      "chars": 5404,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_pdf.py#check_dependencies",
      "name": "check_dependencies",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_pdf.py",
      "span": "L100-L126",
      "signature": "def check_dependencies()",
      "exported": true,
      "origin": "ast",
      "body_hash": "08ae473640d149d688dba64d7c57d711962a20b47d76afc5e0f0269c42ef1ad6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_pdf.py#generate_pdf",
      "name": "generate_pdf",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_pdf.py",
      "span": "L12-L98",
      "signature": "def generate_pdf( markdown_file: str, output_pdf: str = None, citation_style: str = \"apa\", template: str = None, toc: bool = True, number_sections: bool = True ) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa8d0865603915c8952dfb56a6b3565a6272ec310a6c8db175ef3c65fc98af52",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_pdf.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_pdf.py",
      "span": "L128-L173",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "175f4b9dee4f7e83aa7752bc6ac49680b8e3d0e254a2274335231b2d558d6198",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py",
      "name": "generate_schematic_ai.py",
      "kind": "file",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L1-L951",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "af055204033d446cd8e4501de0a0d0aaa952bad7c365e559f2e3a80698704ce9",
      "chars": 38484,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#_normalize_review_text",
      "name": "_normalize_review_text",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L76-L78",
      "signature": "def _normalize_review_text(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "62855a0e5992253011491e3418cf171dbd2d60518fe9e2e529db6f16c6a98148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_score",
      "name": "_parse_score",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L81-L95",
      "signature": "def _parse_score(text: str) -> Optional[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9925f80d919436a6f3f99135cc4e85097a314af0140b901edce3b2138e274d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_verdict",
      "name": "_parse_verdict",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L98-L110",
      "signature": "def _parse_verdict(text: str) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c41464342c92a566e7e5c39fc6ba54f9dfbddf56bb6ae3ec6bc7234716c651cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#_resolve_api_key",
      "name": "_resolve_api_key",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L113-L148",
      "signature": "def _resolve_api_key(explicit: Optional[str] = None) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90dac6c45e351a84c79664d0fc82b3b7a3a7dfa57364f4efd0c39df023062a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L852-L945",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0299589c478d99371db30359a7a461cf5bbac8f5fc4b5b0647561b06d81a63e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ReviewResult",
      "name": "ReviewResult",
      "kind": "class",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L38-L56",
      "signature": "class ReviewResult(NamedTuple)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfba0211a60ce31f77d081647933ce80e6124277256be9141343cf510f04926",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "name": "ScientificSchematicGenerator",
      "kind": "class",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L151-L849",
      "signature": "class ScientificSchematicGenerator",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc49a8162ef005d0dd673c65adc8d2438f0e403192c753340fd84971748d6ded",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L218-L247",
      "signature": "def __init__(self, api_key: Optional[str] = None, verbose: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c86c9be6d9ba6121db8d4266da8c2abb981536f987df258c7d8a3890f568d5f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "name": "_extract_image_from_response",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L310-L388",
      "signature": "def _extract_image_from_response(self, response: Dict[str, Any]) -> Optional[bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "67b79bf2797167a84c7dbf71193ae07a2a0db3bc4be4be56cca9fcd7b41307cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "name": "_image_to_base64",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L390-L414",
      "signature": "def _image_to_base64(self, image_path: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "851a5129363c29ebb3700f0727f1247ad7b4372d66e6565cd99c6bcbbc8e5525",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "name": "_log",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L249-L252",
      "signature": "def _log(self, message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0274134fa48606c79307bbc087ca49ac5ef90c7c8a175dd59bfe4ebe38e31b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "name": "_make_request",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L254-L308",
      "signature": "def _make_request(self, model: str, messages: List[Dict[str, Any]], modalities: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "949c5b53aebbb25a209d790ad60e00e331dd5469ad3083fc5c5d248ce5ae7018",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "name": "generate_image",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L416-L492",
      "signature": "def generate_image(self, prompt: str) -> Optional[bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f814e19ade3e7f01e6ea32a5de8ad41e8c726995934ca28948997bacb53ac315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "name": "generate_iterative",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L682-L849",
      "signature": "def generate_iterative(self, user_prompt: str, output_path: str, iterations: int = 2, doc_type: str = \"default\") -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8160369796bdf45dd9aa70fc61774b594f793c7f6432e4b9c4655d318d1fd453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "name": "improve_prompt",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L658-L680",
      "signature": "def improve_prompt(self, original_prompt: str, critique: str, iteration: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "661b56f6ef713f345e35230fefaafa2330cef0c71d96083a1a380353fb4099f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "name": "review_image",
      "kind": "method",
      "path": "skills/literature-review/scripts/generate_schematic_ai.py",
      "span": "L494-L656",
      "signature": "def review_image(self, image_path: str, original_prompt: str, iteration: int, doc_type: str = \"default\", max_iterations: int = 2) -> ReviewResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e2cecd3f61b97f416a90769dfc795f99cb26544ce610b4ce78679a60fa3dea4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic.py",
      "name": "generate_schematic.py",
      "kind": "file",
      "path": "skills/literature-review/scripts/generate_schematic.py",
      "span": "L1-L199",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cec9c14d164c9ea9ccf6425f2010c40f1b077dd0c9e30395564cdc793c334b2",
      "chars": 7596,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic.py#build_subprocess_env",
      "name": "build_subprocess_env",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic.py",
      "span": "L80-L85",
      "signature": "def build_subprocess_env(api_key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0298eaa3da87d0fe144c9eed421c66d9a4f82fffd51312af3176b74c36e6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic.py",
      "span": "L88-L193",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3f6b2e36ebdd35e59bdf20801af3632d3565790d6a041a4c5705a07ee5bc253",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/generate_schematic.py#resolve_api_key",
      "name": "resolve_api_key",
      "kind": "function",
      "path": "skills/literature-review/scripts/generate_schematic.py",
      "span": "L43-L77",
      "signature": "def resolve_api_key(explicit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "293410fa124c40980c02dffbfeb3e5c2a2d12f3f782ce3440b997e4a16a56520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py",
      "name": "search_databases.py",
      "kind": "file",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L1-L304",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4b572895633b765a0f0214ec455149dd6282c657f5659793213687003f3fa630",
      "chars": 9034,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py#deduplicate_results",
      "name": "deduplicate_results",
      "kind": "function",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L83-L117",
      "signature": "def deduplicate_results(results: List[Dict]) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6e9761dd4d35cdb84f0e596e626383b6347858f61c1a4fbd1008c5e9e8dd89f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py#filter_by_year",
      "name": "filter_by_year",
      "kind": "function",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L139-L165",
      "signature": "def filter_by_year(results: List[Dict], start_year: int = None, end_year: int = None) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "46f740dfca09466f108c139ce8ae4ce7ddcc44e282a68462cd3e997a838bbf20",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py#format_search_results",
      "name": "format_search_results",
      "kind": "function",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L12-L81",
      "signature": "def format_search_results(results: List[Dict], output_format: str = 'json') -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6efccc624ca81eff172389ebdff7506a68d3489514922fc32161a85e017d366c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py#generate_search_summary",
      "name": "generate_search_summary",
      "kind": "function",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L167-L207",
      "signature": "def generate_search_summary(results: List[Dict]) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "d49ff8becc8289a0234f070f621929a659b9601f38ab3acbc78e5330f78db88f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L209-L300",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "633f21cf5bebe1c66a13d5654495c4f0ea2559f998d3d2fe56bbe7f6a20878bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/search_databases.py#rank_results",
      "name": "rank_results",
      "kind": "function",
      "path": "skills/literature-review/scripts/search_databases.py",
      "span": "L119-L137",
      "signature": "def rank_results(results: List[Dict], criteria: str = 'citations') -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5227ada0fe1207f6c4d85cfead710dc5d9839784e67e5ae9ffd5c53477fdbd05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py",
      "name": "verify_citations.py",
      "kind": "file",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L1-L223",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ab492d2670865cd3a632024121c7449bb7138dc1ca565fbd0c0e697635104d55",
      "chars": 7050,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "name": "CitationVerifier",
      "kind": "class",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L14-L180",
      "signature": "class CitationVerifier",
      "exported": true,
      "origin": "ast",
      "body_hash": "7af3cdef4228753d1f4810bd511fa952971e0ea1f1c9c03c8f87ac90303f6e85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L15-L19",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "1aecd480eaf73c5dd65cd619b252bc83904dbc3684a791a9f17e6866ae631d1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._extract_year",
      "name": "_extract_year",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L86-L94",
      "signature": "def _extract_year(self, message: Dict) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "0307bfadcdd6a7396c6ee1da952dcb9d3c4cdd040471d2446b8ad2485c5219b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._format_authors",
      "name": "_format_authors",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L69-L84",
      "signature": "def _format_authors(self, authors: List[Dict]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "e93327cb7a242133d1bb8645f572d976300a8719fa435a30aa56d3eec221ce7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._get_crossref_metadata",
      "name": "_get_crossref_metadata",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L44-L67",
      "signature": "def _get_crossref_metadata(self, doi: str) -> Dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "13b262719f6f678edf1e5d8f3c3882b3e7856819fa81a256ead73ffa84c49ad5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.extract_dois",
      "name": "extract_dois",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L21-L24",
      "signature": "def extract_dois(self, text: str) -> List[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd0d3de598f8b61bfbecc05cb5a891d5bcfff99d53f077670ee8571d0e66fbc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.format_citation_apa",
      "name": "format_citation_apa",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L139-L159",
      "signature": "def format_citation_apa(self, metadata: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e3de680484da19753a2d66b321aa37d79930bb3c52c9637719ea31e6b6154aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.format_citation_nature",
      "name": "format_citation_nature",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L161-L180",
      "signature": "def format_citation_nature(self, metadata: Dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "83bb49076b29117239a99582856503c298ffb9f92e7e68478963356e0f28bff6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_citations_in_file",
      "name": "verify_citations_in_file",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L108-L137",
      "signature": "def verify_citations_in_file(self, filepath: str) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "689d014ea0c98fe9d4cb029a0468d6e8997e384ee76d99fdc9c01901bd70d068",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_doi",
      "name": "verify_doi",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L26-L42",
      "signature": "def verify_doi(self, doi: str) -> Tuple[bool, Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6778bde77811379613281ac009b541716c04090d2204272c6f045003dd77dc4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_url",
      "name": "verify_url",
      "kind": "method",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L96-L106",
      "signature": "def verify_url(self, url: str) -> Tuple[bool, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b262b850eef0c641bb97b3455bb72673d49388ab86eb213fc7275ee9c4b11b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationVerifier"
    },
    {
      "id": "skills/literature-review/scripts/verify_citations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/literature-review/scripts/verify_citations.py",
      "span": "L182-L219",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb03e1b56607aa2dcacac30208e1708bc0890f5ec73be2c7ae75017e22985502",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L1-L313",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4108e81fc50df920c417468daff3626de1238c72e69aa107a3f3ba5132b79cb8",
      "chars": 11093,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#error_exit",
      "name": "error_exit",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L310-L312",
      "signature": "def error_exit(exc: ValidationError) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d9ffb95d406dbf672ba97273a411095dec882cf66d5fa8213a1a103956a4fe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "name": "parse_currency",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L262-L268",
      "signature": "def parse_currency(value: Any, context: str, *, allow_empty: bool = False) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b633c7ba71f30ee2297bc75cc3c4bb8ff18f38ac885dbccec484d1edc538f12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#parse_fraction",
      "name": "parse_fraction",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L258-L259",
      "signature": "def parse_fraction(value: Any, context: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "093fe455494faf1aee48e2a377fa7d805c2006f74b75233b06d0def2d81552c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#parse_iso_date",
      "name": "parse_iso_date",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L215-L221",
      "signature": "def parse_iso_date(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "867b7d86de0f88d78786ee50368d23306f833e655c2687911f7839be411ab449",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#parse_number",
      "name": "parse_number",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L236-L255",
      "signature": "def parse_number( value: Any, context: str, *, minimum: float, maximum: float, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "11fd9a3cffb42565e26a0522f772cb723105d737a63831f908e5b59fb1923744",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#parse_year",
      "name": "parse_year",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L224-L233",
      "signature": "def parse_year(value: Any, context: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "57b1e581753e7a92688092b36011b694a7cb0951c1fb1080e9a6d453238df93b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#read_csv_records",
      "name": "read_csv_records",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L92-L147",
      "signature": "def read_csv_records( raw_path: str | Path, *, required_fields: Iterable[str], max_rows: int = MAX_ROWS, ) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6bb1b391d052662c7cda1315a809e0e5f12bc18ee6488e8d7baa866a88f8696",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L78-L89",
      "signature": "def read_json(raw_path: str | Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "455287d480f14a5eb7352659924b06db8330bee73454c80dc7f851470abc6ac4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#require_identifier",
      "name": "require_identifier",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L191-L199",
      "signature": "def require_identifier(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "934a7645305039abc7f9c22f25be63e5b7d7e6020b39464785d015731c813773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#require_list",
      "name": "require_list",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L156-L169",
      "signature": "def require_list( value: Any, context: str, *, minimum: int = 0, maximum: int = MAX_ROWS, ) -> list[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed25481794a18bfcb4aa2679c9daa58c20da76be85d5cb05f1488883e8f8a552",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#require_object",
      "name": "require_object",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L150-L153",
      "signature": "def require_object(value: Any, context: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bedbb0ad99ef3e6ea2fab4e3ad5fa5a1193557a70e91d773c85a29f84d061f06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#require_text",
      "name": "require_text",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L172-L188",
      "signature": "def require_text( value: Any, context: str, *, allow_empty: bool = False, maximum: int = MAX_CELL_CHARS, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "40ec8c9840560e7ac46773b802c33732c3e153cc3d726142128027e493806975",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "name": "require_unique_identifiers",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L202-L212",
      "signature": "def require_unique_identifiers(values: Iterable[str], context: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "275ae39acdc377ea4b5573b4f4d0b0d4663e6bc66c417b0f3185cc2b30edc08e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#safe_input_path",
      "name": "safe_input_path",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L29-L49",
      "signature": "def safe_input_path(raw_path: str | Path, suffixes: Iterable[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c86423866d5cbf302b9802e1d58b6621566da487d04cfa943445071c3fe0949",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#safe_output_path",
      "name": "safe_output_path",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L52-L75",
      "signature": "def safe_output_path( raw_path: str | Path, suffix: str, *, force: bool = False ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "154443e219eb53211e8a31382e86f716da1800a5c34d9a0d6cb6517b14015224",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#split_ids",
      "name": "split_ids",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L271-L280",
      "signature": "def split_ids(value: Any, context: str, *, allow_empty: bool = False) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "be50c427f69ac93f8dcee009145f98f57d00c6ba08075bff0693e31b5b5f8f28",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L25-L26",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1883c240869de3cf691e9683f55b7c74020ab7a6982205ce46854ca75a3e7bf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/_common.py#write_json_report",
      "name": "write_json_report",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/_common.py",
      "span": "L283-L307",
      "signature": "def write_json_report( data: Any, output: str | Path | None, *, force: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24a19f1215e633f2c85ac4661bcdeca9e0fb57e1bcc4af6037ad24d7fa9e1558",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "name": "audit_claim_citations.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "span": "L1-L327",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4a6a8f254838aaefe6d14bf38e0bdb2b03bafb9e1ca93afec873527bf0c2b054",
      "chars": 11051,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/audit_claim_citations.py#_load_sources",
      "name": "_load_sources",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "span": "L87-L107",
      "signature": "def _load_sources(path: str | Path) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a983d43c57ad408c48b17c3e9703d96967012de01ee602a6ef1146f3ab097d3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/audit_claim_citations.py#_source_index",
      "name": "_source_index",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "span": "L110-L127",
      "signature": "def _source_index(records: list[dict[str, Any]]) -> dict[str, dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a5de38ff4ea6ccc8717a6632ad1b70d543a0f5cadb6b31a3c596383ee219905",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "span": "L130-L295",
      "signature": "def audit( claims: list[dict[str, str]], sources: list[dict[str, Any]] ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3446e0c44b06cb8a06006a250adb3a2cf6ed3076d3899c20ec19f7ebf0eb8359",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/audit_claim_citations.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "span": "L298-L311",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "37d7dd6d3a364342495a995fdcb659dcc6a7bccbf4884d89e3c4a300309d8215",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/audit_claim_citations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "span": "L314-L322",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "649998235dc101dd40249c2464702f51f9335f7e9784367e29e0347005c4367b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "name": "calculate_market_sizing.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L1-L390",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "aa6daa9b80707099572cdf513d519fa15836c0bd6c72ba7123d83282b4949c0f",
      "chars": 13738,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "name": "_bottom_up",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L146-L224",
      "signature": "def _bottom_up( payload: dict[str, Any], denominator_id: str ) -> tuple[float, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9dde256327cef1b8aeaa8d334a703e285eef9eb7c932dc71d0195b10ecfafcd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#_identifier_array",
      "name": "_identifier_array",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L32-L41",
      "signature": "def _identifier_array( value: Any, context: str, *, minimum: int = 0 ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "df7258b5edccd48138ffe5acec1b63f7213fc57b83167e9708dc448b9f91afca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#_metadata",
      "name": "_metadata",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L44-L85",
      "signature": "def _metadata(payload: dict[str, Any]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "756b8afbf693872e4dab5f83d009fbd5844cc5cabbf78eae2075c70af254f9a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#_scenarios",
      "name": "_scenarios",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L227-L282",
      "signature": "def _scenarios(payload: dict[str, Any]) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "984bd24ceb80c5aaae4befe68117fe92b33db7ddb41c63df8a9a67c18500c2fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#_top_down",
      "name": "_top_down",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L88-L143",
      "signature": "def _top_down(payload: dict[str, Any], denominator_id: str) -> tuple[float, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6cde4593ed6ad5ce22f8ab6bd4113bcddbcf34fb9f11c1954759b7b9ffe46bed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L363-L375",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c27e6d2e0cb0357506a5b4132cf9ab3c3d2e7af36cdbcd52a66a4228312c8fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "name": "calculate",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L285-L360",
      "signature": "def calculate(payload: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b0983ece261dcd0393c91edfc249fe30f7a2e8c9b2b670ad6ccc6825165e5ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/calculate_market_sizing.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "span": "L378-L385",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d01b097c88a9cab9eb66957fb66566a9e6adf741d3c076577db9d1f90d1a628e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "name": "check_unit_consistency.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "span": "L1-L218",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2025ca4fa71a6544dec8edb10a581c80bf6dbd6162a4016ac64dc81b595b24f3",
      "chars": 6943,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/check_unit_consistency.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "span": "L190-L203",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e754e0dd23dec6b12a9c5fc569f697582965050be06cceb262f2c2b45a0a0f4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "name": "check",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "span": "L64-L187",
      "signature": "def check(rows: list[dict[str, str]]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fccaa87ef8670be9c38435e99dd7eef49d63a0efce98b9c685f6881bbec9bb1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/check_unit_consistency.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "span": "L206-L213",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dd026357510c46f2fad02da522a7c3418cd72ee95dfb5c24e2640753be60df4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "name": "forecast_sensitivity.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L1-L327",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a8580d913613fb4432329d8cf49b92072e168420db3b23a35ce64ee0274b00f6",
      "chars": 11102,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#_cagr",
      "name": "_cagr",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L136-L139",
      "signature": "def _cagr(start: float, end: float, periods: int) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6458ebe81b0f4f64e81020ff2709bad1e6db3056a6e4c6b00a9678680b690215",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#_identifiers",
      "name": "_identifiers",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L30-L37",
      "signature": "def _identifiers(value: Any, context: str, *, minimum: int = 0) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "07e6c8888226fd295a35f15fd68f7037b42f4fca43f645f98f5c1ca63045a9cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#_integer",
      "name": "_integer",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L40-L45",
      "signature": "def _integer(value: Any, context: str, minimum: int, maximum: int) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "018d5ac6289a9dbd389015ca203c5156398bf82f9ffae93e73b61a9f8fc0d8d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#_metadata",
      "name": "_metadata",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L48-L103",
      "signature": "def _metadata(payload: dict[str, Any]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5ed1254e4ec3d6d0e30a5a64428168848b3da5976e5f60c477e78c783671bf8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#_project",
      "name": "_project",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L119-L133",
      "signature": "def _project( start_year: int, start_value: float, rates: list[float] ) -> list[dict[str, float | int]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "be65b7fe29088c1ae0f8c7d479be485cac075af85879f64df4b8ad96b1185864",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#_rate_path",
      "name": "_rate_path",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L106-L116",
      "signature": "def _rate_path(value: Any, context: str, horizon: int) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "99a92586ad857d12b9a034623e6087fd2d1f88b2bbbc77db4b2481623562f06e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L300-L312",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "000a85935e563d0c088fbbab6311cac8f734f9b343ffdc463d9a7e62fd5fdb38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "name": "forecast",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L142-L297",
      "signature": "def forecast(payload: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b49b7aef5966444a4a746b77dd7e7bef324e9c1b2a30ba43c279a279a870cabe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/forecast_sensitivity.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "span": "L315-L322",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6b064baeb448303099bd14ff902481418c92bac9f6767791cb93780b4e17b58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "name": "generate_report_scaffold.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L1-L445",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dc710fd2cd9848795ffa84607b1d1b988b463bfa558509292b1501509636528a",
      "chars": 14779,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#_one_line",
      "name": "_one_line",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L230-L231",
      "signature": "def _one_line(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "91f798908a2b32dbb397a94d717891c47b3f03a6096f2a2cb64e70eaaac62be5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#_period",
      "name": "_period",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L120-L129",
      "signature": "def _period(value: Any, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "ace4c2532f109007defca2d4c4b5aaad615675280b1407a29a751f8e8ffd7da1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#_safe_new_directory",
      "name": "_safe_new_directory",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L210-L222",
      "signature": "def _safe_new_directory(raw_path: str | Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "35b0a1b2db223b602b76899a521f6e369431dfd598fff08322abe4f9b0353957",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#_string_list",
      "name": "_string_list",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L112-L117",
      "signature": "def _string_list(value: Any, context: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6bf02b39de4f67a22aacfd58d3e308d734cccf11975beb9a6c918e2eacb4ef65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#_write_csv_header",
      "name": "_write_csv_header",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L225-L227",
      "signature": "def _write_csv_header(path: Path, fields: tuple[str, ...]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ea83b2c3b734063755159fc7bc3cc3e16e4285b26879d838eaae55525a8ac46f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L421-L430",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "18299ff64ebef75f54e1dcb8bd2846a93f181f1aece71e1f245f62c462df53b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#generate",
      "name": "generate",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L234-L418",
      "signature": "def generate(manifest: dict[str, Any], output_dir: str | Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "acfc7e028090878cc2083f07cfd4e9d4dd8b27545842360fa62ced5df27695f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L433-L440",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5b1212b939708733d663e35984ba0e99b421c524f5ed7ba8a3364484c4abd02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "name": "validate_manifest",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "span": "L132-L207",
      "signature": "def validate_manifest(payload: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2111e51c6c8051a26e5438291631a58bc14ad135634276676238134a56e8720",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "name": "validate_competitor_matrix.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "span": "L1-L224",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ff5359654e66a6a291aa62deb54322ccc8082311c8a3a15fec2e9c6b6bbb440a",
      "chars": 7807,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_competitor_matrix.py#_source_ids",
      "name": "_source_ids",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "span": "L40-L67",
      "signature": "def _source_ids(path: str | Path) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "33f21f040623237b8c83755c4d48d6b9ba656303da5b4d8c35ba0407655a5ff4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_competitor_matrix.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "span": "L191-L207",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d3121d587745c000a1feca7d0320bac0d3791ee8fcc2611a9f5eca81c78ae03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_competitor_matrix.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "span": "L210-L219",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f21c49b66aabfad867fe325bc10ab64470f7ba767483ea1893e19dd1595cc94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_competitor_matrix.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "span": "L70-L188",
      "signature": "def validate( rows: list[dict[str, str]], known_source_ids: set[str] | None = None ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cfa1c310331f26cce0f0bcf4c9f671ff08fc9965a848925ac49cbbff2b1e67a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "name": "validate_evidence_ledger.py",
      "kind": "file",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L1-L292",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c1176271a8a9d3b41363f187dbec55a60c481e39bba8356e4ecde30ec32cc3d5",
      "chars": 9202,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_archive_path",
      "name": "_archive_path",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L117-L126",
      "signature": "def _archive_path(value: Any, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "c9023e1626a667009a1ba294c120463b11c4b4453ad0473c62ddc0dfe40d8b25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_load_records",
      "name": "_load_records",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L129-L142",
      "signature": "def _load_records(path: str | Path) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a6a2bd254bf255817947c8ef4d2c227d396a9c0ae1b4daf1632674fdac166745",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_publication_date",
      "name": "_publication_date",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L97-L104",
      "signature": "def _publication_date(value: Any, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "95ba64c869d7f5bbcbf01770dae2551fdd6e52db1296ce70036ec90c64669332",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_url",
      "name": "_url",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L107-L114",
      "signature": "def _url(value: Any, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b155004306d02642a2e9be9eaed76aff86071e4df959b9e9281ecae362085073",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L265-L277",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e59b678bbd1bf87a7cf13bd48fef4743e59f5a7540e27bce2829394927e09786",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L280-L287",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c0bffc0e54fe7e5cbc124314811792857221fe03f607aee76a2b37c26d29c3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "name": "validate_records",
      "kind": "function",
      "path": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "span": "L145-L262",
      "signature": "def validate_records(records: list[dict[str, Any]]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd80329975843e0b17f496d577b505267721073cb5f7e3409128e226c5299fbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py",
      "name": "batch_convert.py",
      "kind": "file",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L1-L355",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4250166fc476be8793149e1ef778b619719ea87557b5287e48db5e6b53d3fd62",
      "chars": 10522,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#atomic_write_text",
      "name": "atomic_write_text",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L100-L118",
      "signature": "def atomic_write_text(path: Path, content: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51df606e75ea3f3d86303597d2e7fc2fbf19c298c89da85e724939d0ec69416c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L209-L270",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e972ae6e045dce7db6c39c68f0b711489de029c5b1019d68169106144d7565de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#ConversionRecord",
      "name": "ConversionRecord",
      "kind": "class",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L48-L56",
      "signature": "class ConversionRecord",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebeedd7bbb0a6d498568a76bcf8acb7415b5f9848fa5c0c81bdfa69156fb7622",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#convert_one",
      "name": "convert_one",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L121-L185",
      "signature": "def convert_one( converter: MarkItDown, source: Path, input_dir: Path, output_dir: Path, *, overwrite: bool, allow_empty: bool, max_bytes: int, ) -> ConversionRecord",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2b0ee8b868a33a845eed59d6d8a45d3ba757e139bbd1e5a0a135a28afd9d265",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#discover_files",
      "name": "discover_files",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L76-L91",
      "signature": "def discover_files( input_dir: Path, extensions: tuple[str, ...], recursive: bool, ) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4922ef8b7d953ed4d9527c29617f098a596886e0c0dd11c7fd74da9001b9b54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L273-L350",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "acf784abe0660ad47c611ba938a19bcc39bdd6d56e8cab432198cb26a8f5e231",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#normalize_extensions",
      "name": "normalize_extensions",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L59-L73",
      "signature": "def normalize_extensions(values: Iterable[str]) -> tuple[str, ...]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f5179c8cfca55b4669d27a89049704788038a3ccbed899afb23c5dcf7a9782a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#output_path_for",
      "name": "output_path_for",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L94-L97",
      "signature": "def output_path_for(source: Path, input_dir: Path, output_dir: Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3912e83075f4583dae365066a924136f1869f45808203e0b424099bc451dd1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/batch_convert.py#write_manifest",
      "name": "write_manifest",
      "kind": "function",
      "path": "skills/markitdown/scripts/batch_convert.py",
      "span": "L188-L206",
      "signature": "def write_manifest( manifest_path: Path, *, input_dir: Path, output_dir: Path, records: list[ConversionRecord], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bfa82954f74f0bdbe10ddd8b323aa554377ae92ead55dee59c9bcf2d43d747e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py",
      "name": "convert_literature.py",
      "kind": "file",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L1-L406",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6c28a9b005a252bcfbab4e1a637129f7be30f9f154bb7bb5adb67cf5361b0aed",
      "chars": 12067,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#atomic_write_text",
      "name": "atomic_write_text",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L71-L89",
      "signature": "def atomic_write_text(path: Path, content: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f875585f17165cdc81df79e5104f104deb65138a0bd91e4f45bcd84c7e92629",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L295-L336",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c12a071fbed610c61c3ecb95bc14f7e1537ce8a75b114775eb9c68612f69cb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "name": "convert_paper",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L135-L236",
      "signature": "def convert_paper( converter: MarkItDown, source: Path, input_dir: Path, output_dir: Path, *, organize_by_year: bool, overwrite: bool, allow_empty: bool, max_bytes: int, markitdown_version: str, ) -> LiteratureRecord",
      "exported": true,
      "origin": "ast",
      "body_hash": "e28bf63f65f30f1a846200b2352d085299fcd85695c7bade09a771da2e3aa64a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#create_index",
      "name": "create_index",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L244-L292",
      "signature": "def create_index(records: list[LiteratureRecord], output_dir: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35e349af817b2f2663838d584d810fcd220341393a49f1c3eae127df010ae800",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#digest_file",
      "name": "digest_file",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L57-L63",
      "signature": "def digest_file(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ed6c0aabaffbdb46bcc23bec53c6406e7e40e9f1ad6fe60575edbd35c355881",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#escape_markdown",
      "name": "escape_markdown",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L239-L241",
      "signature": "def escape_markdown(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "465ba34916ea7626ea0a7f9a2a6d8cb66664cba28b62a8a7371e91e77702e617",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#humanize_filename_component",
      "name": "humanize_filename_component",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L40-L42",
      "signature": "def humanize_filename_component(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fdeeb2a4c5c88478f9f6998554290b399cca42e753f285973180b37c8513ec7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#infer_metadata",
      "name": "infer_metadata",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L45-L54",
      "signature": "def infer_metadata(path: Path) -> tuple[str | None, str | None, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "41b6653e8b63aa13554079f29f158ac905f98ee0b9437ceedb121fa755c561d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#LiteratureRecord",
      "name": "LiteratureRecord",
      "kind": "class",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L26-L37",
      "signature": "class LiteratureRecord",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc5c7d84c11426b65f1ceaa40d89a74c1837ca8fbf193342cbb7ad11f2479314",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L339-L401",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "afba1fdb06465f7845c03f797227686cbbd1519f072ee3fe1171b2c47101cd5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#output_path_for",
      "name": "output_path_for",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L92-L103",
      "signature": "def output_path_for( source: Path, input_dir: Path, output_dir: Path, year: str | None, organize_by_year: bool, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "db8f17677130f65e3508365c70cf423bb1b1e3d2d76ddd780ebd3474e377c45e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#render_document",
      "name": "render_document",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L106-L132",
      "signature": "def render_document( markdown: str, *, title: str, author: str | None, year: str | None, source: str, source_sha256: str, converted_at: str, markitdown_version: str, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "286c01c0618f80a296bb9d515df5f74969b4645be8a71ff6ea54f10ee93e730c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/convert_literature.py#yaml_scalar",
      "name": "yaml_scalar",
      "kind": "function",
      "path": "skills/markitdown/scripts/convert_literature.py",
      "span": "L66-L68",
      "signature": "def yaml_scalar(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d641085fb7f4d0af4d1082538ad47261c7270a2b3dff09ec254bab8959ad9960",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/inspect_installation.py",
      "name": "inspect_installation.py",
      "kind": "file",
      "path": "skills/markitdown/scripts/inspect_installation.py",
      "span": "L1-L163",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7821524bcf1b148f5932268ba54394831172cdecc730bbdefa6f6d07eafa4d08",
      "chars": 4889,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/inspect_installation.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/markitdown/scripts/inspect_installation.py",
      "span": "L123-L140",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "00f924d9cebaf1b03df3a55e3fc1b81eb8fecdec8b4dece4e090c70354db669f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/inspect_installation.py#distribution_version",
      "name": "distribution_version",
      "kind": "function",
      "path": "skills/markitdown/scripts/inspect_installation.py",
      "span": "L29-L34",
      "signature": "def distribution_version(name: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfc64494bb71c912ddaed3ba4854ecb283b8833c5621b938dce6315a8efde6d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/inspect_installation.py#inspect_installation",
      "name": "inspect_installation",
      "kind": "function",
      "path": "skills/markitdown/scripts/inspect_installation.py",
      "span": "L37-L87",
      "signature": "def inspect_installation() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa92db1acb36469142751adca83d90f160402d5003c39a7da8eb075121e1a9ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/inspect_installation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/markitdown/scripts/inspect_installation.py",
      "span": "L143-L158",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0f4c699b3e5badc568ea2d588e799845f107602fd2551444e58a455e237d9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/markitdown/scripts/inspect_installation.py#print_human_readable",
      "name": "print_human_readable",
      "kind": "function",
      "path": "skills/markitdown/scripts/inspect_installation.py",
      "span": "L90-L120",
      "signature": "def print_human_readable(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "86a66d94b1d90b720dce622f8fa236d8e4467852f736fcecc28fc0fe78462dc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py",
      "name": "library_search.py",
      "kind": "file",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L1-L594",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "08854ce185316772d49907f2c62ce4a0e02067c77979fc1f99e5543104b15b20",
      "chars": 19503,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L96-L213",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "551f4a448b22606dc1845dfb53db5d64c8d8871e53b75817aee1cb4de0a2c7a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#choose_score_fields",
      "name": "choose_score_fields",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L374-L383",
      "signature": "def choose_score_fields(score_names: tuple[str, ...]) -> tuple[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7657f66a7fc43bda8c6d0b283b237e006c0a2663cf3448a19448430b9038286e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#create_metric",
      "name": "create_metric",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L331-L371",
      "signature": "def create_metric(args: argparse.Namespace) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "99c96c5a58fb97bf26de36d60ca0fc890eb761e1462b9b2a9889c24e87c84715",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#create_processor",
      "name": "create_processor",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L269-L313",
      "signature": "def create_processor(args: argparse.Namespace) -> SpectrumProcessor",
      "exported": true,
      "origin": "ast",
      "body_hash": "58218ff32261d3deb0c3edba501828017c3f19f3c9c81c7a78c5ae96e97ef0e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#installed_matchms_version",
      "name": "installed_matchms_version",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L262-L266",
      "signature": "def installed_matchms_version() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4dbab3b19bbf41bb6d4d7fb83180472f292ad27dd8743cc1a03106aa69a6530",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#load_and_process",
      "name": "load_and_process",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L316-L328",
      "signature": "def load_and_process( path: Path, processor: SpectrumProcessor, *, show_progress: bool, ) -> tuple[list[Any], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcb69ca8809c02d3b3a3e2b2e30523db0008d4bf560df56d4b1f44d3f8ef573d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L582-L589",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6972c10eb404f19af729bd18fd9999640fbc9df08c2f7f923b022b4d63c2e830",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#matched_peaks",
      "name": "matched_peaks",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L394-L401",
      "signature": "def matched_peaks(value: Any, name: str | None) -> int | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cd380d13088131c937b08d04493a9933a7ee3a334fc07f98cb83a6d3822ae41",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#metadata_value",
      "name": "metadata_value",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L428-L430",
      "signature": "def metadata_value(spectrum: Any, key: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "11c3e626c097f1db0730d3d92fc86a92c9ac333e0ebeadc2fbf76952962ec505",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#numeric_field",
      "name": "numeric_field",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L386-L391",
      "signature": "def numeric_field(value: Any, name: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "27f12f726eae70fb0f4af40f207315255ac67ef6ad3e5e4ffecef641ce25c244",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L520-L579",
      "signature": "def run(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7832ffe2a0c1f8e4328f7a95caafbb4019ce81b50b6d6036953b9ebcaa562e18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#spectrum_id",
      "name": "spectrum_id",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L404-L425",
      "signature": "def spectrum_id( spectrum: Any, *, preferred: str | None, index: int, prefix: str, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ce704521ce39a7aa68d74435f25d11981c6a14b0dc26cdf257ee4b0822ed963",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#validate_args",
      "name": "validate_args",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L216-L259",
      "signature": "def validate_args(args: argparse.Namespace) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c10b1e3b80e22ed143d0e8d66797bce88c9aa2e083028a404eca73e6fc49797",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matchms/scripts/library_search.py#write_hits",
      "name": "write_hits",
      "kind": "function",
      "path": "skills/matchms/scripts/library_search.py",
      "span": "L433-L517",
      "signature": "def write_hits( output: Path, *, scores: Any, queries: list[Any], references: list[Any], args: argparse.Namespace, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "dad05913dabb4ae8c6a10b50d9c941fd1fa8934d7a16d7c8b407c5b2655713b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L1-L264",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "83b7c1123a582bd6d07dd828c88fa2b7f34c3cb69d0d641e9d4b3a6188fb9277",
      "chars": 8703,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#_raw_path",
      "name": "_raw_path",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L29-L34",
      "signature": "def _raw_path(value: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d0409fc0a2555bf35e0f30aad135620990a69687c7164463907ebe3d246d8e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#_reject_duplicate_keys",
      "name": "_reject_duplicate_keys",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L146-L152",
      "signature": "def _reject_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5e91bc7e6a4d686c31ea64cfe7bce9ce29a11d0e0dc8bf4a6549d579ae401fdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#_reject_symlink_chain",
      "name": "_reject_symlink_chain",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L37-L44",
      "signature": "def _reject_symlink_chain(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3232f0a534e458580916b85b0920f3f7d7d2c8d7fc12d8458777ed6f7dba9ab3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#_validate_json_shape",
      "name": "_validate_json_shape",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L155-L170",
      "signature": "def _validate_json_shape(value: Any, *, depth: int = 0) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "9f399fa8af245981371d1ed83883edfcd550eaa3b9436821658f6ebbeed36080",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L190-L203",
      "signature": "def bounded_int( value: str | int, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d021b4f7a754f1df789f41dc3769c06dcc7a02b83931574fc5207e1769bd918a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#checked_input",
      "name": "checked_input",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L59-L96",
      "signature": "def checked_input( value: str | Path, *, root: Path, kind: str = \"file\", suffixes: Iterable[str] | None = None, max_bytes: int = MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "b46a362ac4732b3a5cc8f7c72d21e7e25d41460404adccd46a9db01ccab5c5db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#checked_output",
      "name": "checked_output",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L99-L123",
      "signature": "def checked_output( value: str | Path, *, root: Path, suffixes: Iterable[str] | None = None, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd498cc6b55058efa11da1f15527c3d507044fde355e2ae592177a410c1e1885",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L47-L56",
      "signature": "def checked_root(value: str | Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3514d1077d04048de0070224e88b4872cd27c7a4a89946cd3a01f03db5e52658",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L25-L26",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "164ed8a2c9bcdb5f54ddd0d4f6793cfaaf55ce89e063bad608c93604061e4a37",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L248-L250",
      "signature": "def emit_json(value: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1699285c1b65278c743da8432d5deb0ee333806759e514cf4f19cfdbc475c0eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#fail_json",
      "name": "fail_json",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L253-L263",
      "signature": "def fail_json(tool: str, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef583185d072b5aa3744ea375708d1754896eb4b446e58944a873fd40df889b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L186-L187",
      "signature": "def load_json(path: Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "38ac14ccfb80e35631eb4ee061009f858a3f41ca04efb0ff192fb5a44585d3d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#parse_json_text",
      "name": "parse_json_text",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L173-L183",
      "signature": "def parse_json_text(text: str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "509b29ada0c1ff4c68ebe6f8ec58b7da1bf1446c28580fbbf478c01193834a92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#read_bytes",
      "name": "read_bytes",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L126-L135",
      "signature": "def read_bytes(path: Path, *, max_bytes: int = MAX_INPUT_BYTES) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "768552d16676a5a44652a07aaddddeab2cb318fdaf0fb66cb009572d910359b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#read_text",
      "name": "read_text",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L138-L143",
      "signature": "def read_text(path: Path, *, max_bytes: int = MAX_TEXT_BYTES) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "53c4e685cc0f715a9b183d04424db0cdd9fbb80b69231c3a231058c1e6a7aaa4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#relative_id",
      "name": "relative_id",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L234-L235",
      "signature": "def relative_id(path: Path, root: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "398ace4a03c1fc1e916b26d91628c7e26298a43b18a25c09089b4da2f81fb7e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L220-L231",
      "signature": "def sha256_file(path: Path, *, max_bytes: int = MAX_INPUT_BYTES) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4dc99ed6e1043ca0f20460b6aac8993fd04a1bfdf236065da01d953f4f401ad4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#validate_identifier",
      "name": "validate_identifier",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L206-L211",
      "signature": "def validate_identifier(value: str, *, name: str = \"identifier\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3de2cc77df3a23c32263abfdd7dbba3fbd1dd3ffccb9ced3113c32c40e931151",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#validate_release",
      "name": "validate_release",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L214-L217",
      "signature": "def validate_release(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c0f3125b69125d12e0caecc757c1bf42d025ad2696235ec2df1a9d9056bd14e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/_common.py#write_new_text",
      "name": "write_new_text",
      "kind": "function",
      "path": "skills/matlab/scripts/_common.py",
      "span": "L238-L245",
      "signature": "def write_new_text(path: Path, text: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e086c1d98a9e2b341c9cb2503d81e2ddb2174c45d1478accfc6ef08038cf70c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py",
      "name": "generate_function_scaffold.py",
      "kind": "file",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L1-L166",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cbbe38eff9e4e6ce2695db478d6de45df3736b04c6ba74618434cf853539947f",
      "chars": 4955,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#_directory",
      "name": "_directory",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L27-L41",
      "signature": "def _directory(root: Path, name: str, *, write: bool) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "2510ac3f96ec4f9b3edba4b444393565abcfa1936a7e8c4baad6236351d0aae5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#_title_name",
      "name": "_title_name",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L44-L45",
      "signature": "def _title_name(name: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "cbcdaad29f0ef545588f6cdf9434e01de18e8f59e1a783c3f8f21187101709f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#function_source",
      "name": "function_source",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L48-L61",
      "signature": "def function_source(name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a69f11572e5392fcb8ef502fc345993e15c562dba7ed1704067e434b99348a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "name": "generate",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L82-L136",
      "signature": "def generate(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "834d1a6a172cf04d4b8d12bc89d5e95b334b2c3499ab10673cbbf175bff9c3bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L156-L161",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b79f3e023f27b54bfd971a481b97d54df8f41b0d9a30f62812e8ba032925efd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L139-L153",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5677046190a6ecc25cbfcab5517c3bc2b63aa237d406ada56816e18f9dc173ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/generate_function_scaffold.py#test_source",
      "name": "test_source",
      "kind": "function",
      "path": "skills/matlab/scripts/generate_function_scaffold.py",
      "span": "L64-L79",
      "signature": "def test_source(name: str, class_name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "53aa1a5963c27e61c60f908ecb3792d9c6efa6ff39c24d716cfee2ad40813063",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py",
      "name": "inventory_mat_file.py",
      "kind": "file",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L1-L352",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9dd9111d7727b847f2c25ef3bcee97bc16c3c75862e0acccc41ca6ea9e02bbe6",
      "chars": 12357,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#_redacted_name",
      "name": "_redacted_name",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L70-L75",
      "signature": "def _redacted_name(name: str, index: int, kind: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5350f90017ff6b1ecf9db9bbef275a781bb1ecdbcd7464a5869ed2841027da73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory",
      "name": "hdf5_inventory",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L114-L230",
      "signature": "def hdf5_inventory( path: Path, *, max_nodes: int, max_depth: int ) -> tuple[list[dict[str, Any]], list[str], dict[str, int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbad543e9878a4bf647b9c2d3ca502128c78db6cc031aee0d945950e71eed94f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.append_record",
      "name": "append_record",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L130-L139",
      "signature": "def append_record(path_name: str, kind: str, details: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24c60cabc560399e973c67b93fa69809022f26c56ffc0b3de40b217807e21b57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.walk",
      "name": "walk",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L141-L221",
      "signature": "def walk(group: Any, prefix: str, depth: int) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b43bc45ae9026d81a785227c6c038735d818a5675548db20ae2e4605e501613",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#identify_header",
      "name": "identify_header",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L38-L67",
      "signature": "def identify_header(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c406c273df375f84f4c6f706a68d2a3b6de0a769a8c3fe4f968cf376aa0dc31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "name": "inventory",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L233-L317",
      "signature": "def inventory(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6069ae6a6a4415abafc94a72a169724f30527e647fd2d80f39d9e48eb197c689",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L341-L347",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3a2f1bcc325001579c548d684f6790b47854c7f874994c18e6c07ca8a900f1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L320-L338",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "39f6a01d897303b82db080b5bf593ac4a088b1867c96faa6dee53a14e96a8eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/inventory_mat_file.py#scipy_inventory",
      "name": "scipy_inventory",
      "kind": "function",
      "path": "skills/matlab/scripts/inventory_mat_file.py",
      "span": "L78-L111",
      "signature": "def scipy_inventory( path: Path, *, max_nodes: int ) -> tuple[list[dict[str, Any]], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "05d54658d001115ac8e04b33ea2596fb54bfd1766e8e87a0e95753648a28d13e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py",
      "name": "plan_batch_command.py",
      "kind": "file",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L1-L258",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8134c0ab6a225ac4245a8a0feebce9aa338311d0a159f381ca46c0eb8d71d989",
      "chars": 8967,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#_executable",
      "name": "_executable",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L93-L101",
      "signature": "def _executable(value: str, engine: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "8b0e3ac012ae3eca2645cd7e180c65209c69eb2381accb124fee2d97a3a68090",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#_numeric_row",
      "name": "_numeric_row",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L36-L42",
      "signature": "def _numeric_row(values: list[Any]) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "50d93e980649f120b281a538ae6361af0896e4195b90801740b70c58c4d1ba12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L104-L205",
      "signature": "def build_plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "83b31dbec0bd86dc94f142ea20eba0d7fb4eb7047718a88a0e253cd38db11a37",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L245-L253",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa4c98ea3d28829d957c8f8de5b4707158477dc488cd284c625f35ef9b068fd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "name": "matlab_literal",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L45-L90",
      "signature": "def matlab_literal(value: Any, *, depth: int = 0) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d54bf879d009331855d437ccea10502edc59d0b01a222c3f161527cbb2d0d998",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#matlab_string",
      "name": "matlab_string",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L28-L33",
      "signature": "def matlab_string(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8446837bc4713bdde90895d54cd809c45abadd0a487f4434676a12ae9ab0a534",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_batch_command.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_batch_command.py",
      "span": "L208-L242",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "64da748104b9b143a6e233b76a23749aa1c0c3aef1f80305fdab010a98df91f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_python_compatibility.py",
      "name": "plan_python_compatibility.py",
      "kind": "file",
      "path": "skills/matlab/scripts/plan_python_compatibility.py",
      "span": "L1-L177",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8da20d413fceae86f8f90db1b0925858aead825ce3aafc35bb2baeb7cece1da6",
      "chars": 6566,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_python_compatibility.py#compatibility_data",
      "name": "compatibility_data",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_python_compatibility.py",
      "span": "L27-L37",
      "signature": "def compatibility_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c9982ea085f7abbad3b0d1774cb2332a599a137fb03af72f801f1cebfd99a16",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_python_compatibility.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_python_compatibility.py",
      "span": "L166-L172",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e0fbaeccae91508502e996f5a9b9c5b91370f37fa34b840189c442c10e745c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_python_compatibility.py#normalize_python",
      "name": "normalize_python",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_python_compatibility.py",
      "span": "L40-L45",
      "signature": "def normalize_python(value: str) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6546fa1246c1bfe5c04c82ed4a7ecb88bad8d48e1594cda72160d949542f67bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_python_compatibility.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_python_compatibility.py",
      "span": "L136-L163",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3ce97cc7a2bf917f067977ad7986e1e9a9fa5b45d3c781b73a963d610b8df54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/plan_python_compatibility.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/matlab/scripts/plan_python_compatibility.py",
      "span": "L48-L133",
      "signature": "def plan(args: argparse.Namespace) -> tuple[dict[str, Any], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "180ba568671b16e43adcf315f4c57cfcf2b5a69f259c2f535d549f1c642ebda0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py",
      "name": "reproducibility_report.py",
      "kind": "file",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L1-L234",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2784ffe6acee2a90f554cba73bb1578b2e8408935a34749353e5bd2ceac3bde8",
      "chars": 7966,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py#_finite_nonnegative",
      "name": "_finite_nonnegative",
      "kind": "function",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L47-L52",
      "signature": "def _finite_nonnegative(value: float | None, name: str) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "45cffb824380d921c077bebdb92238b149be671687f604ba0652563954e2ca92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py#_named_fact",
      "name": "_named_fact",
      "kind": "function",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L63-L70",
      "signature": "def _named_fact(value: str | None, name: str, *, maximum: int = 500) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "48fef9ad6d0e1ce6df02bc32852e444997cec3963d60d975c5cfe47aad30483b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py#_runtime_version",
      "name": "_runtime_version",
      "kind": "function",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L55-L60",
      "signature": "def _runtime_version(runtime: str, version: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "7c418e1091fc68b5a5260b91a7b52bf20ddc79f1bacf2a53b38f6be5988e156f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py#build",
      "name": "build",
      "kind": "function",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L73-L179",
      "signature": "def build(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a10852305560ee45a5f4f768e4bab705850d53ea7398d93ad6fa84bce2cb0e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L210-L229",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5baf3e7b7eefcaeaa18baab283f0e96a6581744b0d29b09e56c163373a239191",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/reproducibility_report.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/reproducibility_report.py",
      "span": "L182-L207",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "728b1baae1b8ebeb57209af6fb0b6937cb2df62c5afcaa97c223b4767e431366",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py",
      "name": "scan_m_code.py",
      "kind": "file",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L1-L434",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "88b02dbf934db710d22a787b1fb45a0c0009dc6874dd379f5100fa0672f7b92b",
      "chars": 13951,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#_opaque_finding",
      "name": "_opaque_finding",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L240-L259",
      "signature": "def _opaque_finding(path: Path, root: Path) -> dict[str, Any] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d330b878fdd9d6a63cdb96bd3b81428a6942840368d5c8c3e461ef34342725ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#_without_comments",
      "name": "_without_comments",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L177-L203",
      "signature": "def _without_comments(line: str, *, in_block: bool) -> tuple[str, bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "552cd4e249b605cf315ee53d2f2653f61c68cf233ff8d70d402fbe9c3e159b07",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#collect",
      "name": "collect",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L262-L322",
      "signature": "def collect( source: Path, *, root: Path, recursive: bool, max_files: int, max_file_bytes: int, max_total_bytes: int, ) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9e10757780e0d31d06814ef42d6ac151b614822b2f894fe42ef28ce32b8260f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L423-L429",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "336ffb20f59335a2c55b49745b91ce6ceb456b5f66a16d11eebd7aa0ecae85af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L400-L420",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "783dfd13edc4ca92bf7131707f486997ef531b6e2e2ea7305b388352755f2f91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#scan",
      "name": "scan",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L325-L397",
      "signature": "def scan(args: argparse.Namespace) -> tuple[dict[str, Any], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d6486f991010b42aa7d3c03c09cd419125561ce81cb3b6aa08650117af2a606",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/scan_m_code.py#scan_source",
      "name": "scan_source",
      "kind": "function",
      "path": "skills/matlab/scripts/scan_m_code.py",
      "span": "L206-L237",
      "signature": "def scan_source( path: Path, root: Path, *, max_file_bytes: int ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8e553bfcdb44184d4ee79c6424af5bd28d72ebd301d2e5e3bb57d6bbaf2be03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py",
      "name": "validate_project_manifest.py",
      "kind": "file",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L1-L349",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "21cdead6d2c246e345f7fc702a202600787557f0f8da37ebd072998d6cd122f3",
      "chars": 12255,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#_list",
      "name": "_list",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L71-L76",
      "signature": "def _list(value: Any, name: str, *, maximum: int = 500) -> list[Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b30006ac1d782f4d37f922b9ffc4b5bfde30e462733f72034306e4698fbbb691",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#_string",
      "name": "_string",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L63-L68",
      "signature": "def _string(value: Any, name: str, *, maximum: int = 500) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b6b44ec005645b52b9e559b7f5cd552bf39fc10f1eef0c8ed8bf97853d51ae46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#_validate_path",
      "name": "_validate_path",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L107-L130",
      "signature": "def _validate_path( raw: Any, *, root: Path, name: str, allow_missing: bool, kind: str = \"any\", suffixes: set[str] | None = None, ) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f1c59f7d863c5e72212d3ba49d4c5b052cd1ad132c54ad06fddfb0a9d183c9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#_validate_product",
      "name": "_validate_product",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L79-L104",
      "signature": "def _validate_product( value: Any, *, field: str, index: int, warnings: list[str] ) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "8d3d932b7ecffbb313c544f147570d4cf535868eebbe6ce4827a4d3e7f56c1d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L338-L344",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e23298b2e8ba63c70e3e26c173a11519442bc3334405cd1b460315c393dbf7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#parser",
      "name": "parser",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L321-L335",
      "signature": "def parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ca13f4b3553378715b3757c587176465cbc452220ce6db3c4ea4d102d6a4c1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/matlab/scripts/validate_project_manifest.py",
      "span": "L133-L318",
      "signature": "def validate(args: argparse.Namespace) -> tuple[dict[str, Any], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e6792f778709dbc79bd1bcc788a3dc35880c4e5ebdf3116d2a4920da28bad48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py",
      "name": "plot_template.py",
      "kind": "file",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L1-L407",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "24b362b1c2a96d4eda19ed8f4a913f356029e836069aab564e0cfb4ac2b84a1b",
      "chars": 12255,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_3d_plot",
      "name": "create_3d_plot",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L291-L318",
      "signature": "def create_3d_plot()",
      "exported": true,
      "origin": "ast",
      "body_hash": "21e9e2d0a9c0b558e92b6fd06c37fbd94970f2c6f41f415e7ed1dc13f057929f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_bar_chart",
      "name": "create_bar_chart",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L118-L148",
      "signature": "def create_bar_chart(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f35fffb4cc99a0db1241055ed157838eeda49be7efef8fc28c6966d125093fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_box_plot",
      "name": "create_box_plot",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L237-L259",
      "signature": "def create_box_plot(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "073f95944fc338569b14857fdeb1534fb47a7039a737b7574e8cf8b1b7e8e789",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "name": "create_comprehensive_figure",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L321-L352",
      "signature": "def create_comprehensive_figure()",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e9c457f5b83725f0d0fac910d3c3bc09514ffa2e1796a19771819150ef25846",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_contour_plot",
      "name": "create_contour_plot",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L206-L234",
      "signature": "def create_contour_plot(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "00430487b3f8a33d9e29143a3387f1fcfd36be4fbf37e5e5b7969dd6b5cdd144",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_heatmap",
      "name": "create_heatmap",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L178-L203",
      "signature": "def create_heatmap(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f63b1bb00bb4d72c6de40a5748f35c9b3e89f34a836793edfff6a1da8d0f61d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_histogram",
      "name": "create_histogram",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L151-L175",
      "signature": "def create_histogram(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2122446b9a7e6f47a15f653e02fc06d7c98abeaaaee74d5b3045dcc774e9d22",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_line_plot",
      "name": "create_line_plot",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L65-L87",
      "signature": "def create_line_plot(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b394ce2f8e83644bb76863b6dbe65c5f3a3ccd6c884bc51e217bad952f64ba6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_scatter_plot",
      "name": "create_scatter_plot",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L90-L115",
      "signature": "def create_scatter_plot(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aca0469520f615c868ee239765893896649108e9473920768631a5d092c1b7cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#create_violin_plot",
      "name": "create_violin_plot",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L262-L288",
      "signature": "def create_violin_plot(data, ax=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "257b7fd072a6a05e932f38823bec66ba5fb846dd418e452106b6e6857c883ef9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#generate_sample_data",
      "name": "generate_sample_data",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L40-L62",
      "signature": "def generate_sample_data()",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f82d43af74171f23898f2d165ca54eee4551be8c71d231c8bfaaa61d80c0d9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L355-L402",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f21aa605cb4bea5726abc2d6016bc8757cf62a111e4ab26819085ee4fc3266d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/plot_template.py#set_publication_style",
      "name": "set_publication_style",
      "kind": "function",
      "path": "skills/matplotlib/scripts/plot_template.py",
      "span": "L22-L37",
      "signature": "def set_publication_style()",
      "exported": true,
      "origin": "ast",
      "body_hash": "22c87c75dbdc467aefa99e6cbd39c735c06626e5ec1d68d3954928fb960e7510",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py",
      "name": "style_configurator.py",
      "kind": "file",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L1-L413",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5839cebb22b21f7612c6d169b9f63f20316910d1d7a3f0eb68c2b79cc43e1b0d",
      "chars": 13367,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#create_style_preview",
      "name": "create_style_preview",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L132-L193",
      "signature": "def create_style_preview(style_dict=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "87231bdbce2eb68b030849faab444ccd8a0901c5be137b77c1a5c9ca88ac0c7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#generate_preview_data",
      "name": "generate_preview_data",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L114-L129",
      "signature": "def generate_preview_data()",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c6f33a8f611446a3cebf6f1e184b0ee0c562b795d4a94ab424d1340e963a743",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#interactive_mode",
      "name": "interactive_mode",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L277-L339",
      "signature": "def interactive_mode()",
      "exported": true,
      "origin": "ast",
      "body_hash": "5349caa637dbfdb6cdd2a6ae695b6a3b1d0016f85139e260b444a4ccc709ad0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#list_available_presets",
      "name": "list_available_presets",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L261-L274",
      "signature": "def list_available_presets()",
      "exported": true,
      "origin": "ast",
      "body_hash": "cef875e412a733781326abd4baf0d2e06f05fd2afaec3fc9cebc373114965ccd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L342-L408",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "71745f4b48c64d2554fa8482681690be424d617668cb923fdd7dfe5bd18f03ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#print_style_info",
      "name": "print_style_info",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L235-L258",
      "signature": "def print_style_info(style_dict)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9508e07eb2b83ff0c978b04ac596e94b924b0abc296116b781d31e9754ff8df3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/matplotlib/scripts/style_configurator.py#save_style_file",
      "name": "save_style_file",
      "kind": "function",
      "path": "skills/matplotlib/scripts/style_configurator.py",
      "span": "L196-L232",
      "signature": "def save_style_file(style_dict, filename)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6970d247242904f20c337d3d15cd538cce9a4407457837e22179fb731d2fc2d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py",
      "name": "filter_molecules.py",
      "kind": "file",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L1-L303",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "776554130d06d507bf81532ce2bc9148038cba379ca6188bc3140f46653853b2",
      "chars": 12336,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_alert_catalog",
      "name": "apply_alert_catalog",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L110-L119",
      "signature": "def apply_alert_catalog( mols: List[Chem.Mol], alerts: List[str], n_jobs: int ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "e149f4c450d62b89c905969ba7e2bb3cd4bf54e637196aedff51529f00387984",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_common_alerts",
      "name": "apply_common_alerts",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L90-L97",
      "signature": "def apply_common_alerts(mols: List[Chem.Mol], n_jobs: int) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "265a7c9daacc075bfa37dd8d313f96d0aaa5f5bbd68c10a9c0dad32e7e551547",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_complexity",
      "name": "apply_complexity",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L136-L148",
      "signature": "def apply_complexity( mols: List[Chem.Mol], limit: str, method: str, n_jobs: int ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebc3792361ed5e2469e2e0c3850dbc03df1368e3cef97e5d13f7dccef77e0ebb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_groups",
      "name": "apply_groups",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L159-L165",
      "signature": "def apply_groups(mols: List[Chem.Mol], groups: List[str]) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "d612157277a1b7e6e866a38aa1aada7c438f1c1c89f69cff61460d1f8ddceac3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_lilly",
      "name": "apply_lilly",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L122-L133",
      "signature": "def apply_lilly(mols: List[Chem.Mol], max_demerits: int, n_jobs: int) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cbdc9ff5d5192b329ec15945443f5ab107885d8fb6de3274eb95b5b2d28768b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_nibr",
      "name": "apply_nibr",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L100-L107",
      "signature": "def apply_nibr(mols: List[Chem.Mol], n_jobs: int) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "b40a8e2f8e3b35cd4bd06c1ffadcb145ea59c2c2d99fb149e3723095a29ee074",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_query",
      "name": "apply_query",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L151-L156",
      "signature": "def apply_query(mols: List[Chem.Mol], query: str, n_jobs: int) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ef8c111d58b347348faab8c972b2bcf90c47f8345b54f1609d535c7c9ea9aa1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#apply_rule_filters",
      "name": "apply_rule_filters",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L80-L87",
      "signature": "def apply_rule_filters( mols: List[Chem.Mol], rules: List[str], n_jobs: int ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c500f674897bbdbb76eaa4d51813bf2870db3a6a72571a06b978cd661424e59",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#generate_summary",
      "name": "generate_summary",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L168-L193",
      "signature": "def generate_summary(df: pd.DataFrame, output_file: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "464af6a3584eb9a701d33473847264edfb1b01c6744131d5a3240c9a2c00a60d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#load_molecules",
      "name": "load_molecules",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L28-L77",
      "signature": "def load_molecules( input_file: Path, smiles_column: str = \"smiles\" ) -> Tuple[pd.DataFrame, List[Chem.Mol]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "90e103edb9d004cf46699c34e94df7e2d1e26329ed8a2e35cfa6c2de1f173d0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/medchem/scripts/filter_molecules.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/medchem/scripts/filter_molecules.py",
      "span": "L196-L298",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "caa5964a50ae433da5e9f4213b48ad62e05a744139501e96a84e778bcdf80e3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py",
      "name": "arax_client.py",
      "kind": "file",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1-L2088",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b1d5e78c8525429f9fd85172193faf82c288fae9e49dd46a7269426f712618ca",
      "chars": 84318,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_add_network_policy_options",
      "name": "_add_network_policy_options",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L2004-L2007",
      "signature": "def _add_network_policy_options(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7076839e6f0f2fc0242af31ce448b97e4f72e0c47870635d17b65b3a79263401",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_add_query_common",
      "name": "_add_query_common",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L2010-L2016",
      "signature": "def _add_query_common(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ee694e060ea9521a82442790d436a1e17d08bf3dff3ee8087e11395de3aa82a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "name": "_append_warning",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L215-L228",
      "signature": "def _append_warning( warnings: list[dict[str, Any]], code: str, message: str, context: Mapping[str, Any] | None = None, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f733a60655b814e6c5abbfacf1d86e08f0251c616c24f9a083a4a59c72dad734",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_apply_service_to_manifest",
      "name": "_apply_service_to_manifest",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1664-L1666",
      "signature": "def _apply_service_to_manifest(manifest: dict[str, Any], service: ServiceInfo) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4712be71920480eebedb340646306491c350c05bf090362e90626ae8c3390c9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "name": "_build_from_args",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1847-L1879",
      "signature": "def _build_from_args(args: argparse.Namespace) -> tuple[dict[str, Any], QueryContract, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "cbc3c03958380f061f5d2d00f2bfda79d899ad03c50a53b1e8031a690d7b5013",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "name": "_check_trapi_version",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L735-L751",
      "signature": "def _check_trapi_version( trapi_version: str | None, allow_untested: bool, warnings: list[dict[str, Any]], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f31332816451953ca3136c02c00e26c129072caf35d20f9edb2aa0eb650c630d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_classify_logs",
      "name": "_classify_logs",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1128-L1184",
      "signature": "def _classify_logs( payload: Mapping[str, Any], contract: QueryContract, warnings: list[dict[str, Any]], ) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "b5c17909a052ee057d203b39b098877c40e396a08f40b846d69c15f793c929b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "name": "_decode_json",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L716-L723",
      "signature": "def _decode_json(body: bytes, label: str) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f0da56153cb737ca1d2ef0d1ce462a991627de1e3b12fdb943622f0004916a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_decode_json.reject_constant",
      "name": "reject_constant",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L717-L718",
      "signature": "def reject_constant(value: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "930f91c984fc48e289641bdee94cf46cf1705174cdd9eb18dca6f98f8a9b7067",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "name": "_has_control",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L231-L232",
      "signature": "def _has_control(value: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "355819c2ab602fc1409381cb105a3fbe5eadf4aab7024dc0b9e68fe2a9c38324",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_headers_dict",
      "name": "_headers_dict",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L575-L581",
      "signature": "def _headers_dict(headers: Any) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ff9db82039ec0bb436020a057eaedbae467677f5169daef581f83da527d97613",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_is_timeout_error",
      "name": "_is_timeout_error",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L601-L606",
      "signature": "def _is_timeout_error(error: BaseException) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "70da635cbbf948321c1bd9bfc090df58741b149ef36432076925337c02d84f64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_json_from_http",
      "name": "_json_from_http",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1727-L1728",
      "signature": "def _json_from_http(result: HttpResult, label: str) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "0997f2bf25798ae6cd18251792840b4b1a77d0fbafe29ef545059744f62fa457",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_looks_like_curie",
      "name": "_looks_like_curie",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L243-L248",
      "signature": "def _looks_like_curie(value: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "7a5cffb94cf45c952f4d09eb1679cf3c58abeb9dc5ae0e9c1ab4f97dc68783ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_normalize_node_bindings",
      "name": "_normalize_node_bindings",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1077-L1098",
      "signature": "def _normalize_node_bindings(value: Any) -> tuple[dict[str, list[dict[str, Any]]], dict[str, set[str]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9135b2875ace9f3896e812fca988a7568b59685fcb9eee15be8ad7478f0bbd13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_open_url",
      "name": "_open_url",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L558-L560",
      "signature": "def _open_url(request: urllib.request.Request, timeout: int) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "e275a45c4be54437b76405974c739ddf1339b93418a7b9d4b4e899bb3ea5bceb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_origin",
      "name": "_origin",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L520-L528",
      "signature": "def _origin(url: str) -> tuple[str, str | None, int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "0fe8c9c603b3b733cad7786855a96e258e0bc49ae4f23ec565ddcb4b722a38a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_parse_kp_parameter",
      "name": "_parse_kp_parameter",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L961-L970",
      "signature": "def _parse_kp_parameter(value: str) -> tuple[str, tuple[str, ...]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "25fbb502c9a1e027ef26c7855810713c7a0b2e46981228fd89a3a8fea7a6a597",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_preflight_summary",
      "name": "_preflight_summary",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1731-L1742",
      "signature": "def _preflight_summary(service: ServiceInfo) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "16f7343ba2d3ab9d23828002ca99319a8f447c68b40c2533ddc5a5e4b8fbc80d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_provider_parameter",
      "name": "_provider_parameter",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L389-L392",
      "signature": "def _provider_parameter(mode: str, provider_ids: Sequence[str]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "8e30c59a8dae562e279c4ed292d5f04323ba127ff64a239bbbe3318d50ff2d50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "name": "_record_response",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1669-L1679",
      "signature": "def _record_response(manifest: dict[str, Any], result: HttpResult, filename: str = \"response.json\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "35acd958a6d793ebe5b000f9bdf36ba7ef76532ce97596f6a29b758b2eb9a605",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_require_exact_keys",
      "name": "_require_exact_keys",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L910-L919",
      "signature": "def _require_exact_keys(value: Mapping[str, Any], allowed: set[str], label: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7b6576129a24af323b6c2f412892a107ea85029eb08e3ddbd8a4596378362417",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_resource_ids_for_role",
      "name": "_resource_ids_for_role",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1101-L1109",
      "signature": "def _resource_ids_for_role(sources: Sequence[dict[str, Any]], role: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c102ab30d0e54895b8aba10c3f0cdd8cd8865fd6bf3f973a34d08f79cab5aa32",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_response_status",
      "name": "_response_status",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L570-L572",
      "signature": "def _response_status(response: Any) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "55a0086460363a2afae8211e4c39f59930431c187f8cd29ed01f819649f698bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "name": "_retain_failure",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1687-L1724",
      "signature": "def _retain_failure( output_dir: Path | None, manifest: dict[str, Any] | None, error: AraxClientError, stage: str, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ab2ba36c0e1f1c11e6f860d9539885f0679e2d92d18b9c3cb9eee15ea5dfd66e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_retry_delay",
      "name": "_retry_delay",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L584-L598",
      "signature": "def _retry_delay(headers: Mapping[str, str], now: Callable[[], datetime] | None = None) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "1b3d0964f9fc5505225bf61fa7ffa18c19e30ef722e0b24dff990026a1eeafaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "name": "_sanitize_text",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L186-L192",
      "signature": "def _sanitize_text(value: Any, limit: int = MAX_DISPLAY_TEXT) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "df88d2cf1f75542655d7fb404c14bfd3bc2101a8af324b8d2575648288870d8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_unique",
      "name": "_unique",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L269-L272",
      "signature": "def _unique(values: Sequence[str], label: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "293d264af410e1c116426d0604d22c9a4aebfd029665de1a907915cb0cf37c83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_utc_now",
      "name": "_utc_now",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1608-L1609",
      "signature": "def _utc_now() -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "09970aab61cd3196440ff3bcc673aa80a65a3eb449d77949c4a00dfa26c46708",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "name": "_validate_edge_contract",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L922-L958",
      "signature": "def _validate_edge_contract(edge: Any) -> tuple[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5434c3a29222fb96306eb99dfbfd53926d5ef730effd10037bf1d54876d6f980",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_validate_query_response_version",
      "name": "_validate_query_response_version",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1882-L1894",
      "signature": "def _validate_query_response_version( payload: Mapping[str, Any], allow_untested_version: bool, warnings: list[dict[str, Any]], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8ea2d9e04a0d47b016232629c1d39569d5bae65f2d8f20be37d3aefe1ddfbcde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_version_series",
      "name": "_version_series",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L726-L732",
      "signature": "def _version_series(version: str | None) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "be8729c3be0d5f98edcc46615a215060b50457cc44c676663d0555632dd48ce7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "name": "_write_manifest",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1682-L1684",
      "signature": "def _write_manifest(output_dir: Path, manifest: dict[str, Any]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d60298564ebc3aa1514cd5be85ff07432deb8670d5231e1fe81b834db525447b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "name": "AraxClientError",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L87-L105",
      "signature": "class AraxClientError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "423209849368d550f08caaadaf4bf00042e79c9d6bb94db2b669e933a82d20de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#AraxClientError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L90-L105",
      "signature": "def __init__( self, message: str, *, exit_code: int, kind: str, http_status: int | None = None, response_body: bytes | None = None, attempts: int = 0, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b36273467dde3e25f113bdaee5e582a8aeafdb9c0d8a161add7366b11a5751b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AraxClientError"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1552-L1594",
      "signature": "def atomic_write_bytes(path: Path, value: bytes) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ad7ea21515a8015133e6e73b9aa17dd3e53477d2622e8a7e2e122b6e88002db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "name": "atomic_write_json",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1597-L1605",
      "signature": "def atomic_write_json(path: Path, value: Mapping[str, Any]) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "748e3b88a9f001a813627869e9771d4696dc1cb947fda2cd20efd90faf85863b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "name": "build_one_hop_query",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L417-L452",
      "signature": "def build_one_hop_query( *, subject_id: str | None, subject_category: str, predicates: Sequence[str], object_id: str | None, object_category: str, qualifiers: Sequence[tuple[str, str]], mode: str, provider_ids: Sequence[str], result_limit: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ded64b814ed05de5e871749d1a58437c6b067f8274dda441910240c2950ac461",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#build_operations",
      "name": "build_operations",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L395-L414",
      "signature": "def build_operations( edge_keys: Sequence[str], mode: str, provider_ids: Sequence[str], result_limit: int, ) -> dict[str, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "180404484ebf2d4119cb6c14f47710dd142eee3af6a897d587dfcaf61c76ce6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L2019-L2065",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c00c635d09c22af5898a5e936c8630ffc3b6515eb503e67a258be20a815950a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#build_query_edge",
      "name": "build_query_edge",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L366-L386",
      "signature": "def build_query_edge( subject: str, object_: str, predicates: Sequence[str], qualifiers: Sequence[tuple[str, str]], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c58b682d2f60aeb25cac1d6463c08bf4ad08577325e356ea57826c77162ccdcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "name": "build_two_hop_query",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L455-L504",
      "signature": "def build_two_hop_query( *, subject_id: str, subject_category: str, predicates_1: Sequence[str], intermediate_category: str, predicates_2: Sequence[str], object_id: str, object_category: str, qualifiers_1: Sequence[tuple[str, str]], qualifiers_2: Sequence[tuple[str, str]], mode: str, provider_ids: Sequence[str], expand_order: str, result_limit: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c294aba2bca4b166093689b1559e1f8c816f19baf9154f4c0c1c30675b1f0683",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#extract_publications",
      "name": "extract_publications",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1112-L1125",
      "signature": "def extract_publications(edge: Mapping[str, Any]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a55a2142a6a20aab77758903d9dd7896fcbb7a898fcc471ab2dda9ef64a5e075",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "name": "fetch_openapi",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L794-L828",
      "signature": "def fetch_openapi( base_url: str, *, allow_untested_version: bool, initial_warnings: Sequence[dict[str, Any]] = (), ) -> tuple[ServiceInfo, HttpResult]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5aff02d1ecfa0d16a9d647850ce0a1e232e255e1b77a126c6593dc0e15c04c8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "name": "handle_graph_query",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1897-L1966",
      "signature": "def handle_graph_query(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ace671200b70338dfee78cc49925bd32019c8ef856adfe2e81431a811d8fa54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "name": "handle_normalize",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1781-L1844",
      "signature": "def handle_normalize(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "13f7e5e871f760f4b799f50b214e3d0e25b642b38a69263e97d6788bbd64b9e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "name": "handle_preflight",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1745-L1778",
      "signature": "def handle_preflight(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c3de54f1d713b939fbe57e171829b7f722afd237feea6a62013b7f8b7e7f662",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "name": "handle_summarize",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1969-L2001",
      "signature": "def handle_summarize(args: argparse.Namespace) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6afa4272e1b21d9c25a2ab0c3f45481872997f99665a753218891adb2132f917",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#HttpResult",
      "name": "HttpResult",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L134-L139",
      "signature": "class HttpResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "20703d7e696a898f3c7951643b374ce6bc75230147ee7fce601bd775585dafcd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L2068-L2083",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ed4ec50f3cbf31c1811d00565c4b7779a63fcd19bce7a565fae539e7fa1488d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#make_warning",
      "name": "make_warning",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L195-L212",
      "signature": "def make_warning( code: str, message: str, context: Mapping[str, Any] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "53dd1db5a51740c17a006780e206704c7ef54af52a2b1bebd9e4dff463a19fb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#new_manifest",
      "name": "new_manifest",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1612-L1661",
      "signature": "def new_manifest( command: str, *, base_url: str, privacy_acknowledged: bool, http_timeout: int, result_limit: int | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "204362b204602e992a504c045c9f33368746d7ce1a905cbf7ff65c7b03c75ee8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#NormalizationError",
      "name": "NormalizationError",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L118-L120",
      "signature": "class NormalizationError(AraxClientError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "53ee099ff2e91754dc924abb9f24213f1854529ec4c4921d01e42de5832cfbf1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#NormalizationError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L119-L120",
      "signature": "def __init__(self, message: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "368dcc70875ffcf203851e4559405a7e4a7efe23371532946c8e279a2c3ea91d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizationError"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#normalize_entity_request",
      "name": "normalize_entity_request",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L831-L833",
      "signature": "def normalize_entity_request(base_url: str, term: str) -> HttpResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dbc012a507c9f7e8fe568a34ea3069e0704f50b10f66f4fd24d682f855f347a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "name": "parse_normalization_response",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L836-L907",
      "signature": "def parse_normalization_response( payload: Any, *, term: str, expected_category: str | None, max_synonyms: int, service: ServiceInfo, ) -> tuple[dict[str, Any], bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "895fb1cf92dd33c51014e38b75a2d633da0103734a961bc2dc527d8ce5412c3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "name": "parse_openapi_service_info",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L754-L791",
      "signature": "def parse_openapi_service_info( payload: Any, *, base_url: str, openapi_url: str, allow_untested_version: bool, initial_warnings: Sequence[dict[str, Any]] = (), ) -> ServiceInfo",
      "exported": true,
      "origin": "ast",
      "body_hash": "103d0f82279b260935041e23befadbc6f2a0d3669fcb261696a8f3773192879e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "name": "parse_qualifiers",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L281-L301",
      "signature": "def parse_qualifiers(values: Sequence[str]) -> list[tuple[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e0490293b2260d5dab62c50d4f015e7f1841455b1347b073d93614586bf7492",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "name": "parse_trapi_response",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1187-L1422",
      "signature": "def parse_trapi_response( payload: Any, contract: QueryContract, *, service: ServiceInfo | None = None, initial_warnings: Sequence[dict[str, Any]] = (), ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6195f02dc3c17685e5c4d23d41fe7b93d1cfb27db9948effad05d7aef7bf0291",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "name": "post_query",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L669-L713",
      "signature": "def post_query(url: str, request_bytes: bytes, *, timeout: int) -> HttpResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7404903c5692eb3dea70dc3c02733df329777bdcddcd8b1369fe1a32fa0c1dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "name": "PreflightError",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L113-L115",
      "signature": "class PreflightError(AraxClientError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "130317d57297edf496b46c0cc259b12e48cf0042db13bf24fcd345772fb1cc99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#PreflightError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L114-L115",
      "signature": "def __init__(self, message: str, **kwargs: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "bf99e227b9c845b42c9c37af8de75b2970f9bcbb6ed7328edf7502924314df31",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightError"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "name": "prepare_output_directory",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1535-L1549",
      "signature": "def prepare_output_directory(value: str | Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2079240265961052ccba7f6857672aaf8d6350dd0f29c5ea968cb03413c36ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#QueryContract",
      "name": "QueryContract",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L161-L168",
      "signature": "class QueryContract",
      "exported": true,
      "origin": "ast",
      "body_hash": "62668610bf3e0f3f3fa44e8b9fb26c45208beed2eecfe60d043aa783e9ae82c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#read_bounded_response",
      "name": "read_bounded_response",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L563-L567",
      "signature": "def read_bounded_response(response: Any, byte_limit: int = MAX_RESPONSE_BYTES) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b122230a8a4b9e526ad1f7d71f7852a9a8e90f2c4bdb30c06eb453dec96ca10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#RejectRepeatedValueAction",
      "name": "RejectRepeatedValueAction",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L171-L183",
      "signature": "class RejectRepeatedValueAction(argparse.Action)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e15e9a8adf52f277ad9fb7f4728d65141f7bde11dde66811a2ef472af2ebf92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#RejectRepeatedValueAction.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L174-L183",
      "signature": "def __call__( self, parser: argparse.ArgumentParser, namespace: argparse.Namespace, values: Any, option_string: str | None = None, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f25537eb901d41ae2c145891e141d080a62cfad75c2e34642289d30c0ed63182",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RejectRepeatedValueAction"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "name": "render_text_summary",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1425-L1528",
      "signature": "def render_text_summary( summary: Mapping[str, Any], *, summary_path: str = \"summary.json\", response_path: str = \"response.json\", ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "53ccfd249653efc46030fe2e233068481fbadc780386c5274113e6b7b4818af5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered",
      "name": "rendered",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1431-L1432",
      "signature": "def rendered(value: Any, limit: int = 200) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a207a895618770d7d305507f25cd45c4a0781c7a3827644a20d2dafa1b2c428",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered_list",
      "name": "rendered_list",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1434-L1437",
      "signature": "def rendered_list(values: Any, *, limit: int = 200) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ceeeba36b1e0f953dcf601272ab5e1e5b1d8956bd9e010b85d054b0545d7b95c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "name": "request_get_with_retry",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L609-L666",
      "signature": "def request_get_with_retry( url: str, *, timeout: int = GET_TIMEOUT_SECONDS, sleep: Callable[[float], None] = time.sleep, ) -> HttpResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "e794ff7e2c84bfeac22e558d23c732b16f3e935d02e09a60dfbe6bb637b74c91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "name": "resolve_mode",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L346-L363",
      "signature": "def resolve_mode( mode: str, provider_values: Sequence[str], result_limit: int | None, ) -> tuple[list[str], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "65a30e5a1ee0d72828df1aa188017bbde67fb0572e8ecfc7a0000eaeea41549b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "name": "ResponseError",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L128-L130",
      "signature": "class ResponseError(AraxClientError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "01063a3742551476c1ecedf892665feabf10742c8c8b7f79b271a2200ca256e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#ResponseError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L129-L130",
      "signature": "def __init__(self, message: str, **kwargs: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "cfb4c9ed1e1989136150c9076935a3728ec8e6dbb34ba1a451c61f33d858eac1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseError"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler",
      "name": "SameOriginHttpsRedirectHandler",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L531-L555",
      "signature": "class SameOriginHttpsRedirectHandler(urllib.request.HTTPRedirectHandler)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cc9c467b229e0b76e91de36f9f3cd588551604fd3ec961469cab9b49bfacaea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler.redirect_request",
      "name": "redirect_request",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L532-L555",
      "signature": "def redirect_request( self, req: urllib.request.Request, fp: Any, code: int, msg: str, headers: Any, newurl: str, ) -> urllib.request.Request | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bef54627dd3a587883a7c02cc430c616e18f932126a7a58ba28914f007521372",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SameOriginHttpsRedirectHandler"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#serialize_request",
      "name": "serialize_request",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L507-L517",
      "signature": "def serialize_request(body: Mapping[str, Any]) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b631ec50781c7fe639995a64e06ba50c4f98f0a31a5873c13c51dbae188fe14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo",
      "name": "ServiceInfo",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L143-L157",
      "signature": "class ServiceInfo",
      "exported": true,
      "origin": "ast",
      "body_hash": "08cc66eb8ccac712079b6d90b4d231ab29b38eee73b653afbd44ef4d9397fb60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L150-L157",
      "signature": "def as_dict(self, *, biolink_version: str | None = None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2c10d804a9efe68b9cf8d2d5fe5c6059e5a62d7c15860b0d733e0058c29dbdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ServiceInfo"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#sha256_bytes",
      "name": "sha256_bytes",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L1531-L1532",
      "signature": "def sha256_bytes(value: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "200803a897c7229114c8ebc5a0a3c8e615db79701249484132483c298ec15c54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#TransportError",
      "name": "TransportError",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L123-L125",
      "signature": "class TransportError(AraxClientError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "066482ae3936137d2530e8ac4834d8ee77b928661ff7f3e1cc0331b026fcf741",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#TransportError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L124-L125",
      "signature": "def __init__(self, message: str, **kwargs: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ccc94aa19369fdc2dd35c87496509391388cae6e397082cc884cc53dafdc174",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TransportError"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "name": "UsageError",
      "kind": "class",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L108-L110",
      "signature": "class UsageError(AraxClientError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "79463f676f9976a7475f89f6f79b23024c92857d99d2c52ad3b973a5786fa9c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#UsageError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L109-L110",
      "signature": "def __init__(self, message: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2130d651f1cd09ffb3f30cf9d4cd1dd1c712a61419a360f53f10a074cb4eac75",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "UsageError"
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "name": "validate_base_url",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L310-L343",
      "signature": "def validate_base_url(value: str, allow_nonproduction: bool) -> tuple[str, list[dict[str, Any]]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0497b5307b55faed8e743be12ddca12b48475ba70a332c2bddb2991e735167f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "name": "validate_biolink_term",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L251-L256",
      "signature": "def validate_biolink_term(value: str, label: str = \"Biolink term\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4af9f2b462af52fe654f5e7ef6875cfc6fdb2b835d95278042e714de7d9fe38f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "name": "validate_curie",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L235-L240",
      "signature": "def validate_curie(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "19e6a62a2b8da0fa0b969b7b6396dc9ed21d23ba4b53041800f49df2d616bc2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "name": "validate_predicates",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L275-L278",
      "signature": "def validate_predicates(values: Sequence[str]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "551560adda5d5d53ba1b62bff1abfb369013ecf8939a632191f61fff675689e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "name": "validate_provider_id",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L259-L266",
      "signature": "def validate_provider_id(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "216dc1cf14750ef9c751ec6925a24331163f982b9e5360e89cff456125f00709",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_result_limit",
      "name": "validate_result_limit",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L304-L307",
      "signature": "def validate_result_limit(value: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0167ac54986f6c178c61a200253075d6faeb9a0ed59cc84aead5d6dbec4ecb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "name": "validate_saved_request_contract",
      "kind": "function",
      "path": "skills/ncats-arax/scripts/arax_client.py",
      "span": "L973-L1074",
      "signature": "def validate_saved_request_contract(payload: Any) -> QueryContract",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d903c26af5c811e7a14ca4adee3cdabff72cab1755881ed038e13dd18750f90",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L1-L568",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "db17455cf31addb8ab52761cdfd65406a9fbb83e8677a3802ace2138a1cb6a8c",
      "chars": 18958,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_absolute_lexical",
      "name": "_absolute_lexical",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L57-L58",
      "signature": "def _absolute_lexical(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "b3e4e503ad9967b0e5f1f537e76588337dc40f75923cd443d5d9a83e57497b55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_format_csv_value",
      "name": "_format_csv_value",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L449-L468",
      "signature": "def _format_csv_value(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "ade969aa1c4479d43a3af73fd659a7fe6c1d9c2bfc69f400a0941f42af1815ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_read_header",
      "name": "_read_header",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L363-L375",
      "signature": "def _read_header(reader: Any) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d3c017eac07002cae61a6832ceeed7da178171a3be9ecb7762ebabe4bad3123",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L34-L35",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d7454d72174c168c7a9ea73fd4d567bca97c876ff8aa87c919949c1298a5c043",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L61-L72",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2b4da6959a4fa1f6f170c5533f44558a06fd163dc1d000bdef6854643f1501d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_reject_url",
      "name": "_reject_url",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L47-L54",
      "signature": "def _reject_url(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8403f8158cb7bc92057e40e8eddb47ffde622fa3033d0393256579fbda006ff3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_suffix_matches",
      "name": "_suffix_matches",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L101-L103",
      "signature": "def _suffix_matches(path: Path, suffixes: Iterable[str]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "f6353539431e7d2ae3f0e0f0f3a951876c5bcf0988293ceefb845ff91175ab94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L38-L44",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d6b2d3f65bce4a282c445f59ccdcb0a550ef6f61049759891cad87ab19062a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#_within_root",
      "name": "_within_root",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L94-L98",
      "signature": "def _within_root(candidate: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c09269247f1db3471c89e607b8565c56bba78140ca70d54e117d163f5e1b71bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L184-L218",
      "signature": "def atomic_write_bytes( destination: str | os.PathLike[str], payload: bytes, *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "92deb7e033ed1426b768c953b0179da8b3a0deba7a4220c688f14186962805c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L311-L322",
      "signature": "def bounded_int( value: Any, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "048f8ac62a46b4dafc76cc2c4b7318f1a758c5f6013fd9e16b6c2066d5d5c305",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L106-L140",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], max_bytes: int, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "65bf4d203308828a3f3bf9dd53e949a888b78745ba130142216790b79220000f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L143-L181",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff804960c60e71c116bbc01180f2789f911500943334ea170ea183aa1862a9a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L75-L91",
      "signature": "def checked_root(value: str | os.PathLike[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a7c6d904ce1973cb2a90a720876bf624426ed0f8260209d1f61ef96f5e1031c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L30-L31",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bae2dcdcef010efd981c6efe736793f5ed43285a4cd9df0297add060bed56ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#csv_bytes",
      "name": "csv_bytes",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L471-L496",
      "signature": "def csv_bytes(columns: Sequence[str], rows: Iterable[Sequence[Any]]) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "993c1c475d5881b456211ac27296b1c4c91b5a5e1b1b526d4e3c8e99c4f6f388",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#dataframe_rows",
      "name": "dataframe_rows",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L539-L542",
      "signature": "def dataframe_rows(frame: Any) -> Iterable[Sequence[Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f143ce831e3e15fef6f03f820fdd546ca0f3af981ca7ae8d3b569a06691b9212",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L242-L261",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, root: str | os.PathLike[str] = \".\", force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c5726a20cbe2170aa0b1d84d0ca2b7e48bab554cff91c1428adca9682aa0111",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L325-L341",
      "signature": "def finite_float( value: Any, *, name: str, minimum: float | None = None, maximum: float | None = None, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc1b33d73ab45ffa4570594dec2ae7edd7fdeaef8ec43331e55578bd9fbb9e0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#json_number",
      "name": "json_number",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L522-L536",
      "signature": "def json_number(value: Any) -> float | int | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41c0458b4adb0f3139aacfa1611cf3000ad5c8473cd8e300aca86e7f358c6cc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L264-L291",
      "signature": "def load_json_object( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", max_bytes: int = MAX_JSON_BYTES, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7c5a562326a3f2f552e3ee1330f9f58d943b087351d1b25aa27b8d9885cfb4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#parse_name_list",
      "name": "parse_name_list",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L344-L352",
      "signature": "def parse_name_list(value: str | None, *, name: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2086f802c539b9d6382d29f61d72a49d9f3ec29bd155f54c17fb6716cda15e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "name": "read_numeric_columns",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L378-L446",
      "signature": "def read_numeric_columns( path: Path, columns: Sequence[str], *, max_rows: int = MAX_ROWS, allow_missing: bool = False, ) -> tuple[dict[str, list[float | None]], list[str], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "06420b9e7877badbbe9b82636015957456f779bb6d664044bb67ded7d7ade0b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "name": "require_deidentified",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L355-L360",
      "signature": "def require_deidentified(confirmed: bool) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "446bb8fedb77313c1bede214d3e870ef306ed7b976b9c3ab3ad2f533de143228",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L545-L567",
      "signature": "def run_cli(function: Any) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "31e9cf7a50f5e377c26f88098a12a5cf3158002d69768453e30a024458a1c3db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#sha256_bytes",
      "name": "sha256_bytes",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L518-L519",
      "signature": "def sha256_bytes(payload: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "be5605961633572316398af195e1817f177c9826f79c801851d1253100749351",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#strict_json_bytes",
      "name": "strict_json_bytes",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L221-L239",
      "signature": "def strict_json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "30dd5889b2d200abd6a6b61955732244ad4ce58ebdde259c8eaf907e3bc3d8a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L294-L308",
      "signature": "def validate_keys( value: Mapping[str, Any], *, allowed: Iterable[str], required: Iterable[str] = (), context: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "45afc56f012c8cf72c9d029ac1852988639d184613434d862140dae092c480c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/_common.py#write_csv",
      "name": "write_csv",
      "kind": "function",
      "path": "skills/neurokit2/scripts/_common.py",
      "span": "L499-L515",
      "signature": "def write_csv( destination: str | os.PathLike[str], columns: Sequence[str], rows: Iterable[Sequence[Any]], *, root: str | os.PathLike[str] = \".\", force: bool = False, ) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a85d6fdb95d12ed62a374234840b9978b8cba57b464825337434b9af4cac584",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "name": "ecg_hrv_pipeline.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "span": "L1-L304",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cf74ead25f3b6d73f77a5f29fa6d424f4019f1eef86287a727da488545e85fdf",
      "chars": 10917,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_artifact_counts",
      "name": "_artifact_counts",
      "kind": "function",
      "path": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "span": "L56-L64",
      "signature": "def _artifact_counts(info: dict[str, Any]) -> dict[str, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "52f99339b03f283b792c89f61bb12681cdd8b858bec890ec08e5ddfbe05fca5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_row_to_json",
      "name": "_row_to_json",
      "kind": "function",
      "path": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "span": "L38-L41",
      "signature": "def _row_to_json(frame: Any) -> dict[str, float | int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ea6dc23b56f26e3e3a65fd3f61e2269e0d3afca51617ed32bc34d83caefc1439",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_summary",
      "name": "_summary",
      "kind": "function",
      "path": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "span": "L44-L53",
      "signature": "def _summary(values: Any) -> dict[str, float | int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "0ecf5442649a04e97881276cd6857f1f9711259dd36261a9bd725f5e4621b250",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "span": "L67-L101",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "979f01ddd9f6e3caf7cc0a1d5cdba095dcdc50a5d8ebd1f3f5847152fc7a5f4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "span": "L104-L299",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0eb0e5380f05046cd282ee60d6411b16076c29f2a9ad3ccd919deaf5d2c3a07",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/eda_pipeline.py",
      "name": "eda_pipeline.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/eda_pipeline.py",
      "span": "L1-L289",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fa33f05e92b6011498a853126263721644b76cc8754f0fc156dfbf7a274121d1",
      "chars": 9986,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/eda_pipeline.py#_finite_values",
      "name": "_finite_values",
      "kind": "function",
      "path": "skills/neurokit2/scripts/eda_pipeline.py",
      "span": "L33-L39",
      "signature": "def _finite_values(values: Any) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f171f3305ec36c1acc182d5610c8a3a8c51dd0f94520c3df6da84f2104c21ec9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/eda_pipeline.py#_stats",
      "name": "_stats",
      "kind": "function",
      "path": "skills/neurokit2/scripts/eda_pipeline.py",
      "span": "L42-L50",
      "signature": "def _stats(values: Any) -> dict[str, float | int | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "54b9f1ec1c4701ed07ff8e8921be68f0d261633697ba297d5fb6c61a792d307a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/eda_pipeline.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/neurokit2/scripts/eda_pipeline.py",
      "span": "L53-L96",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9a8dc1a5dba9bc837fb2482a92e7af75e22fa6b7deaac125e2bf39c340724c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neurokit2/scripts/eda_pipeline.py",
      "span": "L99-L284",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e16a04e2d1410eaccf035f94c56fb6cdb97284c7edb39e278c045fea4bc2e6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/generate_synthetic.py",
      "name": "generate_synthetic.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/generate_synthetic.py",
      "span": "L1-L222",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4b3dc08f50696cd13aab93bcf371c50b59d6f1332f8549f9dd13ee690ba47026",
      "chars": 7584,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/generate_synthetic.py#_event_times",
      "name": "_event_times",
      "kind": "function",
      "path": "skills/neurokit2/scripts/generate_synthetic.py",
      "span": "L40-L46",
      "signature": "def _event_times(duration: float, interval: float) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bc18532020623b805bd361022c9d5102b161270618b264715d9b47a9400c7fff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/generate_synthetic.py#_gaussian",
      "name": "_gaussian",
      "kind": "function",
      "path": "skills/neurokit2/scripts/generate_synthetic.py",
      "span": "L35-L37",
      "signature": "def _gaussian(phase: float, center: float, width: float) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "223ca5088fa93c4191fa591dd83f782cf91f791988d1105a6b387d05055dffb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/generate_synthetic.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/neurokit2/scripts/generate_synthetic.py",
      "span": "L122-L146",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7b5c095111335738d0c6b45cbdbc62c4ff3497c0c8f9c6dd507cb3499281f34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/generate_synthetic.py#generate_rows",
      "name": "generate_rows",
      "kind": "function",
      "path": "skills/neurokit2/scripts/generate_synthetic.py",
      "span": "L49-L119",
      "signature": "def generate_rows( *, duration: float, sampling_rate: float, heart_rate: float, respiratory_rate: float, modalities: Sequence[str], seed: int, event_interval: float, ) -> tuple[list[str], list[list[float]], list[float]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bc47865652c7e65fa39ca4ddcbb536588034204c9274829ada2804b673c838c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/generate_synthetic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neurokit2/scripts/generate_synthetic.py",
      "span": "L149-L217",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "671132bf4ada2b5fcebfc84d518743d1e30546206db31e88282f02daf989f3b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py",
      "name": "inspect_signal.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L1-L363",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cd0e5a28d4073f9d9e83a64c2bbabd9244990dfccd8d48b23a51dc9cca7d10c",
      "chars": 13519,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#_parse_units",
      "name": "_parse_units",
      "kind": "function",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L111-L128",
      "signature": "def _parse_units(value: str | None, selected: list[str]) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7036dc80c6d341bf2b1950f49f41844294264f13072bb3cda37932310503add4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L296-L327",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6f5c48dd9ca383b1b27ef51a21726bb06d07b10f2f0ac1ecea882c7a9834a62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#inspect_csv",
      "name": "inspect_csv",
      "kind": "function",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L131-L293",
      "signature": "def inspect_csv( path: Path, *, selected_names: list[str] | None, time_column: str | None, declared_sampling_rate: float | None, units_value: str | None, max_rows: int, max_channels: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9af78c748ed29ab684f854024575d4c10bd7d4208779de0df9ca93c7c2e8de7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L330-L358",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf8adc7cd6b56b26c667601bc6ba4b39a7c393b245a91d2fe685522e73dded0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats",
      "name": "OnlineStats",
      "kind": "class",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L29-L108",
      "signature": "class OnlineStats",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2c3fa375e07dc55368823667138261c24cdd098220428519b7f3b73fe34d3bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L30-L45",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4746a6945e3fd540f55d5289b200e94c906b38e7d7e0083038103080d98b44df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OnlineStats"
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats.add_cell",
      "name": "add_cell",
      "kind": "method",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L47-L89",
      "signature": "def add_cell(self, cell: str) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "704d35960ea64a382e053b449b1c361e8fcbea21f20bb05c5ca6d5c22552d081",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OnlineStats"
    },
    {
      "id": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats.report",
      "name": "report",
      "kind": "method",
      "path": "skills/neurokit2/scripts/inspect_signal.py",
      "span": "L91-L108",
      "signature": "def report(self, unit: str | None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "edb05cc06009094a0936d3be962354157c76570560a1f26f27c2907936736801",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OnlineStats"
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py",
      "name": "plan_epochs.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L1-L282",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "19a7ead1a5cf8085442c53353983eb74414d92d3c12afa2560ae9136626bedc4",
      "chars": 10040,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py#_event_samples",
      "name": "_event_samples",
      "kind": "function",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L54-L70",
      "signature": "def _event_samples( values: list[float], *, unit: str, sampling_rate: float, ) -> list[int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ff67c34fe07249521ef01abfa6b9013843c24f98ca9ed96ec346b0f910461631",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py#_parse_events",
      "name": "_parse_events",
      "kind": "function",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L25-L40",
      "signature": "def _parse_events(value: str) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e7afbd6c6311b0a6e86d28ea7e951b78083528ec2e2c6b217d6402b5099243cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py#_sample_offset",
      "name": "_sample_offset",
      "kind": "function",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L43-L51",
      "signature": "def _sample_offset(seconds: float, sampling_rate: float, *, name: str) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "0e5ad459739bc8fd67150c077325b1c2e1343d6df1a4cc426075d1f854b16cf9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L179-L213",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "68040ff881c951fd9c30174c1535c5ccdd6f4aecf615640edf192291e44b272a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L216-L277",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cc3ee41c51ddd4cf26da4477abba93dc2f9df8b18e4389f3733e4791faa092e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/plan_epochs.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/neurokit2/scripts/plan_epochs.py",
      "span": "L73-L176",
      "signature": "def plan( events: list[int], *, recording_samples: int, sampling_rate: float, epoch_start_s: float, epoch_end_s: float, baseline_start_s: float | None, baseline_end_s: float | None, boundary_policy: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7abf85554f1b14253477a7ee70742daa632214e2cccad9a1a00b4426f88911c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/validate_multimodal.py",
      "name": "validate_multimodal.py",
      "kind": "file",
      "path": "skills/neurokit2/scripts/validate_multimodal.py",
      "span": "L1-L351",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "af5bfc9e75cf6a1bcc39c0b54dfbc18ec132b9dd0465dc45bfcf8ad22bcb887b",
      "chars": 12505,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/validate_multimodal.py#_stream_profile",
      "name": "_stream_profile",
      "kind": "function",
      "path": "skills/neurokit2/scripts/validate_multimodal.py",
      "span": "L39-L169",
      "signature": "def _stream_profile( stream: dict[str, Any], *, root: Path, max_rows: int, ) -> tuple[dict[str, Any], list[str], list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "571b6690a9d686bd0fc4ea646c4fe0163258893b2a44980a4cd5954c3de18a24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/validate_multimodal.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/neurokit2/scripts/validate_multimodal.py",
      "span": "L314-L331",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd4bdf0503154ec1375aa21a4bbdc083ece1bc9d0d2bb299cc5d0e72d2983611",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/validate_multimodal.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neurokit2/scripts/validate_multimodal.py",
      "span": "L334-L346",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "745258793786d28ff46981963ae33e670af2c328d8ea1a73eb679bb5d69dccdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neurokit2/scripts/validate_multimodal.py#validate_manifest",
      "name": "validate_manifest",
      "kind": "function",
      "path": "skills/neurokit2/scripts/validate_multimodal.py",
      "span": "L172-L311",
      "signature": "def validate_manifest( document: dict[str, Any], *, root: Path, max_rows: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f4af8ddbbc4f1290bdfae1e6eb4519ea37a1c022c49227b8e7707e430c8d282",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/assets/analysis_template.py",
      "name": "analysis_template.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/assets/analysis_template.py",
      "span": "L1-L272",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "339d09b4d01465ad0a6db1970bde4d21f1a33d8ec9d0ab66ad32b3ad9ebb46da",
      "chars": 9009,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/assets/analysis_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neuropixels-analysis/assets/analysis_template.py",
      "span": "L59-L267",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4812e92569d4b952b459d2d8cb9fca9e5871d464665dbe34b02eb5c930990083",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "name": "compute_metrics.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "span": "L1-L183",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "142caf69c0ee675bcad820e82ccbd0b92e719574cbbf86425e66bd4e5ca5b6bb",
      "chars": 5588,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/compute_metrics.py#compute_metrics",
      "name": "compute_metrics",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "span": "L44-L158",
      "signature": "def compute_metrics( sorting_path: str, recording_path: str, output_dir: str, curation_method: str = 'allen', n_jobs: int = -1, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "d208b759a1245b6c94f00f2eed75af6170e3d9fb7a3e1301a07ee9b7613588b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/compute_metrics.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "span": "L161-L178",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ff6571da4ef8950612a639826a8fa37c5186845b5f7f0deb20657f623c60ff0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "name": "explore_recording.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "span": "L1-L169",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "98e1518c932973dd33a9502012ae9ceae6ef3a91ddd3b1942235661ff49e4665",
      "chars": 5553,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/explore_recording.py#explore_recording",
      "name": "explore_recording",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "span": "L15-L66",
      "signature": "def explore_recording(data_path: str, stream_name: str = 'imec0.ap')",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b5a7f86cbb276e590cac9cc07fb7eb255568cab6d0fa0cb8367e78abee107fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_power_spectrum",
      "name": "plot_power_spectrum",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "span": "L110-L144",
      "signature": "def plot_power_spectrum(recording, output_path=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c840425007ae5f5ccdbd79dcbcbb310c740a7b70c3f5cddd196672dee0a5850",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_probe",
      "name": "plot_probe",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "span": "L69-L79",
      "signature": "def plot_probe(recording, output_path=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd9da0de6dc1def759d24a22cc83bf4f553256b0c3c6dc9a323642d56add1361",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_traces",
      "name": "plot_traces",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "span": "L82-L107",
      "signature": "def plot_traces(recording, duration=1.0, output_path=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "68b9e664d3ddef9f57e2d37fcc7d2a3cb9b13b96b9060119b483d5f36829b7bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "name": "export_to_phy.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "span": "L1-L80",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d16a94cfee7153c9baf7e7a4f87c178881258a62e3445f6beb790e2ea4f3632f",
      "chars": 2477,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/export_to_phy.py#export_phy",
      "name": "export_phy",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "span": "L16-L54",
      "signature": "def export_phy( analyzer_path: str, output_dir: str, copy_binary: bool = True, compute_amplitudes: bool = True, compute_pc_features: bool = True, n_jobs: int = -1, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bb99f41e2d40cf19eb2bf315fc67d6f504514484d1c72947fbf334fad1834d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/export_to_phy.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "span": "L57-L75",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "feafcd150587f553ef2f614112c49822513a52e2c2c16b9343c6870cda1f1dc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "name": "neuropixels_pipeline.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L1-L443",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17070396bbecb859216424829ba0366d9a3b20b9a7378f2b46bea0ec027dd70f",
      "chars": 13805,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#check_drift",
      "name": "check_drift",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L87-L149",
      "signature": "def check_drift(recording: si.BaseRecording, output_folder: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "15e22b2c63aa3b15cd2bbc3d0cf680cce56f4081952995379cb57e5125a0d697",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#correct_motion",
      "name": "correct_motion",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L152-L173",
      "signature": "def correct_motion( recording: si.BaseRecording, output_folder: str, preset: str = 'nonrigid_fast_and_accurate' ) -> si.BaseRecording",
      "exported": true,
      "origin": "ast",
      "body_hash": "a98c78128f02830287429a955342597f8b18543321b41c27d10e9e807344338f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#curate_units",
      "name": "curate_units",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L238-L307",
      "signature": "def curate_units(qm, method: str = 'allen') -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe0652c8345b069a6161346296ce1ccd9c1b84bf9be6114d2d6eaee4a77b9d6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#export_results",
      "name": "export_results",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L310-L355",
      "signature": "def export_results( analyzer, sorting, recording, labels: dict, output_folder: str )",
      "exported": true,
      "origin": "ast",
      "body_hash": "071891afed3f643a472bdd78e171d06d27b414e8657d730926c027d9bd5e0bef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#load_recording",
      "name": "load_recording",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L22-L44",
      "signature": "def load_recording(data_path: str, stream_name: str = 'imec0.ap') -> si.BaseRecording",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c3381c6010ff7462a7979b2944dde92aa501390441d0b887bca465124b74417",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#postprocess",
      "name": "postprocess",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L199-L235",
      "signature": "def postprocess( sorting: si.BaseSorting, recording: si.BaseRecording, output_folder: str ) -> tuple",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e6bb8067731487a8b0cfedd836acf92db5dfbabbabdfbe4708677e59f9d1968",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#preprocess",
      "name": "preprocess",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L47-L84",
      "signature": "def preprocess( recording: si.BaseRecording, apply_phase_shift: bool = True, freq_min: float = 400., ) -> tuple",
      "exported": true,
      "origin": "ast",
      "body_hash": "806ab0d99206314c9b6d0ce256cd91ef598ff7c31f30c257bbefbc9912eccc4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "name": "run_pipeline",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L358-L414",
      "signature": "def run_pipeline( data_path: str, output_path: str, sorter: str = 'kilosort4', stream_name: str = 'imec0.ap', apply_motion_correction: bool = True, curation_method: str = 'allen' )",
      "exported": true,
      "origin": "ast",
      "body_hash": "19ff0337380aafed02ead5499cee6077138d804c55aa6385fe293ac3b7de5291",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_spike_sorting",
      "name": "run_spike_sorting",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "span": "L176-L196",
      "signature": "def run_spike_sorting( recording: si.BaseRecording, output_folder: str, sorter: str = 'kilosort4' ) -> si.BaseSorting",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7b79b2c80f258af942bdd874200812aa2e3fc46928606ee97384f4732e7eff6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "name": "preprocess_recording.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "span": "L1-L123",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "032a7726ebba3d930e596884e11f1a21abe8f5a0c658aebec7ca296e47c3abea",
      "chars": 4279,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/preprocess_recording.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "span": "L92-L118",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d3caa8d838fbf23d18848109793eef6d6c66829bfd8f688f8c9d4aafc4ce16a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/preprocess_recording.py#preprocess_recording",
      "name": "preprocess_recording",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "span": "L15-L89",
      "signature": "def preprocess_recording( input_path: str, output_dir: str, format: str = 'auto', stream_name: str = None, freq_min: float = 300, freq_max: float = 6000, phase_shift: bool = True, common_ref: bool = True, detect_bad: bool = True, n_jobs: int = -1, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f710431cc04d9b2e62fb6e697b202c663199dac0792a4fe0028cd1dca7c5f91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "name": "run_sorting.py",
      "kind": "file",
      "path": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "span": "L1-L99",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b8fd612f4337e12a83afd8005dffab01df4dbd31887a446c68ecc29ff0a7e920",
      "chars": 2573,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/run_sorting.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "span": "L79-L94",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "69cdf2e7b9d05e804d434a6f796675e6c4c00dcf071c9add38db1b353cab6baf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/neuropixels-analysis/scripts/run_sorting.py#run_sorting",
      "name": "run_sorting",
      "kind": "function",
      "path": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "span": "L36-L76",
      "signature": "def run_sorting( input_path: str, output_dir: str, sorter: str = 'kilosort4', sorter_params: dict = None, n_jobs: int = -1, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "44eb657951c4d22c4f0647e4a324254bfd58faeda1a6eaed4ab3b79002631ea1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py",
      "name": "export_image_metadata.py",
      "kind": "file",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L1-L561",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f0aeb2cf18c606e022d8c01219b8f08332a4a206b60bf50aa1bb873acd45e5cd",
      "chars": 16731,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#annotation_record",
      "name": "annotation_record",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L198-L259",
      "signature": "def annotation_record( annotation: Any, *, include_values: bool, include_owner_names: bool, include_file_names: bool, max_string_length: int, max_value_items: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb61259e0a45c297c05f7cec97ebf07725b276a67bbe9975c6c78a02e44f61f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L50-L149",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c323f25218b5d3dcc0a76ba2b9e7839270e7877922a02cd2d39cbdc0e5c4e97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "name": "call_or_none",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L152-L156",
      "signature": "def call_or_none(obj: Any, method: str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "eddd79ded2286a53768cfa521e278ac232187ecb915154730de398e4ac7d47c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "name": "export_one_image",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L342-L402",
      "signature": "def export_one_image( connection: Any, roi_service: Any, image_id: int, args: argparse.Namespace, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7eee62b8193ef4fe062291478103a25d04d1d0ed7269423e4d40e2f073f8c4cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L434-L556",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4b1b16f85cb0b571cfb269df2945fbf12150c7225b8027714113b4e5ee72c54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "name": "normalized",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L159-L169",
      "signature": "def normalized( value: Any, *, max_string_length: int, max_value_items: int, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "41de8a2f096a10b604d11b3e38cb573d93889ea9e83b66a09fde1098a841c2b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#owner_record",
      "name": "owner_record",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L172-L195",
      "signature": "def owner_record( obj: Any, *, include_owner_names: bool, max_string_length: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "54dd2a9decfc48d4ecf3a87e31be3bdb39a8a083c9c761c9fa49f948f4e72657",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#positive_argument",
      "name": "positive_argument",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L40-L47",
      "signature": "def positive_argument(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f343739105c30ca70b007d209edc1db43dded7988b86f021d6eca4b7e5cf2ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#redaction_payload",
      "name": "redaction_payload",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L422-L431",
      "signature": "def redaction_payload(args: argparse.Namespace) -> dict[str, bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "988fe3a6f3c364c602c9811a5b2fd699b54ee846a91332c9094baef0874d9aaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "name": "roi_record",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L315-L339",
      "signature": "def roi_record( roi: Any, *, max_shapes: int, include_labels: bool, max_string_length: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "277c998a82bc7c44ee0af132ac710346ad3513e96ec59203341e430b2a8e044b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#scope_payload",
      "name": "scope_payload",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L405-L419",
      "signature": "def scope_payload( args: argparse.Namespace, image_ids: list[int], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a493db4f877583fe2892724906d473949ce786dd816a632f760e6bb0fb5ab6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/export_image_metadata.py#shape_record",
      "name": "shape_record",
      "kind": "function",
      "path": "skills/omero-integration/scripts/export_image_metadata.py",
      "span": "L262-L312",
      "signature": "def shape_record( shape: Any, *, include_labels: bool, max_string_length: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3aefac6d0c8e09190fe3a1f59d1eb2b2837b1a507b0017410f66160e4ece215",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py",
      "name": "inventory.py",
      "kind": "file",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L1-L303",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7f8986ecee7e8933b1f422b26bf19c494447d594708ec927eb1248fb7143f7b7",
      "chars": 8364,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L47-L104",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "072eced7189e1854663a4a406c1121c749db4938b9d31108ec1f23dc461d74a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#call_or_none",
      "name": "call_or_none",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L107-L111",
      "signature": "def call_or_none(obj: Any, method: str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "eddd79ded2286a53768cfa521e278ac232187ecb915154730de398e4ac7d47c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#collect_inventory",
      "name": "collect_inventory",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L158-L206",
      "signature": "def collect_inventory( connection: Any, *, object_type: str, limit: int, page_size: int, include_names: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecb53d857cf9300c03d28f890374d202f84fd05101ee02c59da0690921c7936b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#dry_run_payload",
      "name": "dry_run_payload",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L209-L226",
      "signature": "def dry_run_payload( args: argparse.Namespace, config: Any, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad03afc0dea402a34631ac5548da23eaabb5e9e024140fa55809da616905a8c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L229-L298",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "837e14100fd76ed7801b7f67f64fdc3a5ac2278255c6122c22741e5fa162c9b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#object_record",
      "name": "object_record",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L114-L155",
      "signature": "def object_record( obj: Any, *, requested_type: str, include_names: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "80cff930760bb768bd6b300a9c5cb94104a70c964a06717bc982bf8e3b7a3d4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/inventory.py#positive_argument",
      "name": "positive_argument",
      "kind": "function",
      "path": "skills/omero-integration/scripts/inventory.py",
      "span": "L37-L44",
      "signature": "def positive_argument(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f343739105c30ca70b007d209edc1db43dded7988b86f021d6eca4b7e5cf2ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py",
      "name": "omero_common.py",
      "kind": "file",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L1-L491",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d7571a3263cc2fbde3233332cd3fd5081d3346907362ab71a1587b613479a992",
      "chars": 14255,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#atomic_write_json",
      "name": "atomic_write_json",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L383-L443",
      "signature": "def atomic_write_json( output: str | os.PathLike[str], payload: Any, *, overwrite: bool, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "356c347a8527013ddf06b91a22ce2bba9d359b382d4108f19da0d1d1d1b2cde4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L367-L380",
      "signature": "def bounded_int( value: int, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "297ca6f67e25f717ba6d2f6a3c4a0c3b8ddc6df96857b0373e9604d18cb45c4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#BoundedResult",
      "name": "BoundedResult",
      "kind": "class",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L66-L70",
      "signature": "class BoundedResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "828c6b54faf9684b5a840c80d6f8c15e82fd801c171ab67f55b59c3bb0f4390a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "name": "config_summary",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L170-L190",
      "signature": "def config_summary( config: ConnectionConfig, *, environ: Mapping[str, str] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "01efadb6f3d904b50a92c34701311c5b47578fa5dc092a3f7f4e16ff2b3ffd73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "name": "ConfigError",
      "kind": "class",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L33-L34",
      "signature": "class ConfigError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b231505c56e2b24b1340795aff4e4506639a6265b1e198bd123645ef09bfe80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#ConnectionConfig",
      "name": "ConnectionConfig",
      "kind": "class",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L46-L62",
      "signature": "class ConnectionConfig",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7ede6db79ff009cd12fab538361c491fceee1370d3232a9b228f22543a35c73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#ConnectionConfig.authentication_mode",
      "name": "authentication_mode",
      "kind": "method",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L57-L62",
      "signature": "def authentication_mode(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "73c1c01c2e8e25f83784156f88174c4209a049c100b63efee1661d7719d577c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConnectionConfig"
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#DependencyError",
      "name": "DependencyError",
      "kind": "class",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L41-L42",
      "signature": "class DependencyError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "029df93a3a1c61af5c9112bb154cb3f33a7a54834b25bbf205d7edc8c5ac3938",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L446-L464",
      "signature": "def emit_json( payload: Any, *, output: str | os.PathLike[str] | None, overwrite: bool, ) -> Path | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "906099250d2549b0b54c733f3c4c393c5743224ad4e8c46045df4f578d944151",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "name": "gateway_session",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L208-L255",
      "signature": "def gateway_session( config: ConnectionConfig, *, allow_insecure_transport: bool, ) -> Iterator[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b24c53a40a39ab26cfed3fac6b235b06cba70d5561172d2c617081082bad55a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "name": "json_safe",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L280-L352",
      "signature": "def json_safe( value: Any, *, max_string_length: int = 512, max_collection_length: int = 1000, _depth: int = 0, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8cea23e7a6f3ea15b5b863eb787c455db9aaa0358c75665ffd36b71be591af9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "name": "load_connection_config",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L119-L167",
      "signature": "def load_connection_config( *, require_auth: bool, environ: Mapping[str, str] | None = None, ) -> ConnectionConfig",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8b037658679ead402283a72ef9f0fe19cce5ea995091b999016291f2f2df567",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L476-L486",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e8b29236140eff2ae71ca165f0ae6bb82deb4879ad2b1591c8f388bf6a79cf9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#OutputPathError",
      "name": "OutputPathError",
      "kind": "class",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L37-L38",
      "signature": "class OutputPathError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1f6fb5fd91aa4d0f275d6b172e5781f999deb19647e9787d8ac27436e411536",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#parse_bool",
      "name": "parse_bool",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L73-L82",
      "signature": "def parse_bool(value: str, *, variable: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "a99485de67746e03e1e332ee8bd6c35519d7db22a051ce72acbc1379963f3636",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#parse_port",
      "name": "parse_port",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L106-L116",
      "signature": "def parse_port(value: str | None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3e0eee74031806614e0bf78e288cb8fe75f4cc73f0fe8ab1e3fad3b9a2dd75e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L355-L364",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d46b7b933fa4a81fd70d9220af334a96bd1d7f753b6af4436606d77d20bb9596",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#require_secure_transport",
      "name": "require_secure_transport",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L193-L204",
      "signature": "def require_secure_transport( config: ConnectionConfig, *, allow_insecure_transport: bool, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "291bebb67f07a52a40641a892ce28853db9f22812342264f4a09f659796fc244",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#scrubbed_error",
      "name": "scrubbed_error",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L467-L473",
      "signature": "def scrubbed_error(error: BaseException) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3175d9ebfd5687208e79e596b0842990dbd1df65e8202f089f3ab283044d784",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#take_bounded",
      "name": "take_bounded",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L258-L264",
      "signature": "def take_bounded(iterable: Iterable[Any], limit: int) -> BoundedResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "fed4dac9a166895da920806c6756a80b284b4231631ea70a31469f1d8f8d0927",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#unwrap_omero",
      "name": "unwrap_omero",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L267-L277",
      "signature": "def unwrap_omero(value: Any) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "23e4779063f160abffed4df590f025a34377e42dfe51523e6f5afbb9f337d6aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/omero_common.py#validate_host",
      "name": "validate_host",
      "kind": "function",
      "path": "skills/omero-integration/scripts/omero_common.py",
      "span": "L85-L103",
      "signature": "def validate_host(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fa9ea78c235987f2a6c91001ea7020aeb7ed56b3880084f9e08637790b57d9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py",
      "name": "plan_transfer.py",
      "kind": "file",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L1-L394",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7c5fd35ba567f785039aa6587774cc02d92bba106252ea69a40b8bea1ab22217",
      "chars": 11861,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L53-L132",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ed9b7222c5647c79935cb50650bd898695e5976d71f14e6ec905c234b1e5fb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#image_selector",
      "name": "image_selector",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L45-L50",
      "signature": "def image_selector(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f82f617495e5350ca1a732385922cefa2e7424406adff93185b22f7d5ca34560",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#import_target",
      "name": "import_target",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L36-L42",
      "signature": "def import_target(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d467eddc3bf30b1fd8bf343e901b4d9d32213422449e0bf9a3fdde18b6d5d99c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L367-L389",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a862a039dbe7220e3c1f1d432839b2a2486ea4b00427ab2edb76b055755c8a94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#path_depth",
      "name": "path_depth",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L135-L137",
      "signature": "def path_depth(root: Path, current: Path) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "efd19123609a7f526fd37f15533e4d4f898f33e833f4e1f5bbd5b1ac6c69dd1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#plan_export",
      "name": "plan_export",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L296-L364",
      "signature": "def plan_export(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e939ef07de754962ef2d0930b18e307d45c349429484b5e0b15a1828373cd7e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#plan_import",
      "name": "plan_import",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L214-L280",
      "signature": "def plan_import(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5225ffa01273666106ca5e16de416f3ee596222ec9388549660d461ffdd38fd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#positive_argument",
      "name": "positive_argument",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L26-L33",
      "signature": "def positive_argument(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f343739105c30ca70b007d209edc1db43dded7988b86f021d6eca4b7e5cf2ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#scan_import_path",
      "name": "scan_import_path",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L140-L211",
      "signature": "def scan_import_path( raw_path: str, *, max_files_remaining: int, scan_depth: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "597fcdb887cb57d14a885deb519c5371093f3c86adc33df237995a7f8ac620fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/plan_transfer.py#validated_output_directory",
      "name": "validated_output_directory",
      "kind": "function",
      "path": "skills/omero-integration/scripts/plan_transfer.py",
      "span": "L283-L293",
      "signature": "def validated_output_directory(raw_path: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6ee1ac887a848d7d2575ff656702867e19d05dc761a3df5a2b2ddea5bd9a952",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/validate_config.py",
      "name": "validate_config.py",
      "kind": "file",
      "path": "skills/omero-integration/scripts/validate_config.py",
      "span": "L1-L141",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6aa84d202401a684cb2dd12acf7104a76a75fa362be0c8a838c5e551333e54f3",
      "chars": 4146,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/validate_config.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/omero-integration/scripts/validate_config.py",
      "span": "L20-L48",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce136507d4ee4d33fe4dfc5e400a676fde6dae9f53f20d481e42c5ac594de5ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/validate_config.py#format_text",
      "name": "format_text",
      "kind": "function",
      "path": "skills/omero-integration/scripts/validate_config.py",
      "span": "L70-L86",
      "signature": "def format_text(payload: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d07a2e8321a9e3d47c1940b14970d73a00caa57afd5106ff43541917c7db1617",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/validate_config.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/omero-integration/scripts/validate_config.py",
      "span": "L89-L136",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b41a92030db96a3669f4d2c2b2fb0420ee114dd03e58a17f8129d48e8313e64a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/omero-integration/scripts/validate_config.py#resolve_host",
      "name": "resolve_host",
      "kind": "function",
      "path": "skills/omero-integration/scripts/validate_config.py",
      "span": "L51-L67",
      "signature": "def resolve_host(host: str, port: int, *, limit: int = 10) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0955799e867d5fd11d076612858b71cb3557fd8ea3c2cdff9a54ce3a1ea489d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py",
      "name": "onekgpd_api.py",
      "kind": "file",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L1-L795",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6e7877237a628d08de6e773a945aae45d44dca33096fdf3f738b11234abf8d28",
      "chars": 30401,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_add_annotation_flags",
      "name": "_add_annotation_flags",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L661-L689",
      "signature": "def _add_annotation_flags(p: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7f99a3370701efde4713fcf8295fb130716e09ea4162a75d81e69f1fb54a795b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "name": "_build_annotation_filter",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L190-L218",
      "signature": "def _build_annotation_filter(args) -> AnnotationFilter | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "00d45547bf72957f3b350bedb3d2817411209983400dac5aa1ad4321517a00b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "name": "_build_regions",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L132-L151",
      "signature": "def _build_regions(args) -> tuple[Region | None, list[Region] | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "25f0a5b3138f3eab0f1b37b6ee4347c8921d18d07a9a0e3e6e5f53343e2c77c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "name": "_call_with_retry",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L97-L110",
      "signature": "def _call_with_retry(fn)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0fffbec19e78d199fdb65ec16130a153f076db7315f83474e38600372a1e56db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_chr_to_str",
      "name": "_chr_to_str",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L226-L228",
      "signature": "def _chr_to_str(chrom) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6d548af41fedd876aa0fdaa0e0afb52b13626d936494605d9bfc52e0e4ecf253",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "name": "_emit",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L89-L94",
      "signature": "def _emit(data: Any, prefix: str, summary_lines: list[str], output: str | None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "77ec3da137a4ad5878fe9d1e8b89bfe5d5a033f0583139a00110969f1aff9eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_fail",
      "name": "_fail",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L65-L68",
      "signature": "def _fail(msg: str) -> NoReturn",
      "exported": false,
      "origin": "ast",
      "body_hash": "669e73a65bd61bfa04d4ceacfa6f0658544ff6d9daadaaff79b4ceb3a4a32b92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_filters_echo",
      "name": "_filters_echo",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L277-L295",
      "signature": "def _filters_echo(args) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "0f1f9ffe29302a894318394f63fd9daa21ffc2f60987496b1bffc5bfb576d62f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_parse_region_str",
      "name": "_parse_region_str",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L118-L129",
      "signature": "def _parse_region_str(s: str) -> Region",
      "exported": false,
      "origin": "ast",
      "body_hash": "9d0f22516f2b19f65f08c064d7d136d9b2c1e890bc31471a592f10d090534738",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "name": "_region_label",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L235-L238",
      "signature": "def _region_label(region: Region | None, regions: list[Region] | None) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "73e54f359153a0d89b7fe84adb929e7acb978e9581088194de4d65e505baa6bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_region_one_label",
      "name": "_region_one_label",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L231-L232",
      "signature": "def _region_one_label(r: Region) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b0c728f2af4dfc812043398bcd544312c6a75925e3103dfeffb9976a2a38ffc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "name": "_request_echo",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L298-L315",
      "signature": "def _request_echo(args, *, samples, region, regions, hom, het) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "4a64caaea5c1f1b0036dcb6e3e6571d892e29d4e3844a6597848c7191a02d3c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "name": "_run_count_variants",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L323-L357",
      "signature": "def _run_count_variants(args, samples: list[str] | None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ffea8d7d36c59822d298b27945e7adfe722d0c995859e85799cb629adb6d97a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L328-L339",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c0c34c98f715d8779d63ff890c570662019aa109434993f5ef466ce77192e24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "name": "_run_select_variants",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L360-L435",
      "signature": "def _run_select_variants(args, samples: list[str] | None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a942343011679bd7635a370b24603bafb0d0190dd83df003b7e9078ac254e0e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L367-L398",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5560440d57bfdf362a07898fb865090409a9e8cc6349ac18cd42e6eaf79d380",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_save_json",
      "name": "_save_json",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L76-L86",
      "signature": "def _save_json(data: Any, prefix: str, output_path: str | None = None) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "4215a3687c6f873eca44392cb5de1fefa892a040a9f7f3ea2b52d4429935090c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_split_csv",
      "name": "_split_csv",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L71-L73",
      "signature": "def _split_csv(s: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1cbbd3814cc2a9faeec0acd8b1b378916f78459916b6ee86dd9eb12f93e98b9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_variant_to_dict",
      "name": "_variant_to_dict",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L249-L274",
      "signature": "def _variant_to_dict(v) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "e8df61bb79993395be14acc496ea58ffd1d3a194fa6ce16c1ddb8555ca3b5b64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "name": "_zyg_label",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L241-L246",
      "signature": "def _zyg_label(hom: bool, het: bool) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "721cc352730bbc86c440ef148d760b8a87690e4cf5836e47dfe6b77007076245",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#_zygosity",
      "name": "_zygosity",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L154-L160",
      "signature": "def _zygosity(args) -> tuple[bool, bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9c5f0b50482a2980e63394ca59298fa1d8ea0b8f1eb7be69abe92a27db4a5d3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L692-L780",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8b9f88d9d393553e7d4bf8d751776eaf5ce84fd3176d804edd17e33a3e1859a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "name": "cmd_count_samples",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L454-L487",
      "signature": "def cmd_count_samples(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "874645c3a9b18322094ec41f8c562476bf0e3729ca790ce3d37bd8f3ecba976f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref",
      "name": "cmd_count_samples_hom_ref",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L539-L565",
      "signature": "def cmd_count_samples_hom_ref(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dcab80b25646b76564a3a08e4c3ff115bb7061cf1b0f561a4b727b768961cf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L540-L542",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7ebb12348102e0d4fbe9d65095d1191ae7b51db3a14e793319e10b39e8bd345",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L459-L469",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "495553d5aea4a6c444f901fd36566bdcb41012958976a407f648e6049d7ca8b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants",
      "name": "cmd_count_variants",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L438-L439",
      "signature": "def cmd_count_variants(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "720d6dd2064bcd78760db5b2ea32aaa672fa8fc9dc034d21ac3f9e0927bff8ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants_in_samples",
      "name": "cmd_count_variants_in_samples",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L442-L443",
      "signature": "def cmd_count_variants_in_samples(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "25a8afe6f4bc095226febc3d2be8ebf2db03983cb8e03ceb016677891cb4a5c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info",
      "name": "cmd_dataset_info",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L619-L653",
      "signature": "def cmd_dataset_info(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a52081fcfea3e8326d22b317bc69be4dec33b53685a3077b5b21d73b57f6998",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L620-L622",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "65dcb2606ed2684a431403b2ebe25216ef633a821df76625732bab19cfec152f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship",
      "name": "cmd_kinship",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L590-L616",
      "signature": "def cmd_kinship(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf9936a3d3e77bd2ace20e9d028e30aa51f460dc33277d37e50e814527ad01d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L591-L593",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "8def8f13e24d20224b9afdd443e5a4cf92b44f9047687c5fb28167254b86abce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "name": "cmd_select_samples",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L490-L536",
      "signature": "def cmd_select_samples(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "326074cf6bd68298a19a012fda79039adf35d0f858b6b0aedcaaddc805c11974",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref",
      "name": "cmd_select_samples_hom_ref",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L568-L587",
      "signature": "def cmd_select_samples_hom_ref(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d553827fb2f05f3b569be619bc7519afcb79166195917350defe8a798b9fd150",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L569-L571",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "82fda7a450c71388d657510b5a0741b25e59f2874d9d518389ab8ccb7432cfbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L495-L507",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc857f26ed090137dfcb719603738ded2d7be7b5f0f08cd72dd1ad28199888f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants",
      "name": "cmd_select_variants",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L446-L447",
      "signature": "def cmd_select_variants(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5c9c478c4b5d68ec528433483fd9d8f55b8ba12a16b3cff0cf48cdb8b4fe0a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants_in_samples",
      "name": "cmd_select_variants_in_samples",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L450-L451",
      "signature": "def cmd_select_variants_in_samples(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "47d1c269d5e34f087f5c750b0c4137790ab5bb850d27f62dff898d6d10faebed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_api.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_api.py",
      "span": "L783-L790",
      "signature": "def main(argv: list[str] | None = None) -> None: # Incompleteness is surfaced via result metadata and the summary, not warnings.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5b701141fdb6b056b27d3c8106e5e8f0547e13174af25c4216b1838facc213c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py",
      "name": "onekgpd_meta.py",
      "kind": "file",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L1-L486",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "57c48f2120ad2a0d29b7995373350fbc8ae898e5376f3be131056982d404e6db",
      "chars": 19383,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_children_index",
      "name": "_children_index",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L122-L135",
      "signature": "def _children_index(records: list[dict]) -> dict[str, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "918b500119ae4f2498b231c2fc5ea030cafabe5530f47a7bbb992cb1519110ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "name": "_emit",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L82-L87",
      "signature": "def _emit(data: Any, prefix: str, summary_lines: list[str], output: str | None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "77ec3da137a4ad5878fe9d1e8b89bfe5d5a033f0583139a00110969f1aff9eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "name": "_fail",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L58-L61",
      "signature": "def _fail(msg: str) -> NoReturn",
      "exported": false,
      "origin": "ast",
      "body_hash": "669e73a65bd61bfa04d4ceacfa6f0658544ff6d9daadaaff79b4ceb3a4a32b92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "name": "_load_records",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L97-L104",
      "signature": "def _load_records() -> list[dict]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7e017423bbd25b37a9c62fabc843fc5d05888658b9588bef291eab240b909cc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_none_if_absent",
      "name": "_none_if_absent",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L117-L119",
      "signature": "def _none_if_absent(x: str | None) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a19e6b6a8b1a614186f324ad1611dea31c0433930f9bfd021c9fc1515a20d0d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_none_if_empty",
      "name": "_none_if_empty",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L112-L114",
      "signature": "def _none_if_empty(x: str | None) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "333f106e8ce0a770f850b823f98ffc28ed11a14e55e230b8abed366aed1a5307",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_population_stats",
      "name": "_population_stats",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L161-L179",
      "signature": "def _population_stats(records_subset: list[dict]) -> dict[tuple, dict]",
      "exported": false,
      "origin": "ast",
      "body_hash": "94f755e872b85861eede9e9d2cc317911d39549e3eb58b6a332e0f391494f520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_present",
      "name": "_present",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L107-L109",
      "signature": "def _present(x: str | None) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "2c582c4115042eef7c6dd4bf221df9a5fa151bcab5d8a43cde8ad7171c0936ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_save_json",
      "name": "_save_json",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L69-L79",
      "signature": "def _save_json(data: Any, prefix: str, output_path: str | None = None) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "4215a3687c6f873eca44392cb5de1fefa892a040a9f7f3ea2b52d4429935090c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_split_csv",
      "name": "_split_csv",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L64-L66",
      "signature": "def _split_csv(s: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1cbbd3814cc2a9faeec0acd8b1b378916f78459916b6ee86dd9eb12f93e98b9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_stats_obj",
      "name": "_stats_obj",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L182-L193",
      "signature": "def _stats_obj(key: tuple, g: dict) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "26cf8269f2ca92b9d5014e94e4ddd6c3a97742494e0e106ff1ca085523a2246d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_pop_lower",
      "name": "_valid_pop_lower",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L138-L144",
      "signature": "def _valid_pop_lower(records: list[dict]) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "46c54365afb121d809c6bc34806c08562f9cad150b0afc5f560d08201504336c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_reg_lower",
      "name": "_valid_reg_lower",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L147-L153",
      "signature": "def _valid_reg_lower(records: list[dict]) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8bf5c944c22e09aa0903dcba935cf8d0a5a590fa8e652c3475e4ad267443d558",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L431-L473",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "09d8d030dfed667935e478cf388d4d1668d3ac08b315308d30b3a45b0a49982f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_populations",
      "name": "cmd_list_populations",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L243-L269",
      "signature": "def cmd_list_populations(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52d141f4cab0c72c21a549ad3579549061b829fa17f7c5208c302cab9b862f08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_superpopulations",
      "name": "cmd_list_superpopulations",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L272-L296",
      "signature": "def cmd_list_superpopulations(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c1c9791cd44efd658ef35ef212fabae200e92f860bd096c53c956b801f9880a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "name": "cmd_population_stats",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L299-L325",
      "signature": "def cmd_population_stats(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "363b64e65b803729a58890c6ae9d5736e271ec39a34c8922d92cd1f61269637d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "name": "cmd_sample_metadata",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L201-L240",
      "signature": "def cmd_sample_metadata(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d4073ab02aa25c5471dcb2449a5b1492acd87b878fa9fc237d84377fc55853d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "name": "cmd_select_samples_by_population",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L376-L423",
      "signature": "def cmd_select_samples_by_population(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "295037cc82cb1fcf07db4b1a5d6565334a21e71a887cfc4ed48b647105f17003",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population.match",
      "name": "match",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L398-L403",
      "signature": "def match(r: dict) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb41365ed790891ecc1b51a9271835c9e8313860095c22bdca997e6ccde6145d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "name": "cmd_superpopulation_summary",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L328-L373",
      "signature": "def cmd_superpopulation_summary(args) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18a7a7133a64a64266c7590036c47207179448b894e242703335183913aefaa9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/onekgpd/scripts/onekgpd_meta.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/onekgpd/scripts/onekgpd_meta.py",
      "span": "L476-L481",
      "signature": "def main(argv: list[str] | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53e5dda8ec121f6575f6319b07aa05e0ffa8ed4e21ef2b1c1e40f34f6060cb01",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py",
      "name": "id_client.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L1-L319",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "14ba420f87cdd53436ccda75ba6d8b618d8472bf5e6ef1bac59bfc2c5b7b9241",
      "chars": 11798,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#_detail_from_body",
      "name": "_detail_from_body",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L89-L96",
      "signature": "def _detail_from_body(body: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "e389334f75fe4d81a3661d09d1c5d27ed7637e8ade188891dfa95f3cc75d29ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "name": "_request",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L66-L86",
      "signature": "def _request(url: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "5ae1c371b2716902783eb7748ae85af60eaab8f292fb80c3fc10d94abb9950e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#apply_uri_format",
      "name": "apply_uri_format",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L179-L183",
      "signature": "def apply_uri_format(uri_format: str | None, local: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "795f73b1a41c0f8a930cad8089d2f1dc2f51d53ba0bec0bcdcd22cc4671e1938",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#classify_prefix_query",
      "name": "classify_prefix_query",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L252-L318",
      "signature": "def classify_prefix_query( query: str, resource: dict | None, *, local: str | None, reference_detail: str | None = None, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "c13dd8be23444b7afe3b01222771cd693e49b436446fe0522a3faa3f21517385",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#compact_id_from_identifiers_url",
      "name": "compact_id_from_identifiers_url",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L202-L207",
      "signature": "def compact_id_from_identifiers_url(url: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52407971dc84c4237e3753ce8babf0e2e12db63a6a597afbcca3e7cebe17e204",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#get_reference",
      "name": "get_reference",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L105-L112",
      "signature": "def get_reference(curie: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b3e94461d4d2a96f8d0360768d179d81eb06bb4fbb4bc8d36f4ca6cb72f90b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#get_resource",
      "name": "get_resource",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L99-L102",
      "signature": "def get_resource(prefix: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "aaea7a2f81392e699c503ae98662da915a3ac229ed0e7aea2b6329fae89e13a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#identifiers_landing_pages",
      "name": "identifiers_landing_pages",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L234-L249",
      "signature": "def identifiers_landing_pages(payload: dict) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "09fc046b610de2dff04e1c947509061a492c2d3c782aa3b6b37a7afc78f07a92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#identifiers_resolver_url",
      "name": "identifiers_resolver_url",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L115-L122",
      "signature": "def identifiers_resolver_url(curie: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9fa81f8d487d4beeb6949157798ba72d9ec363db466359ea944a28c3a363df1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#IdError",
      "name": "IdError",
      "kind": "class",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L53-L54",
      "signature": "class IdError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8c7179fc34ef9e4679151599f4008f87477570a9294db85fcbbebe18887da52",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#is_prefix",
      "name": "is_prefix",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L160-L162",
      "signature": "def is_prefix(value: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f7cbd1f5977e93b3caa54c78cbe4a4191eabe38260cf5d446c6b9e8674488b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#landing_page_urls",
      "name": "landing_page_urls",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L210-L231",
      "signature": "def landing_page_urls( resource: dict | None, reference: dict | None, iri: str | None, ) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "001d07a4230218a3a9fb53091359086eaad13d9754579eddc10df38a2b3761b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#local_matches_pattern",
      "name": "local_matches_pattern",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L165-L176",
      "signature": "def local_matches_pattern(local: str, pattern: str | None) -> bool | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca4f2c018da776909a0ca63e04087d0cdecb91fb916abfef969174424895a12e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError",
      "name": "NotFoundError",
      "kind": "class",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L57-L63",
      "signature": "class NotFoundError(IdError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "07bd380f06079417dd0d58c1f51872aa6b27e5431465ad93b4869a75a4fb56ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L60-L63",
      "signature": "def __init__(self, detail: str, url: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9367b768dbc9304ee27390318f85c81c4247fb4da51e235b198f7bfc4f40d5f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NotFoundError"
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#ontobee_url",
      "name": "ontobee_url",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L186-L199",
      "signature": "def ontobee_url(ontobee_prefix: str | None, iri: str | None) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "960a5acd49a4a73bce24a197c2cda4f240475ec2ba3689397390ce092757d350",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#resolve_identifiers",
      "name": "resolve_identifiers",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L125-L145",
      "signature": "def resolve_identifiers(curie: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "0846b15377b4816038549bd2e463469e04c2b4f6715b0991b0e762532c18309a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/id_client.py#split_query",
      "name": "split_query",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/id_client.py",
      "span": "L151-L157",
      "signature": "def split_query(value: str) -> tuple[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "45baa4e3462b254177f4e798f18668aa071485f7bb23352ffcb40d9aa6531223",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "name": "lookup_prefix.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "span": "L1-L212",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1c74cc05ebb84c1dd25d780b9035bd3197dd045a792337286bfa9c55e10fe289",
      "chars": 6429,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/lookup_prefix.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "span": "L165-L182",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed19b6088fb1e342f0fd3928d1fa6428f90c1192ad8e72d4f851ddc6ca8de967",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "name": "lookup_one",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "span": "L85-L145",
      "signature": "def lookup_one(value: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "047f9953db550e96c5620bdf5f7b313777811f135ee351065bb48f0ae674f98d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "span": "L185-L207",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3788b6b9a67c4771d8eb190b01bed491b573f0a10a99edec27136cf9a1ed4d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/lookup_prefix.py#read_inputs",
      "name": "read_inputs",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "span": "L58-L82",
      "signature": "def read_inputs(args: argparse.Namespace) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c7baf05b63fcea45df94e1ac02fca48f59f9e3e0131fc9ddfc37da8db9d8f1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/lookup_prefix.py#write_output",
      "name": "write_output",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "span": "L148-L162",
      "signature": "def write_output(results: list[dict], fmt: str, output: str | None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "013672cec213371706af8b5bdb417da89b4799c58a8ea41baa90db602f9b7e43",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py",
      "name": "map_terms.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L1-L231",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6284a862d6388a0b9e60d814289aeb0d208adee859a19ded4ea3d4ff9abae3b2",
      "chars": 7344,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L152-L187",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "da02817f0ad6f47de0a1e141f6264707223d03fbe5e7de566b38caf01a113e3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L190-L226",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca25c708c602fd15038de84d437870a3be02e2d40b88385fbe2e1f474c437162",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py#map_one",
      "name": "map_one",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L77-L95",
      "signature": "def map_one( text: str, *, ontologies: list[str], property_type: str | None, top: int, safe_only: bool, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ce907b173a2640c965b02a5059718704e71abef8ce66a04970302201536b855",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py#read_inputs",
      "name": "read_inputs",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L50-L74",
      "signature": "def read_inputs(args: argparse.Namespace) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d637fefc73b98f34adfa3fd5b0f5a2ebe30f7a825111201fa1cdadf57ee995c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py#to_rows",
      "name": "to_rows",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L98-L132",
      "signature": "def to_rows(results: list[dict]) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "88543682eb3f6a907371b3ad9ef79482b04f328840b24b2305ba80b46ac909a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/map_terms.py#write_output",
      "name": "write_output",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/map_terms.py",
      "span": "L135-L149",
      "signature": "def write_output(results: list[dict], fmt: str, output: str | None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52f8d1f7d94b036cbf8e7934dc12eb73699f65a40e6e7dea2d0d16fc4befaa1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py",
      "name": "ols_client.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L1-L342",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4ecf42ef4636f72a9823db162c6a344bd8b3c3da58db2b9a64dd50e3918981b0",
      "chars": 12458,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#_request",
      "name": "_request",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L61-L84",
      "signature": "def _request(path: str, params: dict[str, Any] | None = None) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "07d7a6bf843ff97bc59bf241a20b7a3772e211e2922cc6523c27d6efd142e7a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#_terms_by_iri",
      "name": "_terms_by_iri",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L130-L138",
      "signature": "def _terms_by_iri(iri: str) -> list[dict]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ff5a2f4c5e751fe4a95b75867478a60c2f3fd5eb7cc0c6bcce1fafb6b7621521",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#ancestor_curies",
      "name": "ancestor_curies",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L196-L223",
      "signature": "def ancestor_curies(curie: str) -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "82c2ab65e647ff5f068096e701b1757d1aa093c25c0a6700e6587459836551da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#candidate_iris",
      "name": "candidate_iris",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L118-L127",
      "signature": "def candidate_iris(curie: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ab5a4e4452c70a7c79476abef32353538117705b26753fe8eb5b354917e3939",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#curie_to_ontology_id",
      "name": "curie_to_ontology_id",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L236-L246",
      "signature": "def curie_to_ontology_id(curie: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "861065caf45b1911529e1bb3e68f532ca432b35c1f1cfc2e788cadcaf649b995",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#dedupe_candidates",
      "name": "dedupe_candidates",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L308-L325",
      "signature": "def dedupe_candidates(docs: list[dict]) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c65f1efcf351035343510da916e50d442ec88aef9495db52e73897e12f7cd4e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#iri_for",
      "name": "iri_for",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L190-L193",
      "signature": "def iri_for(curie: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0769f76551c33c0487749043356c03154b506fd9b3066d186ad9c3bbbbd022b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#iri_to_curie",
      "name": "iri_to_curie",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L249-L265",
      "signature": "def iri_to_curie(iri: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62347bce6588b3f6f1bb0bea99bc90d0721686594eee015add1f688e5c16877b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#is_curie",
      "name": "is_curie",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L231-L233",
      "signature": "def is_curie(value: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "5974acfaa01c1aedd2f27726e572051529d71fe25ff9b6529239bc17a788dca7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#match_type",
      "name": "match_type",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L294-L305",
      "signature": "def match_type(query: str, doc: dict) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "727bfb3ade80157e2b77b910aec6aa8f09e5f0ecc117cec124c418441f9859b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#normalize_label",
      "name": "normalize_label",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L268-L274",
      "signature": "def normalize_label(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd74e44d1dfe216c82a5318084645ab82b8d41f4e834d7da50be20b0650fc7d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "name": "OlsError",
      "kind": "class",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L57-L58",
      "signature": "class OlsError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91efb4a43bbdfc1f7751576f75ddae5b1cd9fbb1753ba645b23a5cc8329fbe56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#rank_candidates",
      "name": "rank_candidates",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L328-L341",
      "signature": "def rank_candidates(query: str, docs: list[dict]) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0655a19ad7609a33e60de3a7c5d7148f9a85534b258c4b919ee393f3fb9aee4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#search",
      "name": "search",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L87-L115",
      "signature": "def search( text: str, *, ontology: str | None = None, query_fields: str | None = \"label,synonym\", exact: bool = True, subtree_iri: str | None = None, rows: int = 10, include_obsolete: bool = False, ) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e477a56fdba9a3fb261b498c81393bbb4d5eb74d664938115ea072e27aeade86",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#synonyms_of",
      "name": "synonyms_of",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L277-L291",
      "signature": "def synonyms_of(doc: dict) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bd938d9bf2349af9e492e6319de4402e5832db844301d2573f5e36e015bc8bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "name": "term_detail",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/ols_client.py",
      "span": "L141-L187",
      "signature": "def term_detail(curie: str) -> dict | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aecf1eb55f5bd4dde347357b0bcaffd14468b83ae647747ca1a78b08506172a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "name": "resolve_terms.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L1-L256",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ccd413a8e042dfb89f00a7a9c64db05d9312dda807772c2c7a3b1f380c1347a0",
      "chars": 8160,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L172-L202",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5c4697d75a9b394c0261eab40e8ec361509d350ac59314316999dcded3d5249",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L205-L251",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "60efdace44970fceaf036a0990b465a136a3c0c096244fd04ea8a55bdda40e63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py#read_inputs",
      "name": "read_inputs",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L66-L91",
      "signature": "def read_inputs(args: argparse.Namespace) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a5fdfee043c1908339afbc78b6b4943c0061dd36b191c8969d04f459494bf4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py#resolve_one",
      "name": "resolve_one",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L94-L115",
      "signature": "def resolve_one( text: str, *, ontology: str | None, subtree_iri: str | None, rows: int, exact_only: bool, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e923dbf6891e1d4369b238d19f6bb8f61cde064ba5777afc25e8b12b4a35b19",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py#to_rows",
      "name": "to_rows",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L118-L151",
      "signature": "def to_rows(results: list[dict]) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "131ae34d62309a1bcc76890dc12bb36c9edd13957cf408343fd367763e78139b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/resolve_terms.py#write_output",
      "name": "write_output",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "span": "L154-L169",
      "signature": "def write_output(results: list[dict], fmt: str, output: str | None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "656ef43d2f616bc3b27c79ed31e2146cb4c782d04f4a59d3d3d7ad0216ff59de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "name": "validate_terms.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "span": "L1-L298",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a496a1b7e958ed8c7cf0de9561e005b46833d24e309e7e65d61e1697fddda695",
      "chars": 9746,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/validate_terms.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "span": "L226-L250",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "158408eee6c43b5cf028f25cc1b4f9a0cf4868dd209c1a1e8b7c929ea2a1fdb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "name": "check_term",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "span": "L105-L205",
      "signature": "def check_term( curie: str, expected_label: str | None, *, branch: str | None, expect_ontologies: set[str] | None, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "d84546895df60878f1e8b800759ab788f7bdaf9c7672ddb8389c380d8e2c1916",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "span": "L253-L293",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "35f6b6c883d30b23e80d8d77c7be2bbe6cee950d99fe563f02942fd5113b1bd7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/validate_terms.py#read_pairs",
      "name": "read_pairs",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "span": "L65-L102",
      "signature": "def read_pairs(args: argparse.Namespace) -> list[tuple[str, str | None]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b93e9e10daa43bb496834ec1395b67ec5461aa211ac5a3af50b7ff19802d7ca7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/validate_terms.py#write_output",
      "name": "write_output",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "span": "L208-L223",
      "signature": "def write_output(results: list[dict], fmt: str, output: str | None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3440af9c432f57fe7df4f5329be2104ff00bda93c50046cc4cb6ea616d6dca87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "name": "zooma_client.py",
      "kind": "file",
      "path": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "span": "L1-L131",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "83c01bf886ae44f3dd4989b49a31b35f3ccf059efe3a7e612d9e99277bd16a8b",
      "chars": 4619,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/zooma_client.py#annotate",
      "name": "annotate",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "span": "L56-L92",
      "signature": "def annotate( text: str, *, ontologies: list[str], property_type: str | None = None, ) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b94ff77806bd00e2e883c0474aae231c808937914dc1aa707334e9dd5ec7b5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/zooma_client.py#flatten_hit",
      "name": "flatten_hit",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "span": "L95-L130",
      "signature": "def flatten_hit(hit: dict) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "060879a4536f5d468263f929fde2dfe0ffacca0a83a4f44f3b98e5cf981f284f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/zooma_client.py#ontology_filter",
      "name": "ontology_filter",
      "kind": "function",
      "path": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "span": "L44-L53",
      "signature": "def ontology_filter(ontologies: list[str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ffa39144884e1de115ae49b6fa7daa6204aed08c3fbb674a731519cee4734f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/ontology-term-resolution/scripts/zooma_client.py#ZoomaError",
      "name": "ZoomaError",
      "kind": "class",
      "path": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "span": "L40-L41",
      "signature": "class ZoomaError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b605c0a8d365d28e2669f61d94bf2d0fc2c335df3869a607febd1cb49c5fa6d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py",
      "name": "chat_interaction.py",
      "kind": "file",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L1-L191",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d3b843b69ef8969745d9762b00e6baa32be6f5572b6b80f17c8eb96f86b13cfa",
      "chars": 6230,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#ask_question",
      "name": "ask_question",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L118-L127",
      "signature": "def ask_question(query)",
      "exported": true,
      "origin": "ast",
      "body_hash": "219624bcf469143a4700a3a22b38952f25adaa76998818d19ed9060e1ef75491",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#build_context",
      "name": "build_context",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L86-L98",
      "signature": "def build_context(notebook_id, source_ids=None, note_ids=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b983684f9bc598561de6fee739b9cc3d340d99c1661a0a855391fe91a0fd1536",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#create_chat_session",
      "name": "create_chat_session",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L21-L33",
      "signature": "def create_chat_session(notebook_id, title, model_override=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "00a83170e8e014de545b2ab5d78586fff25e9f168835b48ce962ad412425eedb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#delete_chat_session",
      "name": "delete_chat_session",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L130-L134",
      "signature": "def delete_chat_session(session_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3a1e826137c34ae51a26822a264f38c8060a6b84aeaea77a7bdfaf8354054f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#get_session_history",
      "name": "get_session_history",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L72-L83",
      "signature": "def get_session_history(session_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b85b01866c00b8dbe560072744acf033e5abd61060425cf210e3172bfe47068",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#list_chat_sessions",
      "name": "list_chat_sessions",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L36-L48",
      "signature": "def list_chat_sessions(notebook_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c642befe4ab0efe651d4325abafa130bcca023cad8373aa2b4d5b49b8e682ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#search_knowledge_base",
      "name": "search_knowledge_base",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L101-L115",
      "signature": "def search_knowledge_base(query, search_type=\"vector\", limit=5)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e0d0a42703c01763ca246f20ad313099c1e7d0b310f768a0dac7b2488ef47d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/chat_interaction.py#send_chat_message",
      "name": "send_chat_message",
      "kind": "function",
      "path": "skills/open-notebook/scripts/chat_interaction.py",
      "span": "L51-L69",
      "signature": "def send_chat_message(session_id, message, include_sources=True, include_notes=True, model_override=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "43647d6b2aa3590ccbb0044f67fcf3ffe325f8fb7666866e6816535869a774bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py",
      "name": "notebook_management.py",
      "kind": "file",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L1-L143",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "012815f018be883d7e09d615b483d3a424127af64d5b0a681dd39efc2d150d92",
      "chars": 4173,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#create_notebook",
      "name": "create_notebook",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L21-L30",
      "signature": "def create_notebook(name, description=\"\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "5837742609b67e96d0d003cd078b3228472c6ebb908d39c03f4c21ae2df2df9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#delete_notebook",
      "name": "delete_notebook",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L73-L87",
      "signature": "def delete_notebook(notebook_id, delete_sources=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc4170fa6a5278258def2b0a03f51615c540286d241a3316dd16a493fec81437",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#get_notebook",
      "name": "get_notebook",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L48-L52",
      "signature": "def get_notebook(notebook_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7004b8bfd49bcba7e5ae2502b7b7865ab80057b2312172cd9696ed0c9839403",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#link_source_to_notebook",
      "name": "link_source_to_notebook",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L90-L96",
      "signature": "def link_source_to_notebook(notebook_id, source_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eed467b7cdc921b3973a189f41721c285f90cf5692b2047726552018a1a10935",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#list_notebooks",
      "name": "list_notebooks",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L33-L45",
      "signature": "def list_notebooks(archived=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "395f464b3283929e7adf846518d0fab4b493ad31c4493d3e3a1028522f4da548",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#unlink_source_from_notebook",
      "name": "unlink_source_from_notebook",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L99-L105",
      "signature": "def unlink_source_from_notebook(notebook_id, source_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecc6ce64663b9970407869e4188530d5c721dbfb24851e9411b8a1d007ae2a56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/notebook_management.py#update_notebook",
      "name": "update_notebook",
      "kind": "function",
      "path": "skills/open-notebook/scripts/notebook_management.py",
      "span": "L55-L70",
      "signature": "def update_notebook(notebook_id, name=None, description=None, archived=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0de8e64262e709a93cee9c03018e4eb694721c3a3f4ec8fa09259b9c3b9e2ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py",
      "name": "source_ingestion.py",
      "kind": "file",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L1-L161",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "124b43bde0bab5fafc7e43916ca7d78353583b47454adfbcf74ddcc509dcdafe",
      "chars": 4904,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#add_text_source",
      "name": "add_text_source",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L35-L45",
      "signature": "def add_text_source(notebook_id, title, text)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8713b6c70c16b745fdb2b903c09a8bdd845f0b001604e092316c69e7ea81d996",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#add_url_source",
      "name": "add_url_source",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L22-L32",
      "signature": "def add_url_source(notebook_id, url, process_async=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f0fdf2208ea6525b7bdb25519e370ec93f13620bf960c50d2b203a8606be747",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#delete_source",
      "name": "delete_source",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L114-L118",
      "signature": "def delete_source(source_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc40490734f9dbf9c0215db865ece7b9e10833d667a05f6d7d74160ce6cf95ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#get_source_insights",
      "name": "get_source_insights",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L99-L103",
      "signature": "def get_source_insights(source_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "87b8a530ac4987e7d6e955e0108f305a5076f74ec7547c38779bdb1dffe79dc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#list_sources",
      "name": "list_sources",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L85-L96",
      "signature": "def list_sources(notebook_id=None, limit=20)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4a114b5eb53f7616b48c1fcd0230b22740df87317b483fd4f2bfebdf4896ba2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#retry_failed_source",
      "name": "retry_failed_source",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L106-L111",
      "signature": "def retry_failed_source(source_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "22224de7eef2324eb87140646835f2a174a62f63f3169b23c0e6852d528375bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#upload_file_source",
      "name": "upload_file_source",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L48-L63",
      "signature": "def upload_file_source(notebook_id, file_path, process_async=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d8a8d7dc31acda3a276d239baea6b5d0215f0e9b2867af6ca60839fa8269006",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/open-notebook/scripts/source_ingestion.py#wait_for_processing",
      "name": "wait_for_processing",
      "kind": "function",
      "path": "skills/open-notebook/scripts/source_ingestion.py",
      "span": "L66-L82",
      "signature": "def wait_for_processing(source_id, poll_interval=5, timeout=300)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4d2899ac5dea03145136f1b57996e80deccdeada082804c7c9de099c3196350",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/openpiv/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5970d09bdec018a3082147b88d1d7d013a6836b92581f07bc8a6933a20a31ad6",
      "chars": 29,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/analyze.py",
      "name": "analyze.py",
      "kind": "file",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L1-L144",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "07f04fd6ee99241e97c75a6599ce8a824d84ccf35bdd0aff46cc4753e36c7506",
      "chars": 5628,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "name": "PIVAnalyzer",
      "kind": "class",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L12-L143",
      "signature": "class PIVAnalyzer",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b3c31143d4b14ceb6c53db0146924cf4e3995ea739baad0b070ac68bbd99adb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L21-L30",
      "signature": "def __init__(self, params_file: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "57894ac2bda8fd69b2ebd6d3cbc502ade3c3f4763ac64ad0b335e08910f84aa7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer._steps",
      "name": "_steps",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L54-L65",
      "signature": "def _steps( self, dx: Optional[float], dy: Optional[float] ) -> Tuple[float, float, float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5fe6e3f1099f3fc979c40e1f650e44dd227c42a8a0859a9e17b452a8bf57fa09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.axis_signs",
      "name": "axis_signs",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L40-L52",
      "signature": "def axis_signs(self) -> Tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cad3ce513a2a0bddb38055ca99f5481bf1864865b74a99828e6006d7b52c0b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_statistics",
      "name": "compute_statistics",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L125-L143",
      "signature": "def compute_statistics(self) -> Dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d871d5afa645bdda576eb409bd34f24fbf302bfda46d0569a4981f35b2c6f46",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_strain",
      "name": "compute_strain",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L114-L123",
      "signature": "def compute_strain( self, dx: Optional[float] = None, dy: Optional[float] = None ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]",
      "exported": true,
      "origin": "ast",
      "body_hash": "40415a92b5cc993e9d1e6a9ecdf575a35791e373514dc6fe8bd7e3a4cb85b19d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_vorticity",
      "name": "compute_vorticity",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L100-L112",
      "signature": "def compute_vorticity( self, dx: Optional[float] = None, dy: Optional[float] = None ) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "c56a4621055d271606633e8683ed6c0f85060b73fe8a5d2a8edf29a81fd14f8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.get_velocity_magnitude",
      "name": "get_velocity_magnitude",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L97-L98",
      "signature": "def get_velocity_magnitude(self) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c19c143fa7159e0a0a14fc0f42720ca320ffbd4c697c55108802b47e89d5ddc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.grid_spacing",
      "name": "grid_spacing",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L33-L37",
      "signature": "def grid_spacing(self) -> Tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6417abf13af6877e29f81a9bcb38a8134ce5b1d5344953c0137e546a5d1cf8b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.plot_vector_field",
      "name": "plot_vector_field",
      "kind": "method",
      "path": "skills/openpiv/scripts/analyze.py",
      "span": "L67-L95",
      "signature": "def plot_vector_field( self, scale: int = 50, width: float = 0.0035, save_path: Optional[str] = None, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "244310759a362c5c85604e554c66ce2e66bfa25373e07145af8eb19421641db8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PIVAnalyzer"
    },
    {
      "id": "skills/openpiv/scripts/run_example.py",
      "name": "run_example.py",
      "kind": "file",
      "path": "skills/openpiv/scripts/run_example.py",
      "span": "L1-L79",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2bb4fe062d428d2e46e6c5f0e53a074e5625308408bc8ce355e44dc6add94e6c",
      "chars": 2875,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/run_example.py#bundled_image_pair",
      "name": "bundled_image_pair",
      "kind": "function",
      "path": "skills/openpiv/scripts/run_example.py",
      "span": "L20-L32",
      "signature": "def bundled_image_pair() -> tuple[Path, Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ca7514a9cc1c23a278476624c8b7e87311ca3b31b85a23b571f1118129ef6fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/run_example.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/openpiv/scripts/run_example.py",
      "span": "L35-L74",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbd3530989d894c362c9c5e6f36bffb6d63f8379d791ccb774a57a589e985ca6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/runner.py",
      "name": "runner.py",
      "kind": "file",
      "path": "skills/openpiv/scripts/runner.py",
      "span": "L1-L215",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c6aaa1853ec9b0f2ad8b4e1d0852c44a3bb050c16e1e3dac3a5e056030eacbbc",
      "chars": 6848,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/runner.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/openpiv/scripts/runner.py",
      "span": "L139-L210",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "a98ea22a60b630619bafc70ac0f0a884c88d83c9b9a788527175d2d6c18c7467",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/openpiv/scripts/runner.py#run_openpiv",
      "name": "run_openpiv",
      "kind": "function",
      "path": "skills/openpiv/scripts/runner.py",
      "span": "L22-L136",
      "signature": "def run_openpiv( image1: str, image2: str, output_dir: str = \"results\", mask: str = \"none\", mask_method: str = \"intensity\", window_size: int = 32, overlap: int = 12, search_area: int = 38, dt: float = 0.02, scaling_factor: float = 96.52, threshold: float = 1.05, drop_invalid: bool = False, verbose: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "82919f0e85cc86346c039af79f761acc5ff12e8fff4b7b35756b072aeed1d3a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/absorbance_reader_template.py",
      "name": "absorbance_reader_template.py",
      "kind": "file",
      "path": "skills/opentrons-integration/scripts/absorbance_reader_template.py",
      "span": "L1-L83",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2a88d00fdbccbcc35c1a17c6dc72bbf56321e308abc0c915759ea41fea0f9284",
      "chars": 2329,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/absorbance_reader_template.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/absorbance_reader_template.py",
      "span": "L22-L82",
      "signature": "def run(protocol: protocol_api.ProtocolContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1a6c7e23cd02304bb7e384ba385073ee8b00758e58d5b7c0fe7806585567246",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/basic_protocol_template.py",
      "name": "basic_protocol_template.py",
      "kind": "file",
      "path": "skills/opentrons-integration/scripts/basic_protocol_template.py",
      "span": "L1-L69",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f95d2488c28180f3427d426bb7a8b0de80661070328813f2a3dc7af8c44ff5ce",
      "chars": 1848,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/basic_protocol_template.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/basic_protocol_template.py",
      "span": "L21-L68",
      "signature": "def run(protocol: protocol_api.ProtocolContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa2b5b3d0e713124a6e4b5c1b32c551233e5566482967dca83c6429ff34e1fee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py",
      "name": "ot2_basic_protocol_template.py",
      "kind": "file",
      "path": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py",
      "span": "L1-L64",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f5aca40964c325b6c7d2631437d69f908a97e7482f47afa02e13b9c28d0ba6aa",
      "chars": 1704,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py",
      "span": "L21-L63",
      "signature": "def run(protocol: protocol_api.ProtocolContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1019f7929b561ce7e1c8f8e92328a402f2573881d908859d11fa547ae41a069",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/pcr_setup_template.py",
      "name": "pcr_setup_template.py",
      "kind": "file",
      "path": "skills/opentrons-integration/scripts/pcr_setup_template.py",
      "span": "L1-L147",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9c4d6caf2d14aa295da2347c0b0298b4b44149a5c9a3067a908cc702aeba3ee8",
      "chars": 4435,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/pcr_setup_template.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/pcr_setup_template.py",
      "span": "L22-L146",
      "signature": "def run(protocol: protocol_api.ProtocolContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "928e45b7864dd35c9e08878e49fcd20fc5848f6dfa29110f9d23da4be6aa683c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "name": "runtime_parameters_template.py",
      "kind": "file",
      "path": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "span": "L1-L111",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e2b2f4bd5cd3f18f17505eae08fa5827df982c12df19254dfbcf6f3f3b926dbb",
      "chars": 3194,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/runtime_parameters_template.py#add_parameters",
      "name": "add_parameters",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "span": "L22-L46",
      "signature": "def add_parameters(parameters: protocol_api.ParameterContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b89bd29d318c4844f2e6cef2cad9169fc5651c98c9ecb7b12a46f28cf1463e00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/runtime_parameters_template.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "span": "L49-L110",
      "signature": "def run(protocol: protocol_api.ProtocolContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "09dbacc66d1ad4b441ea6520bdc829146053e2209b167c26ee01be6000619d17",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/serial_dilution_template.py",
      "name": "serial_dilution_template.py",
      "kind": "file",
      "path": "skills/opentrons-integration/scripts/serial_dilution_template.py",
      "span": "L1-L114",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "efa7b66b360cd0e6cb730e49452cb9f000c6d538aeeda64c371ba2bb13b79502",
      "chars": 3221,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/opentrons-integration/scripts/serial_dilution_template.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/opentrons-integration/scripts/serial_dilution_template.py",
      "span": "L27-L113",
      "signature": "def run(protocol: protocol_api.ProtocolContext) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0524ce4b540b608a01326485124616a8c82482050da31b464b05f7af8cd59d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "name": "run_pacsomatic.py",
      "kind": "file",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L1-L795",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "71a9f416eac83631fcfee673a2aca8ed6464c0fd5b65ffdbe620306be6610005",
      "chars": 29233,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#build_generated_params_content",
      "name": "build_generated_params_content",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L218-L227",
      "signature": "def build_generated_params_content(args, samplesheet_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3c3844ff4615182a7721e58aa4b8e34c9194da10f3b0d1741db1d3409e2e774",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#build_nextflow_command",
      "name": "build_nextflow_command",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L270-L305",
      "signature": "def build_nextflow_command(args, samplesheet_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b4d4c0bb76dfab4145158ebff6ed7f5ac8eda273fd3c672c457593cf8c0e715",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#build_samplesheet",
      "name": "build_samplesheet",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L238-L259",
      "signature": "def build_samplesheet(args, samplesheet_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bf67adcc899f3d2ea2f6b9fe9947be015c229717b1fcf93ac997ee6859f4cb1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#create_conda_env",
      "name": "create_conda_env",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L165-L180",
      "signature": "def create_conda_env(env_name, env_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bacedc4843b2f3959a774071d546bb854af40aafb1b70ff2b112fb6e05000a7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#default_conda_env_file",
      "name": "default_conda_env_file",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L161-L162",
      "signature": "def default_conda_env_file()",
      "exported": true,
      "origin": "ast",
      "body_hash": "be0daf9297c2b7f812cf83645c56c168010fdabaa923427ecc066445b364a310",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#default_script_path",
      "name": "default_script_path",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L376-L378",
      "signature": "def default_script_path(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "387dbf03c1a465eebc40b7f6292c4c036cfe7b4b1b693c4f734246a050e2ae10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#detect_java_major_version",
      "name": "detect_java_major_version",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L73-L81",
      "signature": "def detect_java_major_version()",
      "exported": true,
      "origin": "ast",
      "body_hash": "30db24fbd9665f055911143cc1e95e61408b40edabe51acb869a24af4845d9c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "name": "ensure_dependency_tools",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L518-L588",
      "signature": "def ensure_dependency_tools(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b86bb20af07df2051790039a46c0f7fd2d0dc984213a44249c7d73d24c10e30f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_no_spaces",
      "name": "ensure_no_spaces",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L84-L86",
      "signature": "def ensure_no_spaces(label, value)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aefe2abcd3b7ba4505643cd18ee96644f312e96599af47342aec7c7ef7bfd5ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_pipeline_repo",
      "name": "ensure_pipeline_repo",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L99-L124",
      "signature": "def ensure_pipeline_repo(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e72e2bd3248a230a0cf84c9b3efaed965fa90e8071e9b35f9835b0d1d6bcc892",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_runtime_tools",
      "name": "ensure_runtime_tools",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L502-L515",
      "signature": "def ensure_runtime_tools(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0c8dfbf1c10c5799c6b5065307a1d37e9e0366edc063422f7a417540424529f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "name": "execute_launch",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L634-L655",
      "signature": "def execute_launch(args, script_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "67b01f9083760964e00da2a8ee3c427e19cad1c6f7461a34d330666be5438fc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#extract_job_id",
      "name": "extract_job_id",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L616-L631",
      "signature": "def extract_job_id(executor, output)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e21f82948dcd059672dbd458c8b2718722140ddf3fd17f365153ffb5dea8265",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "name": "fail",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L39-L41",
      "signature": "def fail(message)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b722cc0670ca55305f171d647097b3d830575c6f82070b38f0a35153eb7afe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#find_conda_env_prefix",
      "name": "find_conda_env_prefix",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L144-L158",
      "signature": "def find_conda_env_prefix(env_name)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df6dcf3846b5ea7f8fd26634a2d6d7e4655e882e97260eb044551d35778022e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#format_submit_command",
      "name": "format_submit_command",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L608-L613",
      "signature": "def format_submit_command(argv, stdin_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cdb2e331aa07ed7521687c15c61994c9bb64ae5e590fdef7539f930f421f032",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#has_any_command",
      "name": "has_any_command",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L69-L70",
      "signature": "def has_any_command(names)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe90b98dbd0cf8a1ffae6a5337c4355c9b5de97f01f84e819105baa5dce991bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "name": "info",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L44-L45",
      "signature": "def info(message)",
      "exported": true,
      "origin": "ast",
      "body_hash": "74e5ca228e3b310705f44046772f1a1a0bb56397c4c38bbf3a4a8ed0e1ab2567",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#is_remote_path",
      "name": "is_remote_path",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L56-L58",
      "signature": "def is_remote_path(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "96313c81a8b7833579532085464e0b1307ebdb26f0922bbcbbf00e5925144898",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L739-L790",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "af1c096a47615aa2ea349d31ff24b1802500758d9325f641328e3c2d01a3d80b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_module_load",
      "name": "normalize_module_load",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L445-L478",
      "signature": "def normalize_module_load(raw)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1c76ac62dd8b402f0995cbad0f1f72bed13ba5727ff1088eddc2b785a50c087",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_walltime_hhmmss",
      "name": "normalize_walltime_hhmmss",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L61-L66",
      "signature": "def normalize_walltime_hhmmss(value, label)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ee50571d42bfddee2fe97cd7fab5f1a4e2f401e72f8507380e31c6f1e63ba25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#parse_args",
      "name": "parse_args",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L658-L736",
      "signature": "def parse_args()",
      "exported": true,
      "origin": "ast",
      "body_hash": "aee3e304a234a6bb51b6f05be1825018abeb3f205c93ab0488c4c4889c12980c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#parse_env_list_output",
      "name": "parse_env_list_output",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L127-L141",
      "signature": "def parse_env_list_output(raw_output, env_name)",
      "exported": true,
      "origin": "ast",
      "body_hash": "19b72cb624a5302d67e1d7aa0654791ce76a46770d4bf6047a67ad315967ded7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_reference_args",
      "name": "resolve_reference_args",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L262-L267",
      "signature": "def resolve_reference_args(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "26031ba24a49d38d4a4de0b01be227dbd0684627f2fec247f024e817e56817ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "name": "resolve_runtime",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L183-L215",
      "signature": "def resolve_runtime(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dc975a59e09d8e60ed5624ae8371e24c04924e29322840b87808c22f379c0c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#scheduler_header_lines",
      "name": "scheduler_header_lines",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L308-L373",
      "signature": "def scheduler_header_lines(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "718937fdf6b36590fdf2647f0cc6550a826458b7f30d83954596787e8b9e85ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#script_dir",
      "name": "script_dir",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L52-L53",
      "signature": "def script_dir()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d31a13d8525227881c3d5713fce1753afb3449c298c1084e0a0ae49cfce09acb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#submit_command_for_executor",
      "name": "submit_command_for_executor",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L591-L605",
      "signature": "def submit_command_for_executor(executor, script_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1842cfda3ed9418db9bd0faee6027a015d5a1c83055b18dc143beb4b67ea5d77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "name": "validate_inputs",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L481-L499",
      "signature": "def validate_inputs(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "09b9990ea22a1794af3bfa0d9c65fde49fed1c512fc21e640b639e2ba32a57e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_repo",
      "name": "validate_repo",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L89-L96",
      "signature": "def validate_repo(repo_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8aa195c1bb382ec017bd627bd3c7b018c3e07b36ccd7fe8ca4d7f78a45e3ec51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "name": "verify_bam_and_index",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L417-L435",
      "signature": "def verify_bam_and_index(label, bam_path, pbi_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7d0dae739b326d79ef29286d80070400485707f5b6d422b9ea8fdc3258280f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#warn",
      "name": "warn",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L48-L49",
      "signature": "def warn(message)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8341d024572a1ab4d5578524a575bdb86da9fe919c48ca021c298b29df1d6e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#write_generated_params_file",
      "name": "write_generated_params_file",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L230-L235",
      "signature": "def write_generated_params_file(args, samplesheet_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2085c15e1028d433ea8b5f3867b24d6033873d41c8b48bdb9639ddc3ac174867",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pacsomatic/scripts/run_pacsomatic.py#write_launch_script",
      "name": "write_launch_script",
      "kind": "function",
      "path": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "span": "L381-L414",
      "signature": "def write_launch_script(args, script_path, nextflow_cmd)",
      "exported": true,
      "origin": "ast",
      "body_hash": "94e4515aac1fc174692c1a1bd9a90be5c8ab28240cf362e757c6bbea41add2cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L1-L228",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4c6962ddbcb8cb89adc6c6ac02199835310f04b2ab93ffab9855adef38efd369",
      "chars": 8377,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "name": "collapse_ws",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L104-L113",
      "signature": "def collapse_ws(text: str | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0039c516859c62d90ecffefd2145637a2454c8531281f2cea8b38d350f67603d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#emit",
      "name": "emit",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L90-L96",
      "signature": "def emit(payload: Any, destination: str | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d7dd50d33185a5cbb5dd43bd9454381dfb2dfe82eed2115139bfaea43e1aa46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#fail",
      "name": "fail",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L219-L227",
      "signature": "def fail(message: str, code: int = 1) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce78860317bae8c8b253fce85fb678c06990c5f03f4bdc5d46d31821a1469797",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#InputError",
      "name": "InputError",
      "kind": "class",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L40-L41",
      "signature": "class InputError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "89b49c5eb3d7ddf3b9508c9735ae77c5569602e3431f591954210ed407fe1f59",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L80-L87",
      "signature": "def load_json(source: str, *, max_bytes: int = MAX_INPUT_BYTES) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "66ca625b2cdaddb9b6eef3caf8dad3e6f79d5503a879d16e10ee0131605c74cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#read_input",
      "name": "read_input",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L44-L77",
      "signature": "def read_input(source: str, *, max_bytes: int = MAX_INPUT_BYTES) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "369c4c2895a7b99e02d28f26f21e8e45ab8446aa2649828ef98c5983fc3edd30",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "name": "Reconciliation",
      "kind": "class",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L117-L186",
      "signature": "class Reconciliation",
      "exported": true,
      "origin": "ast",
      "body_hash": "dce5f08593043486536fa4096d582ad535a23d55e76c2689772a4ae0acad12e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#Reconciliation.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L165-L186",
      "signature": "def as_dict(self) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b1ce219d176b98d0a10935a0822fa37cb493cef6818904cf955101975a9e4d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reconciliation"
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#Reconciliation.complete",
      "name": "complete",
      "kind": "method",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L149-L155",
      "signature": "def complete(self) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a075d0e7ab3b0458e67886542e449aa3ff4265e5732234dc5bbbe90e58a70bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reconciliation"
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#Reconciliation.note",
      "name": "note",
      "kind": "method",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L162-L163",
      "signature": "def note(self, message: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "026fe4ab301d458f3d5a72284204318a23ffcbeb55e6530af20812bd71a41e8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reconciliation"
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#Reconciliation.ok",
      "name": "ok",
      "kind": "method",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L158-L160",
      "signature": "def ok(self) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb6fa47104a3e3c1067ba7c20184728a79444cf3772711ac824d877e1e5da870",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Reconciliation"
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#redact_url",
      "name": "redact_url",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L201-L216",
      "signature": "def redact_url(url: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "35cc80ee06a167c5cd12460f983c0704f4c017da097d3dd94f2583f026825e48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/_common.py#strip_control",
      "name": "strip_control",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/_common.py",
      "span": "L99-L101",
      "signature": "def strip_control(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ec30a1515e3a6c6870223884eb15d03562b204f6cbf68f10107b296e0592c18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py",
      "name": "arxiv_atom.py",
      "kind": "file",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L1-L201",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ef8014d59380864973b5784bc76a954152eed81cb5e139755f050284d111cc89",
      "chars": 7993,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L112-L128",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c312fbc40c33124a7161e928678d4cbc43691066b195419aac2b84b7a61f402a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py#id_from_url",
      "name": "id_from_url",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L53-L59",
      "signature": "def id_from_url(url: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f325be24e78dd8debac299b83ea9799e6d64faf6f2320216b252525e9475065",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py#link_for",
      "name": "link_for",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L62-L69",
      "signature": "def link_for(entry: ET.Element, *, rel: str, mime: str | None = None) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a64f96d86878d355d651a8a17e8355138e8773dd13f2bd97c632d6d20da3f27a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L131-L196",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fac5556f26fb5fa94f562e228b5f97c4d818c3d6de327651b5899956a6f68175",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "name": "parse_entry",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L72-L109",
      "signature": "def parse_entry(entry: ET.Element) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "80f4c154e74d5041bda7b85bd0486d7879a99fa6afaa98aadc9e632fd6b34a2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/arxiv_atom.py#split_version",
      "name": "split_version",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/arxiv_atom.py",
      "span": "L40-L50",
      "signature": "def split_version(arxiv_id: str) -> tuple[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4932e1186e6a3b23707589226874b3fe1cb1a239994e0b86a5fed4cfe1b217da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py",
      "name": "jats_to_text.py",
      "kind": "file",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L1-L325",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4c0cad352a4ab8642bb32929adf2d91386c45c1f2f8b19955b1ef504754449d0",
      "chars": 11305,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L209-L240",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f36781f66dbedbc99b67361b08c78bae5d3dfe393ca79fafab78e4ca4d0a3ae9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#collect_sections",
      "name": "collect_sections",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L130-L148",
      "signature": "def collect_sections(body: ET.Element) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac214b054cd160041104cdce0e0ecb20b6fbcfbb527d538065e2d9fd28fbe90e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#comments_in",
      "name": "comments_in",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L89-L96",
      "signature": "def comments_in(xml_text: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6615b74d212adc16137ef55cab59925d93a028b8711e4e555849c0f592ab7b66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "name": "element_text",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L99-L122",
      "signature": "def element_text(element: ET.Element) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "db3c27e5787c2316b584ce2ee9a5970df101e52eca8e5539b49576fc2bb68fc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#element_text.walk",
      "name": "walk",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L103-L119",
      "signature": "def walk(node: ET.Element) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3573757e1cf574c64cc1757d88e6d3422b2cd722b428cf87ca7691d996d8b7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#extract_metadata",
      "name": "extract_metadata",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L158-L206",
      "signature": "def extract_metadata(article: ET.Element) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "72de6c1e5dd35b1a59f0f09cc51b26ea1b964dbae787e6be4b8a1318db1f7188",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#find_article",
      "name": "find_article",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L76-L86",
      "signature": "def find_article(root: ET.Element) -> ET.Element",
      "exported": true,
      "origin": "ast",
      "body_hash": "5efb8e5433a1e99715ee514856c4b847fa424d8bbbd1392b87394980e9363229",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L248-L320",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a55cc5b2a9f98fd95f0b0fa1ef510d4d359671370739a40612237d96f4c8bf2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#matches",
      "name": "matches",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L243-L245",
      "signature": "def matches(section: dict[str, Any], wanted: list[str]) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd03e7c8766a6997a24a38841b2aabca3ac41900c44f12db68b75b83725b975c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#parse",
      "name": "parse",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L69-L73",
      "signature": "def parse(xml_text: str) -> ET.Element",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ff5baeb450672a5f17bdcbde3a41eda7ef1cf3a38c717dcfa0996085f6806e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/jats_to_text.py#section_title",
      "name": "section_title",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/jats_to_text.py",
      "span": "L125-L127",
      "signature": "def section_title(section: ET.Element) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b708dd505452428723b3e875a6d959586a9a91c7cee586eb87415f15f2da718e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/openalex_abstract.py",
      "name": "openalex_abstract.py",
      "kind": "file",
      "path": "skills/paper-lookup/scripts/openalex_abstract.py",
      "span": "L1-L164",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ad1092c887ea61be4cefa7f94d261c84b50be7e1bbf076b53c6569b5955edb27",
      "chars": 6033,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/openalex_abstract.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/openalex_abstract.py",
      "span": "L109-L123",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "3430c00e3203d636b1b817afde1112399cd05c33e335efad77d1066bb86ca4e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/openalex_abstract.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/openalex_abstract.py",
      "span": "L126-L159",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d4e0cd0c93bf5dadd217e74db426e1ef1837c44f523a2fe515f69d40332df8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/openalex_abstract.py#reconstruct",
      "name": "reconstruct",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/openalex_abstract.py",
      "span": "L30-L68",
      "signature": "def reconstruct(inverted_index: dict[str, list[int]]) -> tuple[str, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d14288fa28d3f7484b0fe25713d04484f8a31c66fafca2a84e2c527d6ec701b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/openalex_abstract.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/openalex_abstract.py",
      "span": "L82-L106",
      "signature": "def summarize(work: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "71ac832fb162819cc775f3ac0a2ebfa18c532c9afa55c5588afe98b143d22801",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/openalex_abstract.py#works_from",
      "name": "works_from",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/openalex_abstract.py",
      "span": "L71-L79",
      "signature": "def works_from(payload: Any) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b07c27400de713cc82ed39618a5568e8fb26d61033dca7da7517ed848155faf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py",
      "name": "paginate.py",
      "kind": "file",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L1-L491",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "98bd6ead5a1ae5ce52dec5159f7e48701d05adeadabefae4bb275c1e9b526989",
      "chars": 17626,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_crossref_parse",
      "name": "_crossref_parse",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L242-L257",
      "signature": "def _crossref_parse(payload: Any, _state: Any) -> Page",
      "exported": false,
      "origin": "ast",
      "body_hash": "1c17043b718f707523596662e5c154a0624298de4a407ac6821a6ab5a3029571",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_crossref_url",
      "name": "_crossref_url",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L234-L239",
      "signature": "def _crossref_url(query: str, state: Any, limit: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a8b4aa5c427330c2c909e2589ac28d049c4b872a2f3e4c831ff16a772ae3fa2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_europepmc_parse",
      "name": "_europepmc_parse",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L167-L192",
      "signature": "def _europepmc_parse(payload: Any, state: Any) -> Page",
      "exported": false,
      "origin": "ast",
      "body_hash": "0fc82bd2604ab402fd1dd95b74c789bec03ca9a00f4a51d42dc090d30120c2a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_europepmc_url",
      "name": "_europepmc_url",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L156-L164",
      "signature": "def _europepmc_url(query: str, state: Any, limit: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "20e04a92e670fd48f1fd36ce7bd567a84da18fedc0a1f8155a99a6b83d2b9f3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_openalex_parse",
      "name": "_openalex_parse",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L212-L228",
      "signature": "def _openalex_parse(payload: Any, _state: Any) -> Page",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9a5ba022860c60a8b8c42fbb9d7e41d16127f3af57c963577cfc7c8261e9cef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_openalex_url",
      "name": "_openalex_url",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L198-L209",
      "signature": "def _openalex_url(query: str, state: Any, limit: int) -> str: # `query` is a raw parameter string, e.g. `search=crispr` or # `filter=publication_year:2024`, so both forms work without a second flag.",
      "exported": false,
      "origin": "ast",
      "body_hash": "1fd8f44cb8c8213679a1061729f4045afd212a2a1f8d3db33d28f3a14b886d9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_rxiv_parse",
      "name": "_rxiv_parse",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L107-L146",
      "signature": "def _rxiv_parse(payload: Any, state: Any) -> Page",
      "exported": false,
      "origin": "ast",
      "body_hash": "dd7456a61c10f2f2d02fdfd35b3e4fb13f1ed84afe3c77598a69402f169ac74d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_rxiv_url",
      "name": "_rxiv_url",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L98-L104",
      "signature": "def _rxiv_url(server: str) -> Callable[[str, Any, int], str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a4944241a84d2fb069558efa5ef8563ec8f4c3a48278ffdc316256c1933c6ca8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#_rxiv_url.build",
      "name": "build",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L99-L102",
      "signature": "def build(query: str, state: Any, _limit: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "92f09328e89e23f993dd7219b481b53ee2928405cb1865511216e205726bcb71",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#Api",
      "name": "Api",
      "kind": "class",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L65-L72",
      "signature": "class Api",
      "exported": true,
      "origin": "ast",
      "body_hash": "71bee435771aafc9e585a85afbe48867154151b1df132850920ac0306d453a11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L376-L409",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f03a643be17661fb88ca60332fca6f49f9dfac04dc44c91c07bec6ea70d7a5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#fetch",
      "name": "fetch",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L75-L88",
      "signature": "def fetch(url: str, *, headers: dict[str, str] | None = None) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "f88bf0c3f0079c3687762a57316a4fcbcdff06acde0ea265346fc8eb67b706b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L412-L486",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "23a535eda2d5eed033a8f3b39251fc76f9ba3ece5334858d6536d6d74202afe4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#Page",
      "name": "Page",
      "kind": "class",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L53-L61",
      "signature": "class Page",
      "exported": true,
      "origin": "ast",
      "body_hash": "b08b6c0912c1e54b54309b6e7b1d1a188585359544e88acb0845b3f8323f0270",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/paper-lookup/scripts/paginate.py#walk",
      "name": "walk",
      "kind": "function",
      "path": "skills/paper-lookup/scripts/paginate.py",
      "span": "L307-L373",
      "signature": "def walk( api: Api, query: str, *, page_size: int, max_records: int, max_calls: int, verbose: bool, ) -> tuple[list[Any], Reconciliation, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8585790d9923b4a21fc7c82734fef988b690f67ba063f82a8b80808ca63acfb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L1-L386",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2a4255088f2c753f429322cb618d6901e99ee0c1dfb642c8ccb483b0f7141135",
      "chars": 12105,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_absolute_lexical",
      "name": "_absolute_lexical",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L55-L58",
      "signature": "def _absolute_lexical(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "00b205cee267480b219917f7c7653f7260b44774e5e62f6556003f5bec318d2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L32-L33",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d7454d72174c168c7a9ea73fd4d567bca97c876ff8aa87c919949c1298a5c043",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L61-L72",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "78924416e8ea7275916876cd589599996170509b75a22726d7eb69ee4db28722",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_reject_url",
      "name": "_reject_url",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L45-L52",
      "signature": "def _reject_url(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8403f8158cb7bc92057e40e8eddb47ffde622fa3033d0393256579fbda006ff3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_suffix_matches",
      "name": "_suffix_matches",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L101-L103",
      "signature": "def _suffix_matches(path: Path, suffixes: Iterable[str]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "e1856dea9a85fb3d62dd66a2e2e34e3ffe7e67c605cdc73f8b55788aac32e6f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L36-L42",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d6b2d3f65bce4a282c445f59ccdcb0a550ef6f61049759891cad87ab19062a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#_within_root",
      "name": "_within_root",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L94-L98",
      "signature": "def _within_root(candidate: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c09269247f1db3471c89e607b8565c56bba78140ca70d54e117d163f5e1b71bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L209-L237",
      "signature": "def atomic_write_bytes( destination: Path, payload: bytes, *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "561fcb2c77c1aeb1d09232d61ccaa057d3aad927b6bf2aace5797a1477dc9c81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L311-L324",
      "signature": "def bounded_int( value: Any, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2f2a98d62196eec25e9074f1711c9da1862f6c33968bd503e5a5dc9edc7b152",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L106-L140",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str] | None = None, max_bytes: int, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "c09e9b3f535d4da2900a8b471daabd4e945fd077e6e6c7dfb72f89abbdcaf999",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L143-L183",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "24fe29d2b24de21bd89d44099fa82e8e33484448106c7e12d2251ba5f47e2bee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L75-L91",
      "signature": "def checked_root(value: str | os.PathLike[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "01ff7f9c5c3b4dfbb3f6d1f0bb8a8eb3d52b698f1bce7614eaa78c4d2cad3df6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L28-L29",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bc2169287ad40f409aa02fba9a1cd0c5b99b39267a9a7359c7edc96a26e7800",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L240-L259",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, root: str | os.PathLike[str] = \".\", force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62f39e06da0b36627c77527399943eeb8d65675d28fd02d49942cd9d8768e584",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L327-L345",
      "signature": "def finite_float( value: Any, *, name: str, minimum: float | None = None, maximum: float | None = None, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bc2a4e4f9bfe3afe5032ef5d414ab6366fed51479401ca8486472520a4f0b55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L262-L289",
      "signature": "def load_json_object( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", max_bytes: int = MAX_JSON_BYTES, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "529eaa5d71a74e4d246b53c2b88b6e5d0aa1d413c28d8570741c33ea0e208ca2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#parse_name_list",
      "name": "parse_name_list",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L348-L358",
      "signature": "def parse_name_list(value: str | None, *, name: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "04d9d14943112879d4e536f956fafab8d8a57ffee082354fcbf59c048725896d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L374-L385",
      "signature": "def run_cli(function: Any) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f536c2b997136f2e17ab6ab41677d26e0b0ec5b1b03476f303f81423e2126723",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L361-L371",
      "signature": "def sha256_file(path: Path, *, max_bytes: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "be43b86e0e5cc72fdce3c1b981616eada340c7c46a1f8fac373e8c6184ec9dc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#strict_json_bytes",
      "name": "strict_json_bytes",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L186-L206",
      "signature": "def strict_json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "36399de93347ca2f616889cc26b582b4ed63a0ae929112f8a6d9814f74e2f4a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/pathml/scripts/_common.py",
      "span": "L292-L308",
      "signature": "def validate_keys( value: Mapping[str, Any], *, allowed: Iterable[str], required: Iterable[str] = (), context: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fcdd593b06fac76085376b79873649666a46a0ae451c667722e3ad8ec7ef3d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py",
      "name": "image_qc.py",
      "kind": "file",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L1-L326",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "30648c0d89246570f6176c470dbec148d67c706dad606f563027c0d239da48ba",
      "chars": 11127,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#_next_token",
      "name": "_next_token",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L27-L47",
      "signature": "def _next_token(payload: bytes, offset: int) -> tuple[bytes, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f3a950f42e0fda2f95f46ff485307cd872fa4a05503d7f5966bd118c26180559",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#_read_pnm",
      "name": "_read_pnm",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L50-L89",
      "signature": "def _read_pnm(path: Path, max_pixels: int) -> tuple[int, int, bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a6badffda49af4f0fdf48ca626e6c9c24e536a24b50b5cd5550e7e38db7cb5bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#_read_with_pillow",
      "name": "_read_with_pillow",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L92-L111",
      "signature": "def _read_with_pillow(path: Path, max_pixels: int) -> tuple[int, int, bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a26c5579ec519a5e162cd271162c850d9fbcdcc5f4ac8495e711b15b0e18b9df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#_write_mask",
      "name": "_write_mask",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L220-L236",
      "signature": "def _write_mask( mask: bytes, width: int, height: int, *, destination: str, root: str, force: bool, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "81edc4845d3729338789e90540529cf53f03931a9bf6e1d1a70fac39a596517e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L239-L273",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "04e5ad13e52979a127b805286594191163e9b945dafe7e857d36d78c17b665c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#calculate_qc",
      "name": "calculate_qc",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L146-L217",
      "signature": "def calculate_qc( width: int, height: int, pixels: bytes, *, saturation_threshold: float, brightness_threshold: float, ) -> tuple[dict[str, Any], bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9a0c22c1675616c39f617d11b7440e3746132a2bdab4bdd2c4e1cba17aa5a46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L276-L321",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4559ebda18b9811394114d849862960a836487403e0ffffb64d29bd36cadec04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#read_image",
      "name": "read_image",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L114-L119",
      "signature": "def read_image(path: Path, max_pixels: int) -> tuple[int, int, bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbefda5965ab9f3d832549a418b220ab488c08135ccdca96109d59c7a1990f9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/image_qc.py#synthetic_image",
      "name": "synthetic_image",
      "kind": "function",
      "path": "skills/pathml/scripts/image_qc.py",
      "span": "L122-L143",
      "signature": "def synthetic_image( width: int, height: int, tissue_fraction: float, ) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "77e570d2b3b1f57c4aa496cf5dde6dcc102e30132ff4d6dc6736b0dccccf55e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_inference.py",
      "name": "plan_inference.py",
      "kind": "file",
      "path": "skills/pathml/scripts/plan_inference.py",
      "span": "L1-L283",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cb3e80dd47969a5e37e2de15dfc8eb2172af1c06bb90c73f2a854ef82b235422",
      "chars": 9691,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_inference.py#_load_card",
      "name": "_load_card",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_inference.py",
      "span": "L45-L86",
      "signature": "def _load_card(path: str | None, root: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "442802d15bc0ccde8af0f7f2db5810a28aa3a3b9557cdf42dc449efa300cb003",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_inference.py#_select",
      "name": "_select",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_inference.py",
      "span": "L89-L90",
      "signature": "def _select(cli_value: Any, card: dict[str, Any], card_key: str, default: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "685c3c34d97a5b5687b40970930b73c340e1a090a6be8180adc2ed4136d443fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_inference.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_inference.py",
      "span": "L250-L272",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e65a6c8c850be3b4db4032ec182677fea4f735ba3a26d9724c0bde82ca0b6837",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_inference.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_inference.py",
      "span": "L275-L278",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6dcf1f4b0f4c8ce111ef87327301da1cd7c8030a18f985a264ae8d3176515fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_inference.py#make_plan",
      "name": "make_plan",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_inference.py",
      "span": "L93-L247",
      "signature": "def make_plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "39bf803724b7f59e6089fbe3d74d6ff2ea5df16b3babdc3f9d891a57420a0464",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_pipeline.py",
      "name": "plan_pipeline.py",
      "kind": "file",
      "path": "skills/pathml/scripts/plan_pipeline.py",
      "span": "L1-L240",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "42aabf8a6e2bd08c04d186f8de423729c8fbcb2ad33ae211cc896435c69866d7",
      "chars": 9054,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_pipeline.py#_parse_pipeline",
      "name": "_parse_pipeline",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_pipeline.py",
      "span": "L53-L60",
      "signature": "def _parse_pipeline(value: str | None) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a5d84a6f573dc1b6f2ca3be6ca3bede92eb1bef8526b3332ac83bdd291ba0f50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_pipeline.py#_stable_pathml_count",
      "name": "_stable_pathml_count",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_pipeline.py",
      "span": "L38-L50",
      "signature": "def _stable_pathml_count( dimension: int, tile_extent: int, stride: int, pad: bool, ) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "8480cb2e9cfade643c1060841d66e7092a8d7b73aea10667e325e7e3f0e4ecb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_pipeline.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_pipeline.py",
      "span": "L203-L229",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "62024feb961718c77624cfbd78f8d7d1119b7f5e94033f64f25cb2fc728b07f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_pipeline.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_pipeline.py",
      "span": "L232-L235",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6dcf1f4b0f4c8ce111ef87327301da1cd7c8030a18f985a264ae8d3176515fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/plan_pipeline.py#make_plan",
      "name": "make_plan",
      "kind": "function",
      "path": "skills/pathml/scripts/plan_pipeline.py",
      "span": "L63-L200",
      "signature": "def make_plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d9714ba5df3f63e23025d3dbf90018c71d695e1793a3ca3e0a2507796ae42f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py",
      "name": "slide_manifest.py",
      "kind": "file",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L1-L406",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "071c73aaf2e2ab1b7e97e5a64bb48d65c9f4571481e6be9c9ac800340c37903f",
      "chars": 14065,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#_inspect_dicom",
      "name": "_inspect_dicom",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L237-L275",
      "signature": "def _inspect_dicom(path: Path) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e9768c0468e1d33d4aaf4758c02025789a4e0dd62910c08cc928a57cff1ea838",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#_inspect_openslide",
      "name": "_inspect_openslide",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L197-L234",
      "signature": "def _inspect_openslide(path: Path) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "93fde9427231d7737f84fbb99e4b649fb66721a5e5732347be85b068594cb0aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#_inspect_raster",
      "name": "_inspect_raster",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L278-L305",
      "signature": "def _inspect_raster(path: Path, max_pixels: int) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "da5310fa1e3efa48a49c1dc260bb88391c405b99aab203d1c4908cd707956d9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#_matched_suffix",
      "name": "_matched_suffix",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L66-L71",
      "signature": "def _matched_suffix(path: Path) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a1470f08f4a4a1f9c950ab102ed532873f8103d881d595c6db1017a7b2e6df34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#_validate_identifier",
      "name": "_validate_identifier",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L74-L81",
      "signature": "def _validate_identifier(value: str, *, field: str, row_number: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "9f2326a86dc1fa7a0ac5c46b236b7bf49ece5bcce41f94bf83d2512b16fe9bbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L343-L378",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a88944386e812b2f394496f5252c14b535df6f258d27ed67a86c1de45394299f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "name": "inspect_slide",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L308-L340",
      "signature": "def inspect_slide(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bd5574ca932101f440864eab83aaca3f36937f59b823897d6789ad33bda098c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L381-L401",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "689aa1092327e301fe6de27fbed82036fecbd4b05dfd909af12e645d00438a1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/slide_manifest.py#validate_manifest",
      "name": "validate_manifest",
      "kind": "function",
      "path": "skills/pathml/scripts/slide_manifest.py",
      "span": "L84-L194",
      "signature": "def validate_manifest(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9bdc91e46cde91a9ccd241e342cffe91937284ca586d11ad01e003dff7139a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py",
      "name": "validate_spatial_schema.py",
      "kind": "file",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L1-L421",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4210ad00641720d0b1f2245f26b9bb8b2aa182a275db7007586a88f34353dfbd",
      "chars": 16044,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py#_identifier",
      "name": "_identifier",
      "kind": "function",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L33-L39",
      "signature": "def _identifier(value: Any, *, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "70708de3b237e8d01df48ef1fb3b7a7097d2e9c5baacffcfbe9b70af720ead00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py#_parse_csv_float",
      "name": "_parse_csv_float",
      "kind": "function",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L175-L189",
      "signature": "def _parse_csv_float( raw: str, *, name: str, minimum: float | None = None, ) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "368166e369144ef03d90d0359bab94a8d8fd80ab2db6365d3675779c9a7d8482",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L359-L391",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8969d5d61fac6edc74e1517a09736cabb6f12128ce1bce785acede037ce215a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L394-L416",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "402ad1056e70e9ab1893ab46dd44d4605566e3f036d6936d9091237eb864dbe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py#validate_graph",
      "name": "validate_graph",
      "kind": "function",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L42-L172",
      "signature": "def validate_graph(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f50d6cf78b9e2ca94a1a50e1dfd68f4c13b2d154cdcf41feb9af90010137fcc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathml/scripts/validate_spatial_schema.py#validate_multiplex",
      "name": "validate_multiplex",
      "kind": "function",
      "path": "skills/pathml/scripts/validate_spatial_schema.py",
      "span": "L192-L356",
      "signature": "def validate_multiplex(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "43388b31852b69fc6ef58cdb77d1fe3fe4f17ee95f3d99f559ddb165a718142d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "name": "lapis_client.py",
      "kind": "file",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L1-L777",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d008192ae6e090ee833233333c38fff5bf572e3092b4b62df084255a473a702c",
      "chars": 30482,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_encode",
      "name": "_encode",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L128-L138",
      "signature": "def _encode(params: dict[str, Any]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "bed02daf864410b7a10841cebebb1e6b7ba4136e96a3d777670b046499ca9a19",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_error_detail",
      "name": "_error_detail",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L141-L157",
      "signature": "def _error_detail(body: bytes) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "97391a382cb45e32cf1536230e503d27c0b5ca772414154c6ec592bd530c1f7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_fetch_text",
      "name": "_fetch_text",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L289-L298",
      "signature": "def _fetch_text(url: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "63c6a6718503f5aa7c8bdcc65a7ea70ad9162853f050f24b5f14fecba26fec25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "name": "aggregated",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L234-L245",
      "signature": "def aggregated( base_url: str, filters: dict[str, Any], fields: Sequence[str] = () ) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc1ae8f40983011f1e58ee2d848b7fc6fb5e3e7edcdbbd0a775634f936545c8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#bin_weekly",
      "name": "bin_weekly",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L510-L521",
      "signature": "def bin_weekly(rows: Iterable[dict], date_key: str) -> tuple[dict[str, int], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f98595b2d4c3548c745e7e871a80707e479e68247cdfbd0e549cf8137d9db8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#children_map",
      "name": "children_map",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L680-L691",
      "signature": "def children_map(definition: dict) -> dict[str, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "285d3044051d693fa4c94a46acb47932302598724da3d8bfe8fef5fbbc893906",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#count",
      "name": "count",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L248-L251",
      "signature": "def count(base_url: str, filters: dict[str, Any]) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef49e09e40dd72d6c5e7eb26389d98ddbbeb0dd978d60d8698eedeef4192c89e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "name": "data_version",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L229-L231",
      "signature": "def data_version(base_url: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "303a454a9746652c839f677bcefb169b2835e5ddac0adf991b17042424c46d2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#descendants",
      "name": "descendants",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L694-L711",
      "signature": "def descendants( name: str, definition: dict, children: dict[str, list[str]] | None = None ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4addbdc12fc18fb10e4275fbf77542f9a7c601601cea41693fe2f22f7dea11f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "name": "describe_instance",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L205-L226",
      "signature": "def describe_instance(base_url: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "f376d317811c7105ce436d3e759d11ab25a652d14465f201f50a372306bd48c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#emit",
      "name": "emit",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L768-L776",
      "signature": "def emit(rows: Sequence[dict], columns: Sequence[str], fmt: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fa8caa097c25d99a7b62b10b30e8326a57a49c74b7693e84b3ba60c2b77f10e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_lineage_notes",
      "name": "fetch_lineage_notes",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L325-L345",
      "signature": "def fetch_lineage_notes() -> dict[str, dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbb284f90692ebbaac08672186df340a124ad6a6d734c5bc8e7b989f3de8232b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_pango_aliases",
      "name": "fetch_pango_aliases",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L314-L322",
      "signature": "def fetch_pango_aliases() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ce35926044ff584fac2060abe1db48e1581bb7009a3f63913f95bf24812a849",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#flag_low_coverage",
      "name": "flag_low_coverage",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L535-L553",
      "signature": "def flag_low_coverage(weekly_totals: dict[str, int], fraction: float = 0.4) -> dict[str, bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "877c04e93388bd5d391614562de8100649f88f8be9ebfcb2cf33a7187fb86c5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#format_table",
      "name": "format_table",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L754-L765",
      "signature": "def format_table(rows: Sequence[dict], columns: Sequence[str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "169c1daeecc28f8ac3ed8734ef39b7f1ced7fa1ceb4cd22e507efa9400512552",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#iso_week_start",
      "name": "iso_week_start",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L495-L507",
      "signature": "def iso_week_start(value: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f30fe1408e528d2b466a921a0c8862834d76558396ef895b3bf0985984ee30dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "name": "LapisError",
      "kind": "class",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L121-L122",
      "signature": "class LapisError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b8794cd81b2d9df7a613ac73e5b597ebe84ec596b08c6c9708544d932af976c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_definition",
      "name": "lineage_definition",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L274-L280",
      "signature": "def lineage_definition(base_url: str, column: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "50ed1b2a53a875b4bf99c5d200cda83a20bc6b329705f1d495a5a78fae74f23e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates",
      "name": "lineage_field_candidates",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L415-L436",
      "signature": "def lineage_field_candidates(schema: dict) -> list[tuple[str, bool]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "edaf96e8e114f6b7b6599681bfa14e9bf5cf2c8961a171a3ef35c2c33a511a28",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates.sort_key",
      "name": "sort_key",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L427-L433",
      "signature": "def sort_key(name: str) -> tuple",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc4fee55494c7a670ab9447460e81bf2f9aa396fb5093ca279ba5428719eeb17",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_filter",
      "name": "lineage_filter",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L459-L476",
      "signature": "def lineage_filter(value: str, has_index: bool, include_sublineages: bool) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "829586d879b61254d1a6e45875f717a727a0c91c48f831ee4606dc53783478d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#logit_slope",
      "name": "logit_slope",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L556-L624",
      "signature": "def logit_slope( points: Sequence[tuple[float, int, int]], *, min_successes: int = 5, min_nonzero_weeks: int = 3, ) -> dict[str, float] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf8ca0a0ed617c2e48612e52b07c2c39197dfd6a357599256bcad254c9be9832",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#looks_like_lineage",
      "name": "looks_like_lineage",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L397-L412",
      "signature": "def looks_like_lineage(name: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "803544728d4670f141c2156787c4139e2822cb7d94537ce4825e9ebe5f18ad64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#mutations",
      "name": "mutations",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L254-L271",
      "signature": "def mutations( base_url: str, filters: dict[str, Any], *, amino_acid: bool = True, min_proportion: float = 0.05, ) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d965b08d9d387b20456b6be7f017a98b74e34491ae24113d50ffddde9a44962",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pango_provenance",
      "name": "pango_provenance",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L301-L311",
      "signature": "def pango_provenance() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c1856cb9c8dd543776a0ec055dcc903bc063add48b0d57dc2bed091deddb4cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#parent_chain",
      "name": "parent_chain",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L665-L677",
      "signature": "def parent_chain(name: str, definition: dict, limit: int = 60) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "39d4c2d82222a15712285dcfdfd52e8e5f70bf2b5908071d03bed6041e42acfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "name": "pick_date_field",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L365-L394",
      "signature": "def pick_date_field(schema: dict, role: str = \"collection\", preferred: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd924286257eec858b1c920dcc06261080455ef7b07731bdb18d179a21076995",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "name": "pick_lineage_field",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L439-L456",
      "signature": "def pick_lineage_field(schema: dict, preferred: str | None = None) -> tuple[str, bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "234c3cfc495f8276b2c1e73ed8f58c3db4fa7f5abbf662ea274bcbbb2f8f5400",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#range_keys",
      "name": "range_keys",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L360-L362",
      "signature": "def range_keys(field: str) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd0ac0c07c215575ad4d61d75705adc706143c14f08155b40f2b4d623d53211f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#recombinant_parents",
      "name": "recombinant_parents",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L652-L662",
      "signature": "def recombinant_parents(name: str, aliases: dict[str, Any]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "744693db02a788efa584dbadac9f62d4b081ef5949af3b1cef571e191306be77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "name": "request",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L160-L183",
      "signature": "def request(base_url: str, path: str, params: dict[str, Any] | None = None) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "04b073c82f6c2175bb288b61bc4d2942860b3b6b4dab6c6c44a1ae1d0be4b3c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "name": "resolve_base_url",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L186-L199",
      "signature": "def resolve_base_url(instance: str | None, base_url: str | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c66fe7bc5e0e7a7179ac51e9c2004e5e485c6cfe6299351295c9ce0dd195ae65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#sanitize",
      "name": "sanitize",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L732-L751",
      "signature": "def sanitize(value: object, limit: int = 400) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d2aa4e93d8c93d11065345b948c775ae9cb9731d133495e86c43ce16ccf4826",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#supports_range",
      "name": "supports_range",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L351-L357",
      "signature": "def supports_range(schema: dict, field: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "75e61f9ce74842fefabb359afc6621cd30fa2be573d0db8358d24d1773e35037",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#top_values",
      "name": "top_values",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L714-L724",
      "signature": "def top_values(rows: Sequence[dict], field: str, limit: int) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "17aad6a92aa33913b51f64c0959c4919bc88f89515759a785b0cd24c39bd69a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias",
      "name": "unalias",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L627-L638",
      "signature": "def unalias(name: str, aliases: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "993225e9095c1b20b1640d4dbddb734e8ac9af2f1c8b83048ae406ca74f6230c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias_full",
      "name": "unalias_full",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L641-L649",
      "signature": "def unalias_full(name: str, aliases: dict[str, Any], limit: int = 20) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8f377d0a82b3533b69e2abf59a1a0150401e2178f4661170a0b95fb45f834d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#week_range",
      "name": "week_range",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L524-L532",
      "signature": "def week_range(start: str, end: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad31bfc0a11ebb4628b7189582fd13a55858e7bf28d917892cb4c077b77990e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#wilson_interval",
      "name": "wilson_interval",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "span": "L479-L492",
      "signature": "def wilson_interval(successes: int, total: int, z: float = Z_95) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b1ab6e3de454291595e3b34098bc22828d54fa229c0ab00b72303ce82a462a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "name": "lineage_prevalence.py",
      "kind": "file",
      "path": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "span": "L1-L311",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "385a5a7f0ce63786aa9fc80f04e5c93960b42adb15b7b056c3200e1830d1dd6b",
      "chars": 13003,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "span": "L88-L117",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad472fbd1bf02fd9d784338c2b4aee5460761ff95a0a3794038a222e49f54b2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "span": "L120-L306",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "08fd596701a98f6c44ceb88eeed9e209abdcda05e27c85fe5e6b7fcb36df774d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#parse_where",
      "name": "parse_where",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "span": "L58-L76",
      "signature": "def parse_where(pairs: list[str], schema: dict) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "745a564b08aef16954124946ebc27b5599417f340262eeea63c4cae58b52c9d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#weekly_counts",
      "name": "weekly_counts",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "span": "L79-L85",
      "signature": "def weekly_counts( base_url: str, filters: dict, date_field: str, weeks: list[str] ) -> tuple[dict[str, int], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7df3a3e8a74d85dbc14bf587ba0fc1e6560c7a772a7f0e4bbe5a28635f33904e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "name": "mutation_profile.py",
      "kind": "file",
      "path": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "span": "L1-L216",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "606e3524e7f20137222a069bae1ec1530d4705b0627ce78be3fa13cd9cd7732e",
      "chars": 9403,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "span": "L71-L89",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2be3b680586c5fc3af8c7f4bbf5d11488ec10ea8da92679c32557d4a2c36d895",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "span": "L92-L211",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bacc46b335181ca0b557e8d76aef7a2a4df844c6e877129d2fff548dfa44eaaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#parse_where",
      "name": "parse_where",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "span": "L45-L56",
      "signature": "def parse_where(pairs: list[str], schema: dict) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "34b24ee23dfbf4270b743443d7ba1a0361e8f81cf4986f8dd60bdd61e791ea11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#profile",
      "name": "profile",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "span": "L59-L68",
      "signature": "def profile(base_url: str, filters: dict, *, amino_acid: bool, min_proportion: float, gene: str | None) -> dict[str, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca7c625ff8c9b12ffd29b0636255c3b5b5aa613342379187b682a6ad901c1ebe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "name": "reporting_lag.py",
      "kind": "file",
      "path": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "span": "L1-L218",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "502026a7564af79f2f0d9e99b0ea6e06621ac0aac85affddafb575e9a0facdeb",
      "chars": 8601,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "span": "L92-L109",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e8f1847afb8bcd47b757b62d5e7e43c10dcab82ed94e903b5427be4f130e38b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#cohort_curve",
      "name": "cohort_curve",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "span": "L55-L89",
      "signature": "def cohort_curve( base_url: str, filters: dict, submission_field: str, cohort_end: date, ) -> tuple[dict[int, float], int, int] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7aac18cc5d7616060923277d199c7ca4eecf25b91108fa0c03a54da5b324bfff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "span": "L112-L213",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cb1764a60264435b31d10b5a042409695c07c71c05915628a64bad474526747",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#month_window",
      "name": "month_window",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "span": "L46-L52",
      "signature": "def month_window(anchor: date, months_back: int) -> tuple[date, date]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e63b82290351f72e864310014ffd45c7e97c0052d251274ac8773a09bbbe742",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "name": "resolve_lineage.py",
      "kind": "file",
      "path": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "span": "L1-L199",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "921daf4d7bee5a12512be776a008139ecc3a0f3475a34049b00c3b317cff8471",
      "chars": 7198,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "span": "L67-L80",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "184e20f9ca665ea728dc12c552f6a203be054acb0ae979845a2287bbc4cae6e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "span": "L83-L194",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2056cdb31b343db9e0f6f4a4f2c6ce8cf16e1f93a12e10db5c6709f7bf31fb77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#normalise",
      "name": "normalise",
      "kind": "function",
      "path": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "span": "L61-L64",
      "signature": "def normalise(name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "640484d33e308fe545fd904aa2e1ff9343e9a9eee23d4913966d5f0d0ef6d9f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "name": "run_enrichment.py",
      "kind": "file",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L1-L232",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cad916bd1ac630a9cf7570bb71df4a495f57f18565c336b524e0144b2f1596ed",
      "chars": 8550,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#_build_rank_from_deseq2",
      "name": "_build_rank_from_deseq2",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L78-L98",
      "signature": "def _build_rank_from_deseq2(path: Path, organism: str) -> pd.Series",
      "exported": false,
      "origin": "ast",
      "body_hash": "90b45baf98c2f347e85c4f90ecd5f0923211d61c3e4f5984a186f4a20adf1f40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_index",
      "name": "_clean_index",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L118-L124",
      "signature": "def _clean_index(index, organism: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e49ffe2253333337d32a314a2a9807c8839576c514d8b4fec47fc29fb360d58b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_symbols",
      "name": "_clean_symbols",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L52-L66",
      "signature": "def _clean_symbols(genes, organism: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "58a4a7316c948de41b565259ff655826791a5d956a35fd73f17bc6910b89ce75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#_dotplot",
      "name": "_dotplot",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L127-L134",
      "signature": "def _dotplot(df: pd.DataFrame, column: str, title: str, outpath: Path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "79d644cf654b6f1a3ba348fb420c597b113961da4687d8d2d3fef499ff78503c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_gene_list",
      "name": "_read_gene_list",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L69-L75",
      "signature": "def _read_gene_list(path: Path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9074ff1a9044ac5bfe9590a81edf632dc15341c2ce93bbda61a5630d21c718b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_rnk",
      "name": "_read_rnk",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L101-L115",
      "signature": "def _read_rnk(path: Path, organism: str) -> pd.Series",
      "exported": false,
      "origin": "ast",
      "body_hash": "c7c815806ffbc9b47ca5b748d4feccb56a1a062d7dee324222d3c4f57a8bd3cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L185-L227",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d33be1cbaa0748f2177557fafa9a89c1ea975dd8c8d6c106e7c07e58e9abeec4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#run_gsea",
      "name": "run_gsea",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L158-L182",
      "signature": "def run_gsea(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b682c1bc53e4f28b0b5a767a7d4bbd8fa4d1adadb119670eeb12abcad07f1d24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pathway-enrichment/scripts/run_enrichment.py#run_ora",
      "name": "run_ora",
      "kind": "function",
      "path": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "span": "L137-L155",
      "signature": "def run_ora(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f823e9868aaa1b2c0f8ae18a0a9838cb012abd26e5b5f4bc19d597455e6da8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/check_bounding_boxes.py",
      "name": "check_bounding_boxes.py",
      "kind": "file",
      "path": "skills/pdf/scripts/check_bounding_boxes.py",
      "span": "L1-L66",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0ced522402dd7b3c82a0be9518cf4e485fa9cc0467d7beab6ddb04cb36fcc3e1",
      "chars": 2774,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages",
      "name": "get_bounding_box_messages",
      "kind": "function",
      "path": "skills/pdf/scripts/check_bounding_boxes.py",
      "span": "L15-L56",
      "signature": "def get_bounding_box_messages(fields_json_stream) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "825c3d0e013c9ccfafb36dd343daa33572c2adfb5fd1245f02f0a176edabba92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages.rects_intersect",
      "name": "rects_intersect",
      "kind": "function",
      "path": "skills/pdf/scripts/check_bounding_boxes.py",
      "span": "L20-L23",
      "signature": "def rects_intersect(r1, r2)",
      "exported": true,
      "origin": "ast",
      "body_hash": "873bf84c3449a613ad334b8f6f5ceaebfdb6b423daf9a81f99a8ff1a834b292b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/check_bounding_boxes.py#RectAndField",
      "name": "RectAndField",
      "kind": "class",
      "path": "skills/pdf/scripts/check_bounding_boxes.py",
      "span": "L9-L12",
      "signature": "class RectAndField",
      "exported": true,
      "origin": "ast",
      "body_hash": "489ae55a142a3e9f40b46ebd5e1c15e53bb865e9aa96f49605ce5fdef44096f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/check_fillable_fields.py",
      "name": "check_fillable_fields.py",
      "kind": "file",
      "path": "skills/pdf/scripts/check_fillable_fields.py",
      "span": "L1-L12",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1fe10b9980a5493c9bbec8c20630c603eaa475b45403751c08f26738736647b8",
      "chars": 268,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/convert_pdf_to_images.py",
      "name": "convert_pdf_to_images.py",
      "kind": "file",
      "path": "skills/pdf/scripts/convert_pdf_to_images.py",
      "span": "L1-L34",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7f58e292a67e18a8ff000d30bad2469389546731f7e8a698cc1d0aed001ea15d",
      "chars": 1008,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/convert_pdf_to_images.py#convert",
      "name": "convert",
      "kind": "function",
      "path": "skills/pdf/scripts/convert_pdf_to_images.py",
      "span": "L9-L24",
      "signature": "def convert(pdf_path, output_dir, max_dim=1000)",
      "exported": true,
      "origin": "ast",
      "body_hash": "480871f782e3e2cdd7abbf4fa3d6b73e73bdafd0fa34864697659e276c343a02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/create_validation_image.py",
      "name": "create_validation_image.py",
      "kind": "file",
      "path": "skills/pdf/scripts/create_validation_image.py",
      "span": "L1-L38",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8fa9fd7962c9f940045b81cf6b991e7c1057c1838e3f9cc6d305007a222ffebf",
      "chars": 1258,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/create_validation_image.py#create_validation_image",
      "name": "create_validation_image",
      "kind": "function",
      "path": "skills/pdf/scripts/create_validation_image.py",
      "span": "L9-L26",
      "signature": "def create_validation_image(page_number, fields_json_path, input_path, output_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "703bdbad0c6fb1fc493a2c7bd9085a931531291bcee9b2b6dd4aac22a2f7f4fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_field_info.py",
      "name": "extract_form_field_info.py",
      "kind": "file",
      "path": "skills/pdf/scripts/extract_form_field_info.py",
      "span": "L1-L123",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bb235b36f497bbb1c7c6821cecf527bbba7213520de11219da99f7b13a38c109",
      "chars": 4300,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "name": "get_field_info",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_field_info.py",
      "span": "L47-L107",
      "signature": "def get_field_info(reader: PdfReader)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e862f58ae9eb4457ec5d55c40248e6926f60a536ef176b2f3a9ea952d8950cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_field_info.py#get_field_info.sort_key",
      "name": "sort_key",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_field_info.py",
      "span": "L96-L102",
      "signature": "def sort_key(f)",
      "exported": true,
      "origin": "ast",
      "body_hash": "41208f7910b26e42faf383dba13d55dfabafe1e0b61b4f45f78ccff93e5933e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_field_info.py#get_full_annotation_field_id",
      "name": "get_full_annotation_field_id",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_field_info.py",
      "span": "L9-L16",
      "signature": "def get_full_annotation_field_id(annotation)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c51799e74d1e0c2baf80d63f245354e8a3a362e11aed24c07a5fdccceacf3e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_field_info.py#make_field_dict",
      "name": "make_field_dict",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_field_info.py",
      "span": "L19-L44",
      "signature": "def make_field_dict(field, field_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "10d79d5fd9909d8da2642c61cdd13e5efba4fc1f3accdf68f3e2c23bbe66781a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_field_info.py#write_field_info",
      "name": "write_field_info",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_field_info.py",
      "span": "L110-L115",
      "signature": "def write_field_info(pdf_path: str, json_output_path: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c83231a2d7e000157235b335a9d57238f0294be0bfdd0fff33f1639950b93b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_structure.py",
      "name": "extract_form_structure.py",
      "kind": "file",
      "path": "skills/pdf/scripts/extract_form_structure.py",
      "span": "L1-L116",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6814e3fe8f78c2b16d766c132b5a727ff7a31b71d76a7d46bd6e40fe50bc97c5",
      "chars": 3945,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_structure.py#extract_form_structure",
      "name": "extract_form_structure",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_structure.py",
      "span": "L20-L88",
      "signature": "def extract_form_structure(pdf_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6965c02d3a4128de4d31dedd490d2fa4ab4a513b5e747809ffa8a58cf52a0b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/extract_form_structure.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pdf/scripts/extract_form_structure.py",
      "span": "L91-L111",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1aa8111b54cf96ff2333140bdbc0d8f3c9d8f568439d8f43d5ca2ecf9167e018",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_fillable_fields.py",
      "name": "fill_fillable_fields.py",
      "kind": "file",
      "path": "skills/pdf/scripts/fill_fillable_fields.py",
      "span": "L1-L99",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d140872c2e92e41b1e05370ae8d270c5b7f5ebdf55d9905f03bc974a9c708ff5",
      "chars": 3819,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_fillable_fields.py#fill_pdf_fields",
      "name": "fill_pdf_fields",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_fillable_fields.py",
      "span": "L11-L52",
      "signature": "def fill_pdf_fields(input_pdf_path: str, fields_json_path: str, output_pdf_path: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "601932ed9aa27ae37dcc005ffa91c10a14a61cc11fbff5742385aa88c95d3a15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_fillable_fields.py#monkeypatch_pydpf_method",
      "name": "monkeypatch_pydpf_method",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_fillable_fields.py",
      "span": "L74-L87",
      "signature": "def monkeypatch_pydpf_method()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6bbf357c8d740735402f472159f4346a7fb036e89049db8574f639a655576b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_fillable_fields.py#monkeypatch_pydpf_method.patched_get_inherited",
      "name": "patched_get_inherited",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_fillable_fields.py",
      "span": "L80-L85",
      "signature": "def patched_get_inherited(self, key: str, default = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1b8113ed9b174fb855a0c72bcba9249f1d7272445067ded3de84fba033ae4f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_fillable_fields.py#validation_error_for_field_value",
      "name": "validation_error_for_field_value",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_fillable_fields.py",
      "span": "L55-L71",
      "signature": "def validation_error_for_field_value(field_info, field_value)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6a43c3734ebeb0d34c3460847413cf55dc074ee1420b8e3e6c2ead290c6e3da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "name": "fill_pdf_form_with_annotations.py",
      "kind": "file",
      "path": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "span": "L1-L108",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8a56e063a49ed53c0b0e1d312ecf8023af76816ed139486ec3b539873de202fd",
      "chars": 3235,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#fill_pdf_form",
      "name": "fill_pdf_form",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "span": "L33-L96",
      "signature": "def fill_pdf_form(input_pdf_path, fields_json_path, output_pdf_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "475d116d9377ecf9e1788b19108430e97d4c1b89ebd11ed6c780d49b784ac08e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#transform_from_image_coords",
      "name": "transform_from_image_coords",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "span": "L10-L20",
      "signature": "def transform_from_image_coords(bbox, image_width, image_height, pdf_width, pdf_height)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9018e506df34617f9de589243536149251374baabc3acdd17c3b801f7e61f2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#transform_from_pdf_coords",
      "name": "transform_from_pdf_coords",
      "kind": "function",
      "path": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "span": "L23-L30",
      "signature": "def transform_from_pdf_coords(bbox, pdf_height)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b7551191f07d04b83d53e555ae58c9383b9a5a085ef17ea374651998772667a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L1-L399",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "78e751bd8024d4df69a6a7ab82497424d58da06d751f4cb97ba4fc75eb9044db",
      "chars": 13896,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#_duplicate_safe_object",
      "name": "_duplicate_safe_object",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L30-L36",
      "signature": "def _duplicate_safe_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "062916d42ac4d6716eefcd89915104fdc746d9c072a7a76722001f751d43fb18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#atomic_write_text",
      "name": "atomic_write_text",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L347-L369",
      "signature": "def atomic_write_text( destination: Path, text: str, *, mode: int = 0o600 ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "72b0bcf28c418b1d294c10d3daa1cc0b6bf4806de117f24e44ef4e35f87632bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#error_exit",
      "name": "error_exit",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L396-L398",
      "signature": "def error_exit(exc: ValidationError) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d9ffb95d406dbf672ba97273a411095dec882cf66d5fa8213a1a103956a4fe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#issue",
      "name": "issue",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L391-L393",
      "signature": "def issue(code: str, field: str) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "378fd5250984716a90901ab9a2519525c6077077deb3e60060899a7f8f8481aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#read_csv_records",
      "name": "read_csv_records",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L117-L180",
      "signature": "def read_csv_records( raw_path: str | Path, *, required_fields: Iterable[str], allowed_fields: Iterable[str] | None = None, max_rows: int = MAX_ROWS, ) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a58c29449c92445054510e313caab31207c0c29adbee12bbb2e3d1ee0157a49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L88-L102",
      "signature": "def read_json(raw_path: str | Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "548460f37e2137501d89eb5e60d4f70d1b706193f20a20e97803ba9838026b4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#read_markdown",
      "name": "read_markdown",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L105-L114",
      "signature": "def read_markdown(raw_path: str | Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0b3f99af9ddda6b95af07dffb71dc8de27c90a0fb1b7b6cf92a64bd4f36493e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_bool",
      "name": "require_bool",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L244-L247",
      "signature": "def require_bool(value: Any, context: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "53cdd8f927b7dc9a4b81c58729e2fbd1ee9d4ea404049bc84c08ce58d8938f53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_doi",
      "name": "require_doi",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L340-L344",
      "signature": "def require_doi(value: Any, context: str, *, allow_empty: bool = False) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "be89595d59c578c811af876d9143745716998aff328bbcb09f3fd0913e2d1079",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_enum",
      "name": "require_enum",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L250-L257",
      "signature": "def require_enum(value: Any, choices: Iterable[str], context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee0fc60c448ff687c866742cae0b12a2c3a2c0ebe32b167dfd983cf316b81390",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_exact_keys",
      "name": "require_exact_keys",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L189-L203",
      "signature": "def require_exact_keys( value: dict[str, Any], *, required: Iterable[str], optional: Iterable[str] = (), context: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4660f03a3305ded5e348574b67bf4f1e54c2924d457fa28e547bdb6d078cd922",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_identifier",
      "name": "require_identifier",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L260-L264",
      "signature": "def require_identifier(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b09b3117ef5ff3fa4069d2e5170708cc2c9dcde7227bbec5b66a096eb5e04612",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_identifier_list",
      "name": "require_identifier_list",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L294-L307",
      "signature": "def require_identifier_list( value: Any, context: str, *, minimum: int = 0, maximum: int = 100, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fe66b17a8a730e748ef6a5643f22881c1a8b5eb0b2e146f204220c494c376fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_iso_date",
      "name": "require_iso_date",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L324-L330",
      "signature": "def require_iso_date(value: Any, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c1670a544cfe1cbbb0a98764a66a1eac0e3256526573687646031c5e14ccbdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_list",
      "name": "require_list",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L206-L219",
      "signature": "def require_list( value: Any, context: str, *, minimum: int = 0, maximum: int = MAX_LIST_ITEMS, ) -> list[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba099c3601a0a6ff9479e57d6e67511a1f29764984ea2dc6adb44f7850272d6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_object",
      "name": "require_object",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L183-L186",
      "signature": "def require_object(value: Any, context: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bedbb0ad99ef3e6ea2fab4e3ad5fa5a1193557a70e91d773c85a29f84d061f06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_text",
      "name": "require_text",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L222-L241",
      "signature": "def require_text( value: Any, context: str, *, allow_empty: bool = False, minimum: int = 1, maximum: int = MAX_TEXT_CHARS, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc0c4bc232e6d2a0a6dc9a7b25f1b9528c44a3e92eea074babba1476dc78a75d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_text_list",
      "name": "require_text_list",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L280-L291",
      "signature": "def require_text_list( value: Any, context: str, *, minimum: int = 0, maximum: int = 100, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6eaca4248438ac9c062c4d95bbe5cd4deac53e1c67dbd52033a814bd4a1f2d08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_unique",
      "name": "require_unique",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L267-L277",
      "signature": "def require_unique(values: Iterable[str], context: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "709f241e38ea13756e8ddd891a2e7530d8a0c90cdef6dd84a83d3373b8dcfb00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#require_url",
      "name": "require_url",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L333-L337",
      "signature": "def require_url(value: Any, context: str, *, allow_empty: bool = False) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d9f7bea33354fc227b8727db12e66ffc5cc56c115ee27f7f026a9ade4f092ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#safe_input_path",
      "name": "safe_input_path",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L39-L59",
      "signature": "def safe_input_path(raw_path: str | Path, suffixes: Iterable[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcbe29e24cf1bdd9000927bf98f4093c81eeec8eb6d5ea497c8029694418edbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#safe_output_path",
      "name": "safe_output_path",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L62-L85",
      "signature": "def safe_output_path( raw_path: str | Path, suffix: str, *, force: bool = False ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2360053b09c26c5e94039cf088da6ba0fdb2189e78bb7f9fa16ffcac2a1975a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#split_identifiers",
      "name": "split_identifiers",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L310-L321",
      "signature": "def split_identifiers( value: Any, context: str, *, allow_empty: bool = False ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f188a3fbf43e64fecd005ba179d6a7fe7c6623a16c0df542843605a6ee74afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L26-L27",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfdf6694e4d2f9efb43a70b63db4969f879e85a1dfac91124092037003394eea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#write_json_report",
      "name": "write_json_report",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L372-L381",
      "signature": "def write_json_report( data: Any, output: str | Path | None, *, force: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4369f0bdbc2d0cef339e2b9a5797d5ad115677aff806210884bbf90d04003fa0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/_common.py#write_markdown",
      "name": "write_markdown",
      "kind": "function",
      "path": "skills/peer-review/scripts/_common.py",
      "span": "L384-L388",
      "signature": "def write_markdown( text: str, output: str | Path, *, force: bool = False ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "70cad062addda878bcf404185c065eaa0bfcb3dc02e435b205c6ace060803f99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_citations.py",
      "name": "audit_citations.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/audit_citations.py",
      "span": "L1-L208",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9521d624dce092b93f36e3c4c7dd9cab151b24d2e623d0b299adbef239100e47",
      "chars": 7097,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_citations.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_citations.py",
      "span": "L110-L174",
      "signature": "def audit(markdown: str, references: list[dict[str, str]]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e23739480e9c63db970325038f350d72b1418d05352f1f467380df0fef34b51d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_citations.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_citations.py",
      "span": "L177-L190",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "89d2d2a436c38a6af287e9f8fbab9a98e87c418ab91cbff8856f004d897fe56f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_citations.py#extract_citations",
      "name": "extract_citations",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_citations.py",
      "span": "L89-L107",
      "signature": "def extract_citations(markdown: str) -> tuple[dict[str, list[int]], list[int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c2c4233758aec7c7c8233078cd50e42005eb294b6b941bbd3ed6734b36fba5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_citations.py#load_references",
      "name": "load_references",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_citations.py",
      "span": "L45-L86",
      "signature": "def load_references(raw_path: str) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d914aad55a90ae7e94cb47eb5c0f92c3eded04f020d6a9310e16ed9cdfaa6cb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_citations.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_citations.py",
      "span": "L193-L203",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcb6383800c0e701d3288b08c0b7eff1b410689e393a2ed6f7c0a619309d5ffe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "name": "audit_statistics_reproducibility.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "span": "L1-L306",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8daf60d78a2758665b5c676d1d68e52c57c5c1988249fdbbaba62d31a49c495b",
      "chars": 10455,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_statistics_reproducibility.py#audit",
      "name": "audit",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "span": "L186-L276",
      "signature": "def audit(checklist: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a230e5c60ac142bab4ea184aa4a823e0c5c8e0c3a9868b89322ee464d1548429",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_statistics_reproducibility.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "span": "L279-L291",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c55a1be8d67229963b922d4698310fb801496de8ae4715de726ca2c2feff87dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_statistics_reproducibility.py#load_checklist",
      "name": "load_checklist",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "span": "L83-L183",
      "signature": "def load_checklist(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2509156d9110ba5ce895440422cc4524344cc32571140ed12cb77ce4bba08439",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/audit_statistics_reproducibility.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "span": "L294-L301",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9a81f7c98075cf8b2e20a0fe5d8f4bb270961e575207b3f13e159e088204b51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/generate_review_scaffold.py",
      "name": "generate_review_scaffold.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/generate_review_scaffold.py",
      "span": "L1-L82",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3c2d6dc36e8e5fdd0313422d30da8c31a7ca808618818db376e348fe8d38fd2c",
      "chars": 2634,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/generate_review_scaffold.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/generate_review_scaffold.py",
      "span": "L52-L64",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "227f3eed341958c94909d3bf699f4e0f93a0371458060aa9d264f810fab6af73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/generate_review_scaffold.py#generate",
      "name": "generate",
      "kind": "function",
      "path": "skills/peer-review/scripts/generate_review_scaffold.py",
      "span": "L25-L49",
      "signature": "def generate(payload: Any, template_path: Path = TEMPLATE_PATH) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2b8637fd457592b412ea48b5d6920cc2e22e50171ae56967f21da6ac4c7165d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/generate_review_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/generate_review_scaffold.py",
      "span": "L67-L77",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b5706b406b9c34db888dbb8262359af08658b0d8cdf1283882fae147bc66c9e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/lint_review.py",
      "name": "lint_review.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/lint_review.py",
      "span": "L1-L255",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "623878c26ede3d74f2ddf0e0a15acbade40d10009c66ab334550b814b2361e75",
      "chars": 9085,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/lint_review.py#_comment_blocks",
      "name": "_comment_blocks",
      "kind": "function",
      "path": "skills/peer-review/scripts/lint_review.py",
      "span": "L88-L110",
      "signature": "def _comment_blocks(lines: list[str]) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "975a82ee2c213fb927a8cda5360cbcf4a25314ca96b246e8e7ee83825bbe699f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/lint_review.py#_content_value",
      "name": "_content_value",
      "kind": "function",
      "path": "skills/peer-review/scripts/lint_review.py",
      "span": "L83-L85",
      "signature": "def _content_value(value: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "fec127be586e01942ed70b3baa4a1d77794231425bc3bfe306325af334641732",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/lint_review.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/lint_review.py",
      "span": "L228-L240",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "363089f497d2d4834f49fdf79ac8caa6f67b2471074f690ebae786d7e5e5c7b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/lint_review.py#lint",
      "name": "lint",
      "kind": "function",
      "path": "skills/peer-review/scripts/lint_review.py",
      "span": "L113-L225",
      "signature": "def lint(markdown: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1fbe7d56576b5cdcf597183b61b556c5627c57029930daede632546b3f92d5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/lint_review.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/lint_review.py",
      "span": "L243-L250",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "568fec768442e5b550eb7e0f4ade55edf88caa7ff35f6c4fde69e5c2c07befb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "name": "select_reporting_guidelines.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L1-L384",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9ccbbdeca6df01f2f4e1c86b98db0e9ab0a43685c6726e1abfdb9bbaa2b92ae3",
      "chars": 13594,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#assess",
      "name": "assess",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L248-L344",
      "signature": "def assess( profile: dict[str, Any], catalog: dict[str, Any], coverage_rows: list[dict[str, str]] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c1e92de84b2e6cf7ab45f4ad0f99ae01e5315ced518537986f6d8344702dd94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L347-L366",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2739f5cd37cfdbadec7a583d3a04e2154146f07914815bf8401fb2abeeadf97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "name": "load_catalog",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L49-L134",
      "signature": "def load_catalog(path: Path = ASSET_CATALOG) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dac26dd34e7f471819a48fb65f12d492c4b10e27a624698698bce4096d2c8a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#load_coverage",
      "name": "load_coverage",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L195-L245",
      "signature": "def load_coverage(raw_path: str | Path) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "30554538ad5f45b314d6420dad0dac9070052bc5a1f24501cbb4c509205f9c47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "name": "load_profile",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L137-L166",
      "signature": "def load_profile(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9b0c3f690aa3ed2e762118aaf3f97edb5b38b80ecebfdd4aae26ff07751a676",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L369-L379",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b93b865669a18fe7bd5eac6418bd00f8fb8fb0958c9f0e9f71e6fe488073f70e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/select_reporting_guidelines.py#select_guidelines",
      "name": "select_guidelines",
      "kind": "function",
      "path": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "span": "L169-L192",
      "signature": "def select_guidelines( profile: dict[str, Any], catalog: dict[str, Any] ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b205fad139c7e1b0fdeeb59d6cf12f2cff5d28533d7c0d94d4950429f20c77a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_claim_evidence.py",
      "name": "validate_claim_evidence.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/validate_claim_evidence.py",
      "span": "L1-L222",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "93490b289f288ed686a8eb300bf40693e7caf148b5022b180077f0db22acbe2b",
      "chars": 7083,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_claim_evidence.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_claim_evidence.py",
      "span": "L195-L207",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "350ca633450b7eddf527917a1f75549ab9844f3236035517dbc5a08cebf5de1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_claim_evidence.py#load_matrix",
      "name": "load_matrix",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_claim_evidence.py",
      "span": "L67-L124",
      "signature": "def load_matrix(raw_path: str) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d279d68600a86e739d8f65693e2035857a00c3a55856239726800bbf289e5a11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_claim_evidence.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_claim_evidence.py",
      "span": "L210-L217",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "54e9b7d2b311efac2ad684919524f1235e5b0548a1b6726cc2728b4c82e950b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_claim_evidence.py#validate_matrix",
      "name": "validate_matrix",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_claim_evidence.py",
      "span": "L127-L192",
      "signature": "def validate_matrix(rows: list[dict[str, Any]]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9396ee14cd14211a2fa3784eb42bd1c2c6bd7555ff8f8e257d52e96e078d0ad5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_review_intake.py",
      "name": "validate_review_intake.py",
      "kind": "file",
      "path": "skills/peer-review/scripts/validate_review_intake.py",
      "span": "L1-L453",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bbea9af9a86c937956818c1e6b84be0754a9851a5c5e27f6073f2cadd8367b2a",
      "chars": 14466,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_review_intake.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_review_intake.py",
      "span": "L426-L438",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "bea69770254874bbdeba166b68e39581c0abf4f1430163a45fd091f1aba1df48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_review_intake.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_review_intake.py",
      "span": "L441-L448",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd75fe32ce88c7c61229d0c100a600af3f48f3c2fa5a93fe9d46b6cd3a2b86ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "name": "validate_intake",
      "kind": "function",
      "path": "skills/peer-review/scripts/validate_review_intake.py",
      "span": "L73-L423",
      "signature": "def validate_intake(payload: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "76229c30a168acf34c6fc76d44effb4d252003b60c569d48f5fabc6f8b6a72a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "name": "phylogenetic_analysis.py",
      "kind": "file",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L1-L273",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "765d62fdc9da50608b2e09bdeb744bc292a45d19f1ce2bf99802bc39b940f887",
      "chars": 9134,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#check_dependencies",
      "name": "check_dependencies",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L22-L39",
      "signature": "def check_dependencies()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e2e01e4fb775b7b0bdfe589401c6b05e12d6351aa63c10409cf1897cd41f009",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#count_sequences",
      "name": "count_sequences",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L42-L45",
      "signature": "def count_sequences(fasta_file: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "80c39b4c94f0be1c719bc079a66eba4e23ccac998d796dd4ff8306bf30b909cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L206-L268",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4f91fdfadc20eb69da0528bddad5d33425d2fcb70b185e10ce9177443ac3a8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_fasttree",
      "name": "run_fasttree",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L118-L134",
      "signature": "def run_fasttree(aligned_fasta: str, output_tree: str, seq_type: str = \"nt\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ba5d3dcb031c3d36986f1778eb410ca109a607c5cab23490e0b46ecd5f53419",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_iqtree",
      "name": "run_iqtree",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L79-L115",
      "signature": "def run_iqtree(aligned_fasta: str, prefix: str, seq_type: str = \"nt\", bootstrap: int = 1000, n_threads: int = 4, outgroup: str = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6648fd431f5c487237c61518306bdf2837b049c66332fec8382848e2eda9c53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_mafft",
      "name": "run_mafft",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L48-L76",
      "signature": "def run_mafft(input_fasta: str, output_fasta: str, n_threads: int = 4, method: str = \"auto\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c060cd084c05047fa2206116c845d7d0ec62918d5882ee82df4cd81f204e9aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#tree_summary",
      "name": "tree_summary",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L176-L203",
      "signature": "def tree_summary(tree_file: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2039542a94fcf5c96d03861955b3c44bc73d3d96f58acb81cd1d82f0699804d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/phylogenetics/scripts/phylogenetic_analysis.py#visualize_tree",
      "name": "visualize_tree",
      "kind": "function",
      "path": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "span": "L137-L173",
      "signature": "def visualize_tree(tree_file: str, output_png: str, outgroup: str = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6e90f63f5feb80bccb764d48bcfce2144c3e799d1a0eb074dae24bd821be9e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L1-L328",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f1230413e0065f93061749b2d41bd9a7e8a5ea8f59fd644121d8983766edb295",
      "chars": 10897,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#_json_default",
      "name": "_json_default",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L273-L280",
      "signature": "def _json_default(obj: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "fc790c22e6e4dfb4cd2833056c49696bb221f02c7be5536f129683a4e262223a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#_sniff_delimiter",
      "name": "_sniff_delimiter",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L98-L104",
      "signature": "def _sniff_delimiter(sample: str, path: Path) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "9ead81c8995da093dcf7fa6f844a4a3fa9081974cbe9087b2b60c7446593cc7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "name": "add_format_argument",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L286-L292",
      "signature": "def add_format_argument(parser: argparse.ArgumentParser) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e72d883250b4df09a32bbac4ab16e72b87aca4dbaa76a9262d7adb64a9266091",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#column",
      "name": "column",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L159-L160",
      "signature": "def column(rows: Sequence[Mapping[str, Any]], name: str, allow_missing: bool = False) -> list",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc8e1e02e2662df05c65820cae8f875a90666580f80c05762b76364c05940b00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#fmt",
      "name": "fmt",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L43-L63",
      "signature": "def fmt(value: Any, digits: int = 6) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "351cdd6970028c54fac73b095688c8fcd1549cabfb0e20096676ff016df7d3db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#group_by",
      "name": "group_by",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L163-L168",
      "signature": "def group_by(rows: Sequence[Mapping[str, Any]], key: str) -> dict[str, list[Mapping[str, Any]]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f45c34210d648896a4ae2af34253eea9898bbf61ce6593f7e98d963d32122e4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "name": "InputError",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L36-L37",
      "signature": "class InputError(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a49b55588c3f19c2f6c6ef4e56070c679486be33af24c307dc952eb0e1571ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "name": "main_wrapper",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L295-L308",
      "signature": "def main_wrapper(func, argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6f2238b62b15562e2caa7c8ff0cdcc00d77820098ba1799925e38307ad26dc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "name": "parse_float",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L66-L85",
      "signature": "def parse_float(text: Any, field_name: str = \"value\", allow_missing: bool = False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f2d7ff9ecbb143f29d2a06ba0444240027772f18c8716298229a6a6257dd20c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#parse_positive",
      "name": "parse_positive",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L88-L92",
      "signature": "def parse_positive(text: Any, field_name: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f8e9c5d1aee51efed69929f780230483507644d3b92c96620927e60324b7e79",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "name": "read_table",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L107-L146",
      "signature": "def read_table(source: str | Path) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4a1ad1682783e6f4a031e19b22e2d145a56d3f988857c97f91c1c97d6483a55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report",
      "name": "Report",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L192-L270",
      "signature": "class Report",
      "exported": true,
      "origin": "ast",
      "body_hash": "21cb47f73b4a63e8077fd839495a1d04cab6fb151bbac20e072144e378b937c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report._render_table",
      "name": "_render_table",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L219-L232",
      "signature": "def _render_table(self, table: Table) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "287713f3d5a934c4eae3c9f5a91b6c920e89106c4025f5c23bcecf9da7397453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "name": "emit",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L234-L270",
      "signature": "def emit(self, fmt_name: str, stream=None, err=None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d3b206f6ee1abfab437511c1aef1db10fab766aeb586a6c0d1cf4baaa4441ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "name": "finding",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L214-L215",
      "signature": "def finding(self, text: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "660c631a30521b6880b1598077167766b72fd8b2c84a0eb781cdf3cb82d0cfc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "name": "note",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L211-L212",
      "signature": "def note(self, text: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a3c10c45e92b1ef6c932fda0636bd17661b6c3ab38e6da440f27143c74f37b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "name": "scalar",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L208-L209",
      "signature": "def scalar(self, name: str, value: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b04d47a97a62dd46c37b809f91e8eb486e432d1ca7d2fd74a3bce43bf0575af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "name": "table",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L205-L206",
      "signature": "def table(self, title: str, rows: Sequence[Mapping[str, Any]], columns: Sequence[str] | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b38353c6111c8fbbd853b6ca059d28fbedd56bca6fe9b35842931f7ee27d3684",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Report"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#require_columns",
      "name": "require_columns",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L149-L156",
      "signature": "def require_columns(rows: Sequence[Mapping[str, Any]], required: Iterable[str], where: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d044484d1a39dc6d77e333d7b6e9ec24b4d30e8aeaac2c0947f07d1c54cbcbff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Table",
      "name": "Table",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L175-L188",
      "signature": "class Table",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c3376d728de37b5f1cb46d0ef32949ef7edbaea46d3409a192b00f3f3edd076",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_common.py#Table.headers",
      "name": "headers",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_common.py",
      "span": "L180-L188",
      "signature": "def headers(self) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "46aa4292086318a159a761d719451fb7d794e035baf9f2f1a976a8e2574c74ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Table"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py",
      "name": "_models.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L1-L674",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "605e5ca95ece7db24d4b11beb21e115dc03beac907155bc07166184c13cf240e",
      "chars": 25505,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#_absorption_term",
      "name": "_absorption_term",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L155-L168",
      "signature": "def _absorption_term(lam: np.ndarray, ka: float, t: np.ndarray) -> np.ndarray",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a3e13fb0e5cda53e1ce2b83ec6e31c1623b504c3ec935d113c7639a57560245",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses",
      "name": "_integrate_with_doses",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L348-L404",
      "signature": "def _integrate_with_doses( rhs: Callable[[float, np.ndarray], np.ndarray], y0: np.ndarray, times: np.ndarray, regimen: Sequence[Dose], dose_compartment: int, rtol: float = 1e-8, atol: float = 1e-10, ) -> np.ndarray",
      "exported": false,
      "origin": "ast",
      "body_hash": "50133ff26fdb0faa7b5d716d67f0a57c4c7ea3816892505132161de6ad62af52",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses.rhs_with_infusions",
      "name": "rhs_with_infusions",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L368-L373",
      "signature": "def rhs_with_infusions(t: float, y: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "e862c4e9f98b1ccfb8ef8d8a15a8145f706123620e5b9a9ec9f273d067674112",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#_require_scipy",
      "name": "_require_scipy",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L343-L345",
      "signature": "def _require_scipy(what: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a6b32e3344497b0c2fe0626671efa7bf63923dcab4339d0be64a7359beaba4d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "name": "build_regimen",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L257-L275",
      "signature": "def build_regimen( amount: float, interval: float | None = None, n_doses: int = 1, start: float = 0.0, duration: float = 0.0, route: str = \"iv\", loading: float | None = None, ) -> list[Dose]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5641acb9da5774bb8aa6a33c59818ee4bba588c1833542c6f268af4f9d945c99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#conc_bolus",
      "name": "conc_bolus",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L171-L174",
      "signature": "def conc_bolus(t: np.ndarray, dose: float, d: Disposition) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "92087903d245f1a69c211728486f518d19d65c4393749a375c20c6d6998d0f1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#conc_infusion",
      "name": "conc_infusion",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L177-L187",
      "signature": "def conc_infusion(t: np.ndarray, dose: float, duration: float, d: Disposition) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "faa2489211fedfc0d6d488e30afedff0a40e2a765af29989c7085d226dbc702a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#conc_oral",
      "name": "conc_oral",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L190-L195",
      "signature": "def conc_oral(t: np.ndarray, dose: float, ka: float, d: Disposition, f: float = 1.0, tlag: float = 0.0) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "a44f388f104dd9face242342e863cee6a7973016105cabf419b50b6399611e04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#conc_transit",
      "name": "conc_transit",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L198-L230",
      "signature": "def conc_transit( t: np.ndarray, dose: float, mtt: float, n: float, d: Disposition, f: float = 1.0, ka: float | None = None ) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "106188740be1e11ecddaa36facec9f64c543c5d9cac9b5f3108906a47ef6c6b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "name": "disposition",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L90-L136",
      "signature": "def disposition(cl: float, v1: float, q: Sequence[float] = (), vp: Sequence[float] = ()) -> Disposition",
      "exported": true,
      "origin": "ast",
      "body_hash": "2da0987a12dd0473393f97b8dd2f0fb8962c6e40c455b61407fe1d4ad36517eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "name": "Disposition",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L47-L87",
      "signature": "class Disposition",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5030b0851c672ccd2a3d4d8fb0aedb0a55cda9a13de67b2c39610a971232367",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition.auc_unit_dose",
      "name": "auc_unit_dose",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L79-L81",
      "signature": "def auc_unit_dose(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "168ae2d74a6ad875d3463dbc56222c5c79c1daa58eaf83d90362c709d4055284",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Disposition"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition.half_lives",
      "name": "half_lives",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L67-L68",
      "signature": "def half_lives(self) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "1127fd101b503a51223078a87e6f76cd479e2495b0fe289e88d71e7a539b92af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Disposition"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition.mrt_iv",
      "name": "mrt_iv",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L84-L87",
      "signature": "def mrt_iv(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d01d95c942f6dfddfe6c06ee0f7da2bf273f91efe05db1b176f801d28831d7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Disposition"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition.n_compartments",
      "name": "n_compartments",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L63-L64",
      "signature": "def n_compartments(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b00021fb02753d72252f6a98a994e570f69f223c2d5e774f972b0d58d87e6283",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Disposition"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition.terminal_half_life",
      "name": "terminal_half_life",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L71-L72",
      "signature": "def terminal_half_life(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "8452a2723cc6e64141fb830f7ec9063023fadab1a49e86ef8b10191813f6ba1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Disposition"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Disposition.vss",
      "name": "vss",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L75-L76",
      "signature": "def vss(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6ca215b28159b1255b25a434836eec0c14d0ca95970920060ec48580ca7460d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Disposition"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Dose",
      "name": "Dose",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L237-L254",
      "signature": "class Dose",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d5e5e58766cc201ef09a9c77ab6abd6aa2af994ef28e0996d36c979b5a9da53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#Dose.__post_init__",
      "name": "__post_init__",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L250-L254",
      "signature": "def __post_init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1ea22df5063f9bbb40f426ac5905fbfc10400512b1f6041c321798cc62cc4fc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Dose"
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#effect_compartment",
      "name": "effect_compartment",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L566-L591",
      "signature": "def effect_compartment(times: Sequence[float], conc: Sequence[float], ke0: float) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "17172a187f94590cd7171c50fece9a28bde36cced9df1724944b6b60bb1f0a8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#emax",
      "name": "emax",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L550-L556",
      "signature": "def emax(conc: np.ndarray, e0: float, emax_value: float, ec50: float, hill: float = 1.0) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a9c60f43c0925fc6352590be858c7c5234cbc5ff03fb711d2632b0323509824",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#imax",
      "name": "imax",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L559-L563",
      "signature": "def imax(conc: np.ndarray, e0: float, imax_value: float, ic50: float, hill: float = 1.0) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "3002aa337ce89670fa79bcaaac8bd7f1d7f0c4cbac31ef1bc57002a84d0dae7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#indirect_response",
      "name": "indirect_response",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L602-L651",
      "signature": "def indirect_response( times: Sequence[float], conc_fn: Callable[[float], float], kin: float, kout: float, idr_type: int, max_effect: float, c50: float, hill: float = 1.0, ) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "54829745700fd39cc00e9c543a579ff8cfa994b9899fde55759c7c737b55c733",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#indirect_response.drive",
      "name": "drive",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L629-L632",
      "signature": "def drive(t: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d818bf101cceec050487a6571201669a014381f4a00fe6e4d11dfa61429bee8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#indirect_response.rhs",
      "name": "rhs",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L634-L642",
      "signature": "def rhs(t: float, y: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "0854d3b40f7cc13318e3783656b4c22d9185a4ef6d6932e80071e229a89041bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#micro_constants",
      "name": "micro_constants",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L139-L149",
      "signature": "def micro_constants(d: Disposition) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bfd16c996633e6eb62597898908602e60e02a65715f84538c5d7fd88a4ec3da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "name": "simulate_linear",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L278-L306",
      "signature": "def simulate_linear( times: Sequence[float], regimen: Sequence[Dose], d: Disposition, ka: float | None = None, f: float = 1.0, tlag: float = 0.0, ) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "55568e99083912d3bfd5066eb6a5d76c860eb86543b887ef7cf9bd7d4bcfd168",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten",
      "name": "simulate_michaelis_menten",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L407-L449",
      "signature": "def simulate_michaelis_menten( times: Sequence[float], regimen: Sequence[Dose], vmax: float, km: float, v1: float, q: Sequence[float] = (), vp: Sequence[float] = (), ka: float | None = None, f: float = 1.0, ) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8a712b051b8f317bf681afce59058fc5e5df70fbc41eaa6a226d614990caffc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten.rhs",
      "name": "rhs",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L431-L445",
      "signature": "def rhs(_t: float, y: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "492d1d7f682b696719851b9cbead542c2dcd3466b51dc6b766a459594f4accb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd",
      "name": "simulate_tmdd",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L452-L544",
      "signature": "def simulate_tmdd( times: Sequence[float], regimen: Sequence[Dose], cl: float, v1: float, kon: float, koff: float, kint: float, ksyn: float, kdeg: float, q: float | None = None, vp: float | None = None, approximation: str = \"full\", ) -> dict[str, np.ndarray]",
      "exported": true,
      "origin": "ast",
      "body_hash": "597c1ac89377f9cd4daf6841f828f32e66dc53f83ca33d1208210e7bc919a852",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd.rhs",
      "name": "rhs",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L489-L501",
      "signature": "def rhs(_t: float, y: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e54264f60c1c6d4042be55de274bcc49e80540658222ce8acdf5f3dd544a4c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd.rhs_qss",
      "name": "rhs_qss",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L514-L528",
      "signature": "def rhs_qss(_t: float, y: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "c956cd57b56248730cb1de2d7ee3fa0205de573966638c582e7c6978265514e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/_models.py#steady_state_metrics",
      "name": "steady_state_metrics",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/_models.py",
      "span": "L309-L337",
      "signature": "def steady_state_metrics(d: Disposition, dose: float, interval: float, f: float = 1.0) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfd210bf6ae41c58767d7ef91e2f6d56d91726a00e8f5dbadb0835e304107658",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "name": "allometry_and_fih.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L1-L347",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0e221e3c45aa331e3243514951e8d1e5785dbd1ad2f68a32d1678bc9ba6eeef5",
      "chars": 16477,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#allometric",
      "name": "allometric",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L74-L75",
      "signature": "def allometric(value: float, weight_from: float, weight_to: float, exponent: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ab3cdbc3c911521d155296bede660b741a138ac954a5f7ccbb85a47fb38d060",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L126-L158",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a31a169151a9a9efb907c1afa2f546256977365583e8071b377f3fae6f2e1b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#fit_exponent",
      "name": "fit_exponent",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L89-L109",
      "signature": "def fit_exponent(weights: np.ndarray, values: np.ndarray) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8d171da844b7c473b44efa970f1fcb83dd5f37aa73a26cc2675ace9c7139add",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#hed_mg_per_kg",
      "name": "hed_mg_per_kg",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L78-L83",
      "signature": "def hed_mg_per_kg(animal_dose_mg_kg: float, species: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b62b4fa1db98823ffd122b6ce4b778ab3212cbff1da97cc3de7d1f0fce357f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#maturation_fraction",
      "name": "maturation_fraction",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L67-L71",
      "signature": "def maturation_fraction(pma_weeks: float, tm50: float = DEFAULT_TM50_WEEKS, hill: float = DEFAULT_MATURATION_HILL) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "99193cbeff95054fe0a69b906fb7f7af37d833698eb907a293b1aa95546498e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#rule_of_exponents",
      "name": "rule_of_exponents",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L112-L120",
      "signature": "def rule_of_exponents(exponent: float) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c98f7dc35a3d5adf6e6fcf1d298c0ca8a61d3a951d6edc95c0cf96857141af6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "span": "L161-L342",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "569db066dd1ba9f9a414678feb3752a9344f38cee32b37fedd01eae3affa312c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "name": "bioequivalence.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L1-L481",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0a3dcf9ff4b747ecb570512f9570654d4b44c795208839d72cc99327d45c8da0",
      "chars": 20486,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#abel_limits",
      "name": "abel_limits",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L212-L217",
      "signature": "def abel_limits(rv: ReferenceVariability) -> tuple[float, float, bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba580ca14e956e9a164b5104c66522c7b8630290eb09658de7a9571f92b6043c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#AverageBE",
      "name": "AverageBE",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L68-L76",
      "signature": "class AverageBE",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ed705600e4f7c1964640a6dafc68faf1fbd3c30303b2f25341bbc34ea45820a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L320-L346",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1625a322375d337fd3723e96d2024261443cb6f9cbad5fc9da1e22ce7511fc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#crossover_2x2",
      "name": "crossover_2x2",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L79-L147",
      "signature": "def crossover_2x2(records: list[dict], design: str = \"2x2\") -> AverageBE",
      "exported": true,
      "origin": "ast",
      "body_hash": "0405023249e6343c0a1c02ffa1ddc6226b6446fc37b6c13968786b82b68132e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#cv_from_s2",
      "name": "cv_from_s2",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L56-L57",
      "signature": "def cv_from_s2(s2: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd6a28fbd913b89f6152b1325a6b49196fec59d5a80884b3e25a2ef5e8dc90c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#load_records",
      "name": "load_records",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L292-L317",
      "signature": "def load_records(args: argparse.Namespace) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4164f411de376226221e513c4045a05f91993f2c51425d5381988fc3c003577",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#parallel_design",
      "name": "parallel_design",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L150-L170",
      "signature": "def parallel_design(records: list[dict]) -> AverageBE",
      "exported": true,
      "origin": "ast",
      "body_hash": "f255512a930266bfef2dad5768c19bb2fd68eae5386b1651a7599b3978c25b85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#reference_variability",
      "name": "reference_variability",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L191-L209",
      "signature": "def reference_variability(records: list[dict]) -> ReferenceVariability",
      "exported": true,
      "origin": "ast",
      "body_hash": "bba7e11f579a84285a883c7f4636823ce5bd54822226ad273cdfa4a13614390a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability",
      "name": "ReferenceVariability",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L177-L188",
      "signature": "class ReferenceVariability",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c9b696e64ae2ea1de92bd628d4b8bb6d341fa4e66a4fcb692637525f88f3d17",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability.cvwr",
      "name": "cvwr",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L187-L188",
      "signature": "def cvwr(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "47b51498a2f91bf2bc1161898780d7848179ce5926f11e0501192076a0d0ff8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceVariability"
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability.swr",
      "name": "swr",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L183-L184",
      "signature": "def swr(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e7735c387ee353c1773bd1dce77f6369038c71d981e0d1a38e17ce891f33c79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceVariability"
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#rsabe_bound",
      "name": "rsabe_bound",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L220-L237",
      "signature": "def rsabe_bound(estimate: float, se: float, df_point: int, rv: ReferenceVariability) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f1da6bd7d016c409708e8b2a298c8dcc3a608fbd2fce11b7404789952dd9079",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L349-L476",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1aeffc5a21d0d2322c47771b9327955732107c4fc114ae0d740ef82cf6d13e53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#s2_from_cv",
      "name": "s2_from_cv",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L60-L61",
      "signature": "def s2_from_cv(cv: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6a654a0731cc4340aa01ae9264d9d792e164a09fb19b3e5b9cbda63cc95c866",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#sample_size",
      "name": "sample_size",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L280-L286",
      "signature": "def sample_size(cv: float, gmr: float, target: float, design: str = \"2x2\", limits: tuple[float, float] = (0.80, 1.25)) -> tuple[int, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "51c31c2d4f6adf228beae5cb6e70896942b849a83cb789d2935a14f6055f182f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/bioequivalence.py#tost_power",
      "name": "tost_power",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "span": "L243-L277",
      "signature": "def tost_power(n_total: int, cv: float, gmr: float, design: str = \"2x2\", limits: tuple[float, float] = (0.80, 1.25)) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "27a148c001381f3144d235af03f8a69e5166a4642473453f9b0cb75a7a4d318b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "name": "check_popk_dataset.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L1-L401",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f5b8b700ac05bd601a7b17b37b86f2ea9200d9da6e2dd9a7de1140e554d63332",
      "chars": 17238,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#_is_missing",
      "name": "_is_missing",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L57-L58",
      "signature": "def _is_missing(value: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "64bea822e2018cf708b7dd152228c58e76688e086b380bb50aac2fd257942ef3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#_num",
      "name": "_num",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L47-L54",
      "signature": "def _num(value: str) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1705d4184229cb44c569b028855772f1b95e59b764f6361164cff2f0edfd97cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L344-L366",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "05ca5fed96aaf3befaa57f52a331caba0acc7d46e4a3445ef7f454144fa3a759",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "name": "check_dataset",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L84-L338",
      "signature": "def check_dataset(rows: list[dict[str, str]], args: argparse.Namespace) -> tuple[Findings, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "17de98bff945934dcb28a50fd08ff891b92d819f6cef2e2c72b0c40fccd8c096",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset.col",
      "name": "col",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L89-L90",
      "signature": "def col(name: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7d7a81910e14f60e9ef7a70340eb9d62138519352d99afa4f446d80cebd493f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings",
      "name": "Findings",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L61-L78",
      "signature": "class Findings",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d4e733c9e60b3153ea98d775c9d57b55418c8599898bf3a5fa2e04d273612e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L62-L63",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "79ea9b68466bae7ff69084e20ab2db9672cbfd3bb58f6aece56d9c97b0f46a2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Findings"
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.add",
      "name": "add",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L65-L75",
      "signature": "def add(self, severity: str, check: str, detail: str, rows: Sequence[int] = ()) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fe82784967917c0b7141388d3e8d0c1f5f5df19984e5cfb64dd5bb0979ed2b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Findings"
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.max_severity",
      "name": "max_severity",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L77-L78",
      "signature": "def max_severity(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7496f21f30128864481e5da989b34bc195b7f58682b3c2d08ac949e4e39995ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Findings"
    },
    {
      "id": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "span": "L369-L396",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb3fe4bef153184202548ff0ddbdd1013e18eeda5b544dd00caf5a35a002b3f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py",
      "name": "ddi_static.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L1-L347",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c2921b7fa24c404a19f66793c450d9bdc9d555d6b18dd745939a0c18a498b262",
      "chars": 15706,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L148-L179",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "1773bfe96442b49588105b7f1ce61a90ff0ab02c88f7710a41af833454e0958c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#classify",
      "name": "classify",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L128-L142",
      "signature": "def classify(auc_ratio: float) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e92bd793057356c36ce0241ac4de9dc23129b95a892b029026329ae0f2db5d37",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#inlet_concentration",
      "name": "inlet_concentration",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L65-L74",
      "signature": "def inlet_concentration(imax: float, fu: float, dose: float, fa: float, fg: float, ka: float, blood_ratio: float = 1.0) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e19adc25f229d127b3e0c5d7dacd3da8950507f2beeeb755b7a5095a7280c22",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static",
      "name": "mechanistic_static",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L77-L125",
      "signature": "def mechanistic_static( ih: float, ig: float, fm: float, fg: float, ki: float | None = None, ki_inact: float | None = None, kinact: float | None = None, kdeg_h: float = DEFAULT_KDEG_HEPATIC, kdeg_g: float = 0.0005, ind_emax: float = 0.0, ind_ec50: float | None = None, ind_scaling: float = 1.0, ) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "08efb9090801f5fd39e4db02b3a20cd2f5efcf7fae18e2ce40283a113ee61180",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static.terms",
      "name": "terms",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L101-L108",
      "signature": "def terms(i_conc: float, kdeg: float) -> tuple[float, float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "21e59d598df7403dd5532d28f3bbe17049724aa923c267cd9547687046261512",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#r1_reversible",
      "name": "r1_reversible",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L43-L47",
      "signature": "def r1_reversible(i_conc: float, ki: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1a2df61587271d68b728306f1b3db70282535f038450e55ffc6fa39bada4fed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#r2_time_dependent",
      "name": "r2_time_dependent",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L50-L55",
      "signature": "def r2_time_dependent(i_conc: float, ki_inact: float, kinact: float, kdeg: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b1927e25e422f46cb508e1e5b5e669bac10cdb7e9898bd35fcc883681c547e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#r3_induction",
      "name": "r3_induction",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L58-L62",
      "signature": "def r3_induction(i_conc: float, emax: float, ec50: float, scaling: float = 1.0) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5fc97e7d1fa8492bfd3d475b55496ec9666a0cc5c4cc24d230edae9343623ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/ddi_static.py",
      "span": "L182-L342",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "339821bf26b8ade1ee04faaa3b119730d18110202b5455550411af067c284f89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py",
      "name": "exposure_response.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L1-L329",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3ff7405fb6fb2d89bda228ef0fcdc74b805ed1583608a3747ced5fc40f4f70d5",
      "chars": 14667,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L219-L236",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b006fa0df73a9bf7d509158e259d4788ce7a863070edef84687a18150ffe905f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#fit_cqtc",
      "name": "fit_cqtc",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L144-L190",
      "signature": "def fit_cqtc(conc: np.ndarray, delta_qtc: np.ndarray, cmax: float | None) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "075d573ef6c40fb6d00af6621a62a2c12ccfcb49a72d91a60b8d3032416ccc48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "name": "fit_emax",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L52-L107",
      "signature": "def fit_emax(exposure: np.ndarray, response: np.ndarray, sigmoid: bool) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "90eaabba7ce4b0d311555ab7cb187ac74eee54997caa7f63fea217c69dccd858",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.predict",
      "name": "predict",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L65-L68",
      "signature": "def predict(theta: np.ndarray, x: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec7d4b615d4cc01bf9a4381b7d0dbaaa7b933e1c10585af238374f5cacd3eede",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.unpack",
      "name": "unpack",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L58-L63",
      "signature": "def unpack(theta: np.ndarray) -> tuple[float, float, float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "180a1f3e9e17e6f6f117ecb1f28e3f97d658dc9309492e743d258e15b6ef6788",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#fit_logistic",
      "name": "fit_logistic",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L110-L141",
      "signature": "def fit_logistic(exposure: np.ndarray, response: np.ndarray) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "193c49845012c424e1bb3800c8a1ff7f23ec6837e0f07a600ab010152dbb8dc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#fit_logistic.neg_loglik",
      "name": "neg_loglik",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L116-L119",
      "signature": "def neg_loglik(theta: np.ndarray) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "bec23028d3f88f0ce6ee8254ae3a69e82ca287179ba2815991568d782e8ff61f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#quartile_summary",
      "name": "quartile_summary",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L193-L213",
      "signature": "def quartile_summary(exposure: np.ndarray, response: np.ndarray, n_bins: int) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "12f77a9d9c270460b25bc60214a5926d13e79ea6935984613619b3a462011187",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/exposure_response.py",
      "span": "L239-L324",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "31a6fc321237918655e5f67d7f80a0b22d9a6dac651afdc63f637478ee5024d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "name": "fit_compartmental.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L1-L559",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "50fa4a0e1f81e0251a85291019bbf938071004ef7bf10d8bd94de25eec1f1852",
      "chars": 21624,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "name": "_fit_and_report",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L395-L482",
      "signature": "def _fit_and_report(spec: FitSpec, args, subject: str, time, conc, report: Report) -> FitResult",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a039704b7611dc277c5ccf2b2fbf0a66d4b0bb4347d8fcbdc0633f0979548db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#_regimen",
      "name": "_regimen",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L94-L101",
      "signature": "def _regimen(spec: FitSpec) -> list[Dose]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f25cd6777da679115c26d621b4cacfe4f9eb6403f7931ece7e7d0df4788270f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#_weights",
      "name": "_weights",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L162-L174",
      "signature": "def _weights(y: np.ndarray, yhat: np.ndarray, scheme: str) -> np.ndarray",
      "exported": false,
      "origin": "ast",
      "body_hash": "74b0831242eddf2d83315aa448aee78e4a35e700a48f7f5a6c037e8105049753",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L367-L392",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "7eed868dbbf2fac598675f20634b99537630be3a3596ab9ba69ce9042a6f42aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "name": "fit_one",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L214-L312",
      "signature": "def fit_one( spec: FitSpec, time: np.ndarray, conc: np.ndarray, scheme: str, starts: int = 5, seed: int = 20260727, ) -> FitResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "960c597ce02efd04da1c093f5feaa3f8a0730a135570f4b894c2e00b98bcd9b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one.residual",
      "name": "residual",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L232-L241",
      "signature": "def residual(log_theta: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "c91ab87fc2a9320875e797eebbfd414671e95abbe97ebfca90c4d7e700a90953",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult",
      "name": "FitResult",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L137-L159",
      "signature": "class FitResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d4e87edcd238d930d0e31f8a384808c76b5f015c4c24aeac696bb7a463553fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult.aic",
      "name": "aic",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L154-L155",
      "signature": "def aic(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d7b2883f8e13fbe04b7264bd881422c154e575348e85b64e57d9fae4421143e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FitResult"
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult.bic",
      "name": "bic",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L158-L159",
      "signature": "def bic(self) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "3eaa2dc2db040772126196ed2ed7a859e9a20b0c32516187b751100dec9f7e1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FitResult"
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitSpec",
      "name": "FitSpec",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L71-L91",
      "signature": "class FitSpec",
      "exported": true,
      "origin": "ast",
      "body_hash": "45eb585e277d4827c0ee1359df99390989d3ce49b7b55c37f432cfb70f3d3385",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitSpec.parameter_names",
      "name": "parameter_names",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L82-L91",
      "signature": "def parameter_names(self) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1eb9e87fb7298b8576c5a3a52e0b655be3e0dffffe7c46b63ab05f5ce85f93d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FitSpec"
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#initial_estimates",
      "name": "initial_estimates",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L177-L211",
      "signature": "def initial_estimates(spec: FitSpec, time: np.ndarray, conc: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ecc9e911d36a4dedec4669ace8717b20f8dff46a54bfbf9e1582a33a322dbb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor",
      "name": "predictor",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L104-L130",
      "signature": "def predictor(spec: FitSpec) -> Callable[[np.ndarray, np.ndarray], np.ndarray]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e55a526dab6d23f40ea0c16e69694bee5bcea7f9a7ffb6a8b0c29a17c2618d7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "name": "predict",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L109-L128",
      "signature": "def predict(times: np.ndarray, theta: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8a1c683810341bed2f2009705afa1f8a73d89a5cf4b18c7bc67b3769d9b8d26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L485-L554",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5707297e2684436393d77592ab341470fda5ccfe68a304d3c427fd99ecf5d477",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#runs_test_p",
      "name": "runs_test_p",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L344-L361",
      "signature": "def runs_test_p(residuals: np.ndarray) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9cb923ea0db7c5962c9284a357baaa3512082619051e6b3f6cddac278636fe7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/fit_compartmental.py#secondary_parameters",
      "name": "secondary_parameters",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "span": "L318-L341",
      "signature": "def secondary_parameters(spec: FitSpec, theta: np.ndarray) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d26e12a2e7685ef4db6c3cd8307c234a605620665e47d1efc8b31b088bf54356",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py",
      "name": "nca.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L1-L588",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a97bbc4abdfc1a7984105ddbcb76f534b875721d6984d6eff4d8e24d96623b11",
      "chars": 23287,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#_loglinear_fit",
      "name": "_loglinear_fit",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L222-L233",
      "signature": "def _loglinear_fit(t: np.ndarray, c: np.ndarray) -> tuple[float, float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1da41f2d1cc7b85177340c92b292e2d58e1b7cd0ea40dda29f3a3372f9ba98cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#_parse_conc",
      "name": "_parse_conc",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L66-L86",
      "signature": "def _parse_conc(raw: str, lloq: float | None, rule: str) -> tuple[float | None, bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a087e7a37f3df3817bc5d0f45d0e2ad4367cfb1da841ec4bd222245fb3153a0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#_partial_spec",
      "name": "_partial_spec",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L460-L468",
      "signature": "def _partial_spec(text: str) -> tuple[float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f171eff4f39ad2d7de35846c369bc566cd999e973f30bf3eee0779e68111c8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#_segment",
      "name": "_segment",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L146-L163",
      "signature": "def _segment(t0: float, t1: float, c0: float, c1: float, method: str) -> tuple[float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ae6167417256ffd6c19eb367308539ef3b82c00ce35a188028e91e4c35a08819",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#_window_spec",
      "name": "_window_spec",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L471-L472",
      "signature": "def _window_spec(text: str) -> tuple[float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a5753f87b69ea238076afb955a9306a9104fa38b711a303a3214c1b0de3031c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "name": "analyse",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L313-L424",
      "signature": "def analyse(profile: Profile, args: argparse.Namespace) -> tuple[dict, LambdaZ, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe5118e7e22c3f8c02761cde4d43ce4ed124997c663dfe4500b8b5e44d3072d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L475-L516",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f2d9e09e9ddd0c0568a48533cbea0ed62bbf22992efb715a7feb748d7477df0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#cumulative_auc",
      "name": "cumulative_auc",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L166-L173",
      "signature": "def cumulative_auc(time: np.ndarray, conc: np.ndarray, method: str) -> tuple[np.ndarray, np.ndarray]",
      "exported": true,
      "origin": "ast",
      "body_hash": "81b178307f583c6d4c8b787eda2c7be2a58ab9ab6d9e50ce74558d6f8cd0d7c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#estimate_lambda_z",
      "name": "estimate_lambda_z",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L236-L307",
      "signature": "def estimate_lambda_z( time: np.ndarray, conc: np.ndarray, is_blq: np.ndarray, tmax: float, min_points: int = 3, manual: tuple[float, float] | None = None, ) -> LambdaZ",
      "exported": true,
      "origin": "ast",
      "body_hash": "53807e710da27f5fbf57e015fa8b2d7dfd5288b0e92445aa403ce749487e2079",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#interpolate",
      "name": "interpolate",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L176-L188",
      "signature": "def interpolate(time: np.ndarray, conc: np.ndarray, target: float, method: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "37491ef3c4489981140b0c7b2a17eff8c8d4bd1d90e5d17dd98a1b40ecc1747f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#LambdaZ",
      "name": "LambdaZ",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L205-L219",
      "signature": "class LambdaZ",
      "exported": true,
      "origin": "ast",
      "body_hash": "52129eeca795318cf7d2ae5a4ef292939fb0e558fccd62b03377e48b0ad0646e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#LambdaZ.half_life",
      "name": "half_life",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L218-L219",
      "signature": "def half_life(self) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1424d460703e3074edba96af88944b4f2ff54c5501c3a9eb498615bb933319e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LambdaZ"
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "name": "load_profiles",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L89-L140",
      "signature": "def load_profiles(args: argparse.Namespace) -> list[Profile]",
      "exported": true,
      "origin": "ast",
      "body_hash": "77ca27f3305acd77de61df4ccbc21f54bd3ad4961c55cb68b5a736b1092463b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#partial_auc",
      "name": "partial_auc",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L191-L198",
      "signature": "def partial_auc(time: np.ndarray, conc: np.ndarray, start: float, end: float, method: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc87a6daa28aa6bd0624db8a64c69cc8fa90e7b3dcc9d633e00704d6bfc89066",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#Profile",
      "name": "Profile",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L56-L63",
      "signature": "class Profile",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2515cd89b52060181f45b289766add761fc766bcd8d001f380c52bec6769f8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L519-L583",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b96ea3528eeb1c1f6d0571fcfb84be06f0d3c60239edd02abb84cd1119283fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/nca.py#summarise",
      "name": "summarise",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/nca.py",
      "span": "L430-L454",
      "signature": "def summarise(rows: Sequence[dict], keys: Sequence[str]) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "de65316090c99f384626e81e0d0dc199aaa48b42459309ade61704ce307ff9d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "name": "simulate_regimen.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L1-L324",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0943a0a994cedcc9f4393e8a528a950c07cf184a6e73f6a83fa0f593dec7a791",
      "chars": 15790,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#_regimen_spec",
      "name": "_regimen_spec",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L66-L73",
      "signature": "def _regimen_spec(text: str) -> tuple[float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "36583b656cb8c4d96ddf6b6285f411a427a641f138a1e004af2e5b573bed6216",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L76-L114",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a73d8676f3e74f3cc69c18a808e97cbfc8d4447fca5824fd3a0f6057fc547e56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L117-L319",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2d9d419d9feaf06ef2d6bf21dc4f3e1a64e8bd859305f5bab401517310832d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.evaluate",
      "name": "evaluate",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L178-L189",
      "signature": "def evaluate(grid: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7e4df6eabb235a44c8216fd5952460d1823fb4d969c20977f00eb80310b430b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.evaluate~2",
      "name": "evaluate",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L201-L202",
      "signature": "def evaluate(grid: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "73aabf4d65d01d146359b6e0098152233f6256c14ca21062dfcb2f74146c3002",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.percentiles",
      "name": "percentiles",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L269-L278",
      "signature": "def percentiles(values: np.ndarray, label: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "b646b7587300c4be712189243b5b3bd0268f8a0a39058f0c0d149a28b4ad1d5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/simulate_regimen.py#summarise_interval",
      "name": "summarise_interval",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "span": "L39-L63",
      "signature": "def summarise_interval(evaluate, start: float, end: float, points: int = 4001) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcdfb7a2ed5003790676ddc8950d295b36c6ac1f7f19fd8434656e9dd0ef9a88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "name": "tdm_bayes.py",
      "kind": "file",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L1-L313",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "91494c4406336c2ac7ca6e80ca28cf0cfdb61434be47443b656749fec49eae2b",
      "chars": 13050,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#_level",
      "name": "_level",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L166-L176",
      "signature": "def _level(text: str) -> tuple[float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "11a7c2b45e7106ef860826904bfa255c9211b53d0b3793707d1c78cf74774ced",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L179-L202",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1328d97fdb43f35a0b751e24031611f67597321427e7bd1ebf901c890104e3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#exposure_metrics",
      "name": "exposure_metrics",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L142-L155",
      "signature": "def exposure_metrics(cl: float, v: float, dose: float, interval: float, infusion: float) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf35b07ca72bdc98ce4e0eb97b79973d005634f600f7888908fcffd4cc9e2d24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate",
      "name": "map_estimate",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L85-L139",
      "signature": "def map_estimate( model: PopulationModel, cl_prior: float, v_prior: float, dose: float, interval: float, n_doses: int, infusion: float, levels: list[tuple[float, float]], ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "41b7883d079a084eba0bdf8d9c456a12e999805f55a7f7c5119ee81dbad4bc58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.objective",
      "name": "objective",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L114-L119",
      "signature": "def objective(eta: np.ndarray) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "59c404c9f21a0fb729d28531d402c722beca96377509364cde2d01ee822d7512",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "name": "predict",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L104-L109",
      "signature": "def predict(eta: np.ndarray, times: np.ndarray) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf7c9c68fe8dfa80103d6dd35cbd3ca5a78380bb99605705f67f6f289681c0ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel",
      "name": "PopulationModel",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L43-L56",
      "signature": "class PopulationModel",
      "exported": true,
      "origin": "ast",
      "body_hash": "2980a9c0b0872bfb1716d6c20b713e44baef91571c795a88f785fcc10759402a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel.individualise",
      "name": "individualise",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L55-L56",
      "signature": "def individualise(self, weight: float | None, crcl: float | None) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc14b10663b226c62f4961f8b044c9005be09c9b8e78059dfa5b826e8925bafb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationModel"
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#recommend_dose",
      "name": "recommend_dose",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L158-L160",
      "signature": "def recommend_dose(cl: float, target_auc24: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "11d1de4e31e64bf78b84d74fa7ce11546ba6b0efd9e00bd6d3d7a01d07914630",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L205-L308",
      "signature": "def run(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "67332b75d5b167059263f42ee4c051f6ca14e8cd8af4af852a27b19a9b71e771",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult",
      "name": "VancomycinAdult",
      "kind": "class",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L60-L66",
      "signature": "class VancomycinAdult(PopulationModel)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73aca69acc094973bf4410157b29220adc9c10c4ff8b691346ce70ed21b3ea7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult.individualise",
      "name": "individualise",
      "kind": "method",
      "path": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "span": "L61-L66",
      "signature": "def individualise(self, weight: float | None, crcl: float | None) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7da1164936670d65e47e5130dde36e65170201ad568b68da3160c5e31011ceaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VancomycinAdult"
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L1-L397",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5ab02f9993a7a4e05a6409b7e3da9b77c951e3bb16e55dff16b43671a4411b96",
      "chars": 13520,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#_linear_channel",
      "name": "_linear_channel",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L377-L381",
      "signature": "def _linear_channel(channel: int) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "2437e388b3030c3489ef2c735a418dac691f65c0577a4805bb575edaeb9923d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#_object_without_duplicates",
      "name": "_object_without_duplicates",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L163-L169",
      "signature": "def _object_without_duplicates(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "fe286a160e92657ba2c1fbfcdd77a4a9d1c76ea512a78713b33ed9a350c4f36f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#_reject_nonfinite_constant",
      "name": "_reject_nonfinite_constant",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L172-L173",
      "signature": "def _reject_nonfinite_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "225af747ae64d8860ad74459bfb4d2b4a32b05ef7f4875962a268f161ead735d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L127-L141",
      "signature": "def atomic_write_bytes(path: Path, payload: bytes) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ae101269b0bb8ea58eaea127ecf6a5f314c6b0c914257fd2ce52c92e8e0ce84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#canonical_json_hash",
      "name": "canonical_json_hash",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L278-L287",
      "signature": "def canonical_json_hash(value: Any) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab29ab70ba00a3054f274e6afade8aae7160ed093403a712ec7b72b2490a1e81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L46-L73",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, max_bytes: int = MAX_INPUT_BYTES, suffixes: Iterable[str] | None = None, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "162ce6eabf055afce8b9f9cb63d2adc913e6e0dc3fd9a1e35823e3f9b3b61990",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L76-L97",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, suffix: str | None = None, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c9b951eb0024ff4b2323a3f59c75343ab98727bc9a3da2b0d76e62cf9b4a5c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L42-L43",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7175984e2a726e54bcde2c2de782dba89122975cfdd34af036857ca8b2b37658",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#commit_temp_file",
      "name": "commit_temp_file",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L112-L124",
      "signature": "def commit_temp_file(temporary: Path, destination: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4ffc988f621290404a41fbbaf1c071a2ff3b5a388f3ea736c9c10b9af7432c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#contrast_ratio",
      "name": "contrast_ratio",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L390-L396",
      "signature": "def contrast_ratio(first: str, second: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "02ca60b7bee9bb6b719f7f940fdb9fb38a5eb7204a1b6f106a53cfc56893934b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L144-L160",
      "signature": "def emit_json( document: dict[str, Any], *, output: str | os.PathLike[str] | None = None, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2572dc111efb4cc71c1e261257e8e595155940ebb56969652c8fc43ef81b925",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L250-L267",
      "signature": "def finite_number( value: Any, *, context: str, minimum: float | None = None, maximum: float | None = None, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "a57af7c2721f1526e5cc7ce1d1dfe0b8242cbae9af9e6cbaf0908a00b96e9654",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#has_placeholder",
      "name": "has_placeholder",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L331-L353",
      "signature": "def has_placeholder(value: Any) -> tuple[str, str] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b5099363d1828a1e29fde1cbaac5620a65f9f3a92671467e413169d3073d0f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#has_placeholder.walk",
      "name": "walk",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L334-L351",
      "signature": "def walk(item: Any, path: str) -> tuple[str, str] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf794529232f1a4b4a081bfe6f17a000f8db1db5235bb6fa382974abc8ae5773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "name": "load_json_file",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L176-L201",
      "signature": "def load_json_file( value: str | os.PathLike[str], *, max_bytes: int = MAX_JSON_BYTES, ) -> tuple[Path, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b704feacb30be9f3fdc239be33de988ca7f384318a37edefcc8239b7458650e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#parse_aware_datetime",
      "name": "parse_aware_datetime",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L356-L366",
      "signature": "def parse_aware_datetime(value: Any, *, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c698f2d9aa1a992aa7153a6990dcbf362448046863ddb8c97b7a2190bfda8e26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#parse_hex_color",
      "name": "parse_hex_color",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L369-L374",
      "signature": "def parse_hex_color(value: Any, *, context: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecaa4cde22db63ec961b9a4d9e2e5157657c41dafddbd191601a66b05ce37cd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L270-L275",
      "signature": "def positive_int(value: Any, *, context: str, maximum: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa4946bcef2cdbb393196f0546714f68a91a0a632a0bd5590026f6f797d14891",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#private_temp_file",
      "name": "private_temp_file",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L100-L109",
      "signature": "def private_temp_file(destination: Path, *, suffix: str = \".tmp\") -> tuple[int, Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d6f29fda6f23e2c72c0ab5518cca9bc95a653354f4ad723b34d9d1a581c9105",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "name": "reject_unknown_keys",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L204-L220",
      "signature": "def reject_unknown_keys( value: Any, *, context: str, allowed: set[str], required: set[str], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7d62b61ca282a3f65a3bbe3dd4b78ada685f81e3c6f3f073e12aaf560252ae1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#relative_luminance",
      "name": "relative_luminance",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L384-L387",
      "signature": "def relative_luminance(color: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "47cd47f9fedcffaac42af3bdb6450c0b3b35323aab0c9ecec0e914e526c07a45",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#require_bool",
      "name": "require_bool",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L244-L247",
      "signature": "def require_bool(value: Any, *, context: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "937d77d58ecbd660ecb817cb8ba5ededed71b2caaec78bf5aa3875cfd4a71740",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#require_string",
      "name": "require_string",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L223-L241",
      "signature": "def require_string( value: Any, *, context: str, minimum: int = 1, maximum: int = 10_000, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0eaacd722feeb20f2a3014cf7867e6c614ebf6ed321439eb2465f3ec7f1a64e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "name": "resolve_local_asset",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L303-L328",
      "signature": "def resolve_local_asset( manifest_path: Path, relative_value: Any, *, suffixes: set[str], ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "10f04e17524a2f87d7271a322d210e6b29e76a64890e5e000df171f8c86919cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_common.py",
      "span": "L290-L300",
      "signature": "def sha256_file(path: Path, *, max_bytes: int = MAX_ASSET_BYTES) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9777c4fce162ee4de6445701d19306bd275fe43930a21aba3fd5b6ce4848ef71",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py",
      "name": "_manifest.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L1-L1319",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4b59a232f6a18b8842a403b390773adfad612f3db7a5e982c68b5eada993c43e",
      "chars": 46535,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "name": "_identifier",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L84-L91",
      "signature": "def _identifier(value: Any, *, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "8fa6c129ad2709ccfe64c92c62bb9b7eecfa8ce920acb78c1573b951bcbb8b4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_nullable_source_id",
      "name": "_nullable_source_id",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L94-L97",
      "signature": "def _nullable_source_id(value: Any, *, context: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2ee8a48795446224a99eb817f15f1d6f098d0070372f3a960ae05b9e5ced4373",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_source_id_list",
      "name": "_source_id_list",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L122-L127",
      "signature": "def _source_id_list(value: Any, *, context: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "73885656aebb3d381bdbe96efd9b4813d24962a6fe2bb259ef805aa711aa7c53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_string_list",
      "name": "_string_list",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L100-L119",
      "signature": "def _string_list( value: Any, *, context: str, minimum: int, maximum: int, ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bdde7aea2f21ac0d831534606002e176785827bbf0475b874e37a22ebfff20c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_approval",
      "name": "_validate_approval",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L1073-L1115",
      "signature": "def _validate_approval( value: Any, *, content_hash: str, require_approval: bool, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "966494da9f9930128c5bd98f1e78bf142a9ea84457d96ac33bed93cb0383b372",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_asset_path_syntax",
      "name": "_validate_asset_path_syntax",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L617-L627",
      "signature": "def _validate_asset_path_syntax(value: Any, *, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "00a05d5fbfb185f21c7b216712a6cb37ab94b9b4d479f4409d06e1756115858c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "name": "_validate_assets",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L630-L740",
      "signature": "def _validate_assets( value: Any, *, manifest_path: Path, verify_assets: bool, ) -> tuple[dict[str, dict[str, Any]], dict[str, Path], set[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5c7b0cd722f667244e650e4059a73187babde58114cb6fa4c50f2ddad44d9dcd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_box",
      "name": "_validate_box",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L743-L760",
      "signature": "def _validate_box( item: dict[str, Any], *, context: str, canvas_width: float, canvas_height: float, ) -> tuple[float, float, float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "dbad1629ae2b3541a3f6c20af00d4c80ba64f3c53ed21a8d0c0c284a8a45ca92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_canvas",
      "name": "_validate_canvas",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L162-L182",
      "signature": "def _validate_canvas(value: Any) -> tuple[dict[str, Any], float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c274eb37b352619e3fa5fa348712f181fcc0681f5f7687981c94f6aae61ea98d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "name": "_validate_document",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L137-L159",
      "signature": "def _validate_document(value: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "edabb6a96c44936fb0d5101c97f123a7ac6ce9a2a82fd0c224bce3410805c77b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "name": "_validate_elements",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L763-L1070",
      "signature": "def _validate_elements( value: Any, *, document: dict[str, Any], canvas_width: float, canvas_height: float, print_scale: float, bleed: float, safe_margin: float, quality: dict[str, Any], colors: dict[str, str], contrast_pairs: dict[str, dict[str, Any]], assets: dict[str, dict[str, Any]], ) -> tuple[dict[str, dict[str, Any]], set[str], set[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8c722b0ef14f3273556029a09e94dee824f5374a08dd4be718ddaa0bffb61380",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_palette",
      "name": "_validate_palette",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L540-L614",
      "signature": "def _validate_palette( value: Any, *, enforce_thresholds: bool = True, ) -> tuple[dict[str, Any], dict[str, str], dict[str, dict[str, Any]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9a558039fb76326ef724f65038ca3c5e54d1e4784f23af3c0b1e0aa98e80a463",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_physical_output",
      "name": "_validate_physical_output",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L185-L257",
      "signature": "def _validate_physical_output( value: Any, ) -> tuple[dict[str, Any], float, float, float, float, float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "584db1933b7469a29123cbda899ecd4db41010b2ba16672bd96a54c0b63cd545",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_quality",
      "name": "_validate_quality",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L478-L537",
      "signature": "def _validate_quality(value: Any) -> tuple[dict[str, Any], set[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9fcdef1eb0580e7902125377d8c03a40792d50fb666422a60b350665a3681aa9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_requirements",
      "name": "_validate_requirements",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L292-L475",
      "signature": "def _validate_requirements( value: Any, *, trim_width: float, trim_height: float, bleed: float, safe_margin: float, print_scale: float, ) -> tuple[dict[str, Any], set[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6a76bdeed83f3d39dbd6dfa7f783e48e9af74c092d709c9760d5afcf0e00379c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#_validate_sources",
      "name": "_validate_sources",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L260-L289",
      "signature": "def _validate_sources(value: Any) -> dict[str, dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6331897f2b564f3db1085857ffa7f09f7bc77ab0f61d4411d695656336e6f1c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "name": "load_and_validate_manifest",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L1302-L1318",
      "signature": "def load_and_validate_manifest( value: str | Path, *, verify_assets: bool = True, require_approval: bool = True, enforce_contrast: bool = True, ) -> tuple[Path, dict[str, Any], dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f36e96428a5fe4d909d404c4ede360f4b8120c0e136b5e3b8b59c6b3692414e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "name": "manifest_content_hash",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L130-L134",
      "signature": "def manifest_content_hash(document: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "977022f64decc06c1c416ebc5d77438b6b6b3dc51a2519c7eb7c79b1dd5c235d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "name": "validate_manifest_document",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_manifest.py",
      "span": "L1118-L1299",
      "signature": "def validate_manifest_document( document: Any, *, manifest_path: Path, verify_assets: bool = True, require_approval: bool = True, enforce_contrast: bool = True, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdda1838e1576fce1016f0d1e56a66e7626e38b6096da381ab9017c88b9f4603",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py",
      "name": "_pptx.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1-L1485",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7c350c4aa56db63ae2789c499ad8b48a037a0847d4d0408adfe99a0054ad0394",
      "chars": 54581,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_allowed_generated_part",
      "name": "_allowed_generated_part",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L175-L177",
      "signature": "def _allowed_generated_part(name: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "7fc70dbe41e0cb59820ec9ef3399b24cb1ab03da202335b706672d09d1eba2cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "name": "_finding",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L168-L172",
      "signature": "def _finding(code: str, message: str, *, location: str | None = None) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3b00f214955753bf376787bd4aec74b931b855ee315eb82ee057cb7e560be798",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_font_sizes_pt",
      "name": "_font_sizes_pt",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1083-L1094",
      "signature": "def _font_sizes_pt(shape: ET.Element) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a24db7a5fa516d5bccfa07668e6771928cefdd3a58f1186cc9464bae6aee9b7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_all_xml_parts",
      "name": "_inspect_all_xml_parts",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L697-L710",
      "signature": "def _inspect_all_xml_parts( archive: zipfile.ZipFile, names: set[str], ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "67ac9bcc2efb4e073d276b033523793019ce5e6c20a552f3e3df58bbcce38686",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_content_types",
      "name": "_inspect_content_types",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L478-L584",
      "signature": "def _inspect_content_types( archive: zipfile.ZipFile, names: set[str], ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "15dc940e9ddfdca4f4452b78937d1d5ffc0829e6f123f90fde9f60261c1ff6a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_forbidden_markup",
      "name": "_inspect_forbidden_markup",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L902-L947",
      "signature": "def _inspect_forbidden_markup( archive: zipfile.ZipFile, names: set[str], ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5eb39c273e5f80a1c702b03c4bd0533175b569e95dac49315afab3a61d5306d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_image_payloads",
      "name": "_inspect_image_payloads",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L787-L823",
      "signature": "def _inspect_image_payloads( archive: zipfile.ZipFile, names: set[str], ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "903c9c1486ea556d1ccb7dfbde64bb5d197432b76197c7d551345ba4ee80e3ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_one_slide_profile",
      "name": "_inspect_one_slide_profile",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L713-L784",
      "signature": "def _inspect_one_slide_profile( archive: zipfile.ZipFile, names: set[str], ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "db112bd369a13d861ae1a0134ea22879594bd1104587b0034b32dc81de2faef2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_relationships",
      "name": "_inspect_relationships",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L587-L694",
      "signature": "def _inspect_relationships( archive: zipfile.ZipFile, names: set[str], ) -> tuple[list[dict[str, Any]], int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ebce22d85b56706f2996c25c9fe597522d3d2e3953a40aa080a1294f789f7ca5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_inspect_slide_accessibility",
      "name": "_inspect_slide_accessibility",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L826-L899",
      "signature": "def _inspect_slide_accessibility( archive: zipfile.ZipFile, names: set[str], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8acb680c93a4c3fc448df97eefeec17df3df8ba2901a55fc2be928a3e0ecae87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_intersection",
      "name": "_intersection",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1097-L1109",
      "signature": "def _intersection( first: tuple[int, int, int, int], second: tuple[int, int, int, int], ) -> tuple[int, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b97ea4f8bad0e706c84d13c26628e7ca8667a47f46aacb4d9edb8d18fe4af246",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_local_name",
      "name": "_local_name",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1045-L1046",
      "signature": "def _local_name(tag: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "66bc581377f74c230916b3cae7dc4fcb889a8cfff87f37a7e740b424495e9143",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "name": "_parse_xml",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L271-L289",
      "signature": "def _parse_xml(raw: bytes, *, location: str) -> ET.Element",
      "exported": false,
      "origin": "ast",
      "body_hash": "aaac6dbda5bad9591e84f3481024819b0b070b1a4e5d0086406bcec779ebf9c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_preflight_members",
      "name": "_preflight_members",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L319-L475",
      "signature": "def _preflight_members( archive: zipfile.ZipFile, ) -> tuple[list[zipfile.ZipInfo], list[dict[str, Any]], set[str], int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bc3f12695aa69fbfb09758a42123ecf1feb16b502bfbee60089f184150ccfcb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_preflight_zip_directory",
      "name": "_preflight_zip_directory",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L180-L263",
      "signature": "def _preflight_zip_directory(path: Path) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6358feb972c73e45fc2f5b621d0b83619365dc2114ebe7d3b9d3167fb0621aa0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_relationship_source_directory",
      "name": "_relationship_source_directory",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L292-L300",
      "signature": "def _relationship_source_directory(rels_name: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b0ec4f2f346e5bb6ddcd06d606ed6bc5009326a9ed9f3b3b3112b94a8992f9a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_resolve_internal_target",
      "name": "_resolve_internal_target",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L303-L316",
      "signature": "def _resolve_internal_target(rels_name: str, target: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "cc1cf55411e7b655c217f75706e93ea6f312d7523714bcb004e5e14b57f188bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_shape_name",
      "name": "_shape_name",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1072-L1074",
      "signature": "def _shape_name(shape: ET.Element) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "9cebc8796e91f7c8b0e9b61b60ebf63decb605b9b5e1d2cb304b35376eb92c48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_shape_text",
      "name": "_shape_text",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1077-L1080",
      "signature": "def _shape_text(shape: ET.Element) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "161ca2e092d77deb31578bd45400b9d68f7fc35418449d95625ff6cedc6b5ee4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_shape_transform",
      "name": "_shape_transform",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1049-L1069",
      "signature": "def _shape_transform(shape: ET.Element) -> tuple[int, int, int, int] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2c75084d8118dad5d4afa0dc2fd370e0c482daca98d47890fc7105ee4c471f94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#_unsafe_xml",
      "name": "_unsafe_xml",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L266-L268",
      "signature": "def _unsafe_xml(text: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "495069423b98def79c13f7a39dfc829f74c080b74cb380d9cd6c1ed95488fb14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "name": "analyze_layout",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1112-L1318",
      "signature": "def analyze_layout( value: str | Path, *, print_scale: float = 1.0, minimum_font_pt_final: float = 18.0, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffda7dda3bb53916ccb09cb5f0d6c8e869ad97aa3c7ac09ba642eabde22ab713",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "name": "inspect_pptx",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L950-L1034",
      "signature": "def inspect_pptx(value: str | Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "38de794e40982d199cef1dcff0e3b71f5be7cd664fb2f498fba2b81c41f160ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#patch_accessibility_metadata",
      "name": "patch_accessibility_metadata",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1405-L1484",
      "signature": "def patch_accessibility_metadata( source: Path, destination: Path, *, alt_text_by_shape_name: dict[str, str], language: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9821fdb9c825f36567724188b53bd5a8a5d206a1596d18539e12b98e4127c721",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "name": "require_safe_pptx",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1037-L1042",
      "signature": "def require_safe_pptx(value: str | Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4caa5695dec1c9e448ddef98cd4456cc08fab6956ef519a3ebbf7791e6627024",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/_pptx.py#strip_generated_printer_settings",
      "name": "strip_generated_printer_settings",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/_pptx.py",
      "span": "L1321-L1402",
      "signature": "def strip_generated_printer_settings(source: Path, destination: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "187ffcdf098f7b3252121dbab8f973859b2086defcb16340801f402d3cfee2bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_layout.py",
      "name": "check_layout.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/check_layout.py",
      "span": "L1-L180",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d49588b8c9658abe3e621b2ddbbf9fd7253e3b2f0e01185eb145a1c8d23d9d5b",
      "chars": 5952,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_layout.py#_manifest_settings",
      "name": "_manifest_settings",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_layout.py",
      "span": "L58-L74",
      "signature": "def _manifest_settings(path: str) -> tuple[float, float, dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a4f401e3a9ce96d30b7c6bf2f9e1b3a3cd9dd2e4305f00256b676c1ce1eeeace",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_layout.py#_positive_float",
      "name": "_positive_float",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_layout.py",
      "span": "L16-L23",
      "signature": "def _positive_float(value: str) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "23c38a2ad9383a4ab9ecc3a94e3f194d29925daabf8258f89782503410471b71",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_layout.py#apply_manifest_checks",
      "name": "apply_manifest_checks",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_layout.py",
      "span": "L77-L121",
      "signature": "def apply_manifest_checks( report: dict[str, Any], document: dict[str, Any], validation: dict[str, Any], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4a76f3cf8faad849888e8a32b98c5dca2e9258622fde9b331f12f46737ea177",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_layout.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_layout.py",
      "span": "L26-L55",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7699603316a15b72944aeaf143382bf90d8630a4441ad0101ee42788129944d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_layout.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_layout.py",
      "span": "L124-L175",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "19368d9db86f9282b6398a67a9ac74c46b8736e1d645f9c2558209ce6984c937",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_palette.py",
      "name": "check_palette.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/check_palette.py",
      "span": "L1-L143",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f9bfc91cfc9c95461acb6c7ade5c4cf60fa76ebf2e2cdd818ed4b9a13ced6b32",
      "chars": 4856,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_palette.py#_lstar",
      "name": "_lstar",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_palette.py",
      "span": "L17-L25",
      "signature": "def _lstar(color: str) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "02b48c510e0cd5be543cd2c24eac44e3b0bc32213b4d69d77842e3f68ebf3825",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_palette.py#audit_palette",
      "name": "audit_palette",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_palette.py",
      "span": "L28-L104",
      "signature": "def audit_palette(document: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "654d8fe9847d825ff7105c38dc88d324da94347c64b420ab8500de4341fe0857",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_palette.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_palette.py",
      "span": "L107-L117",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d985d8586c0bcb29f9cd6a67813de5582fc98487eaf6e48fc63f39ac4ba85208",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/check_palette.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/check_palette.py",
      "span": "L120-L138",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0be64c3815e0be00ed3030799005916e1329adc16b04e89cad6f9a36aca1f897",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py",
      "name": "generate_poster.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L1-L428",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "062aedd0068c870898862897e141edb4e8e0f3d0de7ff424fef6c16061557ca5",
      "chars": 15234,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#_add_picture",
      "name": "_add_picture",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L137-L165",
      "signature": "def _add_picture( slide: Any, element: dict[str, Any], *, order: int, asset: dict[str, Any], asset_path: Path, metadata: dict[str, Any], Inches: Any, ) -> tuple[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "04881c34461378e12a795c3abd76867217def7541f67f8079c593a9b7cb6fb8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#_build_presentation",
      "name": "_build_presentation",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L168-L260",
      "signature": "def _build_presentation( document: dict[str, Any], validation: dict[str, Any], *, image_inventory: dict[str, Any], output_path: Path, ) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "93464de8921f36f30a89bf46e6e014d68d3274a8a153917940c6d21e339ecbb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#_require_exact_dependencies",
      "name": "_require_exact_dependencies",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L38-L55",
      "signature": "def _require_exact_dependencies() -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "30ce3449dd3c0cf9840e339729a00cf874cc23d0b4a725267d068ba198128503",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#_rgb",
      "name": "_rgb",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L58-L63",
      "signature": "def _rgb(value: str, rgb_class: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "bbce2da3630f6227f4dddf2c371381a2aff87161729196f3360f2a3de110bf86",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#_set_text_shape",
      "name": "_set_text_shape",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L66-L134",
      "signature": "def _set_text_shape( slide: Any, element: dict[str, Any], *, order: int, colors: dict[str, str], contrast_pairs: dict[str, dict[str, Any]], Inches: Any, Pt: Any, RGBColor: Any, PP_ALIGN: Any, MSO_ANCHOR: Any, MSO_AUTO_SIZE: Any, existing_shape: Any | None = None, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5164b02db68c69fe33f1dfd8ab28b81fed41421237855d76a51dd229dcc69737",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L394-L410",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2b246dabfeb1425a9243965c8bb43e68309b953c3dc84b8b58d178c6d806213",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "name": "generate_poster",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L263-L391",
      "signature": "def generate_poster( manifest_value: str | Path, output_value: str | Path, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad08c380fa93c46ad940480841083a0c3666ac218dbe29ce8adf0fe5189791be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/generate_poster.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/generate_poster.py",
      "span": "L413-L423",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "689aaa2687f644a96863bfe1a0cec4f8fd36b8baadb7ae6f938db6b262648fba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inspect_pptx.py",
      "name": "inspect_pptx.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/inspect_pptx.py",
      "span": "L1-L41",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "76b504075af984436db03b7d093cc80a373c3388c993cda7c4a2be4668aebafc",
      "chars": 1254,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inspect_pptx.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inspect_pptx.py",
      "span": "L13-L25",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "226a56001056d9456c099000af8b42d540ab51c6a15c17b52d1cba7468edec0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inspect_pptx.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inspect_pptx.py",
      "span": "L28-L36",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "def9ced0e043eaf97664eecb83ec12909e601add9856c29bd28c02cdc4985570",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inventory_images.py",
      "name": "inventory_images.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/inventory_images.py",
      "span": "L1-L253",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "07c6df85ca9f05510224c4e976b344d46a218d1843d9f31196adae31d975ed82",
      "chars": 9603,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inventory_images.py#_pillow_version",
      "name": "_pillow_version",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inventory_images.py",
      "span": "L19-L23",
      "signature": "def _pillow_version() -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "d10d7c6b775eda766e1378cf3620055138ae1afb4035c92876d88c05fe25abaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inventory_images.py#_read_image",
      "name": "_read_image",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inventory_images.py",
      "span": "L26-L76",
      "signature": "def _read_image(path: Path) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b5a732e5996e62953a30edc987233f5ab99ab5062a438e0914fe7cf907103e1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "name": "build_inventory",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inventory_images.py",
      "span": "L79-L219",
      "signature": "def build_inventory( manifest_path: Path, document: dict[str, Any], validation: dict[str, Any], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2ba2a9e8cad1f0a5e2d3ea060e0d64aff8c865d51097e5b3c15df239f9cb81a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inventory_images.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inventory_images.py",
      "span": "L222-L232",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "efa508c2d2e2b2a8bbbbe04975606235a8b202a3f4e0044858dbb42c86a8a24e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/inventory_images.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/inventory_images.py",
      "span": "L235-L248",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5acad8b02e9d44242b8be80800828f3286caa2e52f423003b5c8bd319ef14127",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/plan_export.py",
      "name": "plan_export.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/plan_export.py",
      "span": "L1-L202",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "76bee77a5f4d20a5bd2888019d226688d1feadba7c49854e7a18d9ca892c114b",
      "chars": 8314,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/plan_export.py#build_export_plan",
      "name": "build_export_plan",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/plan_export.py",
      "span": "L14-L168",
      "signature": "def build_export_plan( document: dict[str, Any], validation: dict[str, Any], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf368c8d1b7e8730bfaf751856193218c8d113a92b474185b076221ac536838a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/plan_export.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/plan_export.py",
      "span": "L171-L181",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccfe60a5174745b27fb78aabdd86cdff87f96293740204ffbb5270cde1f36133",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/plan_export.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/plan_export.py",
      "span": "L184-L197",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "84a9205eee2791d1dab52a782e7f05ce5e67463076a7b234e3c1c0626ba14f14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/validate_manifest.py",
      "name": "validate_manifest.py",
      "kind": "file",
      "path": "skills/pptx-posters/scripts/validate_manifest.py",
      "span": "L1-L56",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e888bc04fca0e326091e6be509fa31d9b5097127aaf42bb045aa337320237c33",
      "chars": 1646,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/validate_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/validate_manifest.py",
      "span": "L13-L36",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e39e2a522e8407e345cb056987670abc59325f34751d8601eff6ac0935c8837b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx-posters/scripts/validate_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx-posters/scripts/validate_manifest.py",
      "span": "L39-L51",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e4bff4641c7a38c874aa3350e62ca1516633286ce874504afa70fcf2d4f5ad2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/pptx/scripts/__init__.py",
      "span": "L1-L1",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "chars": 0,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py",
      "name": "add_slide.py",
      "kind": "file",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L1-L368",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3922f819ee1f6b8bdc6aa146d1a86de70640f5f919321fe3f01a764482ff69c9",
      "chars": 14525,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_add_to_content_types",
      "name": "_add_to_content_types",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L204-L212",
      "signature": "def _add_to_content_types(unpacked_dir: Path, dest: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ba3b82d80464ff1ce1287d27c409ac1e14c3efab4a6bf31bc4b260ae42dcd1f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_add_to_presentation_rels",
      "name": "_add_to_presentation_rels",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L215-L232",
      "signature": "def _add_to_presentation_rels(unpacked_dir: Path, dest: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "cff7a1e854b46fb781e4fe7d2de864169a71f6beb6fd9a3ec8f640e905a5b7fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_die",
      "name": "_die",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L71-L73",
      "signature": "def _die(msg: str) -> NoReturn",
      "exported": false,
      "origin": "ast",
      "body_hash": "c493f6cde3b0d40f9754daf84e1c8dd6c65c1248b7ef2adade9f62885ae63df3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_find_slide_relationship",
      "name": "_find_slide_relationship",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L235-L242",
      "signature": "def _find_slide_relationship(pres_rels: str, slide_name: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a995347e5c34f0f086a43cd305ba55fd76667b2339c8ced90bd9f7d7e17172a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_get_next_slide_id",
      "name": "_get_next_slide_id",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L245-L255",
      "signature": "def _get_next_slide_id(unpacked_dir: Path) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "5d84734c81022f205c90b2360a1044088dcccc000e56142deea5e975439ae112",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_insert_into_sld_id_lst",
      "name": "_insert_into_sld_id_lst",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L258-L297",
      "signature": "def _insert_into_sld_id_lst( unpacked_dir: Path, slide_id: int, rid: str, after_rid: str | None = None ) -> tuple[int, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "17998b197b6d6528236b08ce4d16d9b80ab8b2aee7c24636caac4cef515c5d97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "name": "_precheck_registration",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L154-L188",
      "signature": "def _precheck_registration(unpacked_dir: Path, after: str | None, dest: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a7e1c2b3de7dd9c526c2acafd80076d808a851c7da03d679371b24ea69f3550",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_register_slide",
      "name": "_register_slide",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L191-L201",
      "signature": "def _register_slide(unpacked_dir: Path, dest: str, source_desc: str, after_rid: str | None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "9355f8dfa9f35605f37b09e7739b192dd858466326bbb1b75f2823656e687374",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#_rid_for_slide",
      "name": "_rid_for_slide",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L300-L305",
      "signature": "def _rid_for_slide(unpacked_dir: Path, slide_name: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "01ca31d472460bec089ee4a0a5abfe9cc3911f6862e8003a80cc4ca61929e93d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#add_slide",
      "name": "add_slide",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L308-L312",
      "signature": "def add_slide(unpacked_dir: Path, source: str, after: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "841b012882c395546a3de15ac6dcc4440436c405f7b5fed9e98a87f0efe3c8d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#add_slide_to_package",
      "name": "add_slide_to_package",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L315-L326",
      "signature": "def add_slide_to_package( package: Path, source: str, after: str | None = None, output: Path | None = None ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "accd4a9617da4c520c3ef38425c0e3607e86019e1a560c226ae4897af7f6aec9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "name": "create_slide_from_layout",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L89-L112",
      "signature": "def create_slide_from_layout(unpacked_dir: Path, layout_file: str, after: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "222d3e3ed8c17fc35b01aa6f7b5041238bcc9a21ba273648184a70958897d405",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "name": "duplicate_slide",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L115-L151",
      "signature": "def duplicate_slide(unpacked_dir: Path, source: str, after: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "eba8de5fc9a17261cee4743ba91e8ff7fbf56e11c63a28af2f76a70388489c9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#get_next_slide_number",
      "name": "get_next_slide_number",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L76-L79",
      "signature": "def get_next_slide_number(slides_dir: Path) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfef3115b8c12621bd4d54a1527a99cba9409105f644ef89300b8e4d2f040f9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L329-L363",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a8da64a4d1a512682adbd3e2999886dfd1232d4fd242c3910257180062eaeff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/add_slide.py#parse_source",
      "name": "parse_source",
      "kind": "function",
      "path": "skills/pptx/scripts/add_slide.py",
      "span": "L82-L86",
      "signature": "def parse_source(source: str) -> tuple[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc7dd7dd5cfa2332ea8b7c624701df951ebb46df7c3cc9be18bde8a3bb4eaff8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py",
      "name": "clean.py",
      "kind": "file",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L1-L310",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5c808cd4dff7e02661ef3c68b5917f4e25097cc6610c92a3a7df4a6366a5c3c1",
      "chars": 10413,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#_referenced_by",
      "name": "_referenced_by",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L145-L158",
      "signature": "def _referenced_by(rels_files, unpacked_dir: Path) -> set",
      "exported": false,
      "origin": "ast",
      "body_hash": "0d5f284edfaa8bb961ef5a863513b043f044977f439cc2d85586b486924a0887",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#_slide_rids",
      "name": "_slide_rids",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L28-L41",
      "signature": "def _slide_rids(pres_rels_path: Path, unpacked_dir: Path) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "574f401246affb6e8d109eb8144fdfdfc3a9e3b2ff92b4587cec7838472ad76c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#clean_unused_files",
      "name": "clean_unused_files",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L253-L282",
      "signature": "def clean_unused_files(unpacked_dir: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c1901dc065ec86c178156c8855f803f48ab994bfefcc97d1b36603b2e375466",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#get_referenced_files",
      "name": "get_referenced_files",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L179-L180",
      "signature": "def get_referenced_files(unpacked_dir: Path) -> set",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4f89257ecff584b0972fa0598b82202ee829120eda822e9d626e1262180dc3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#get_slides_in_sldidlst",
      "name": "get_slides_in_sldidlst",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L44-L60",
      "signature": "def get_slides_in_sldidlst(unpacked_dir: Path) -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d57d2b80e990c0a043b5641ba5c5ca33e0bba228329fcb1e5c273e3d3e8eaf29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#RefusedToClean",
      "name": "RefusedToClean",
      "kind": "class",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L63-L64",
      "signature": "class RefusedToClean(Exception)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1184c848d46380e8baf109f3ccb8221d14824278c94714c781464b3fd115bae3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#remove_orphaned_files",
      "name": "remove_orphaned_files",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L183-L230",
      "signature": "def remove_orphaned_files(unpacked_dir: Path, referenced: set) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1385d02e00dbca8a6a7b99af0ba5ca9f3f28ef8532c32c8666f6ddf763db7478",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#remove_orphaned_rels_files",
      "name": "remove_orphaned_rels_files",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L161-L176",
      "signature": "def remove_orphaned_rels_files(unpacked_dir: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6f83c375d3b23d22733087a51c767529c662412be6b15b7a96609f3139f0217",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#remove_orphaned_slides",
      "name": "remove_orphaned_slides",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L67-L127",
      "signature": "def remove_orphaned_slides(unpacked_dir: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "567d1b5e80221e9925b1fba6d69da91c98739dd86ae4a5c36256cba892d6ad31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#remove_trash_directory",
      "name": "remove_trash_directory",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L130-L142",
      "signature": "def remove_trash_directory(unpacked_dir: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "670ed26e54bbc8e71225fb788a46c76cf70a4efbaa54df84febdea3ef4a2a08d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/clean.py#update_content_types",
      "name": "update_content_types",
      "kind": "function",
      "path": "skills/pptx/scripts/clean.py",
      "span": "L233-L250",
      "signature": "def update_content_types(unpacked_dir: Path, removed_files: list[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f71bac789b85429e366263576535c797b960fc6eccc2e60ada3ff8c277cf86bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "678e42456d9e10923c8b9a93691cdd993de3433448a184fa72a0c31f4ae086d5",
      "chars": 3358,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py#opc_target",
      "name": "opc_target",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L24-L55",
      "signature": "def opc_target(target: str, source_part: str, target_mode: str = \"\") -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c2698a0196e92977188d7ad4500b79e58934a67daed98395efa37fac5bd0d4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py#part_text",
      "name": "part_text",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L63-L64",
      "signature": "def part_text(data: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d704bfe47bc913895098f82a39c14982ede88dde0e4c86a488f0139c9a855299",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py#rels_source_part",
      "name": "rels_source_part",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L58-L60",
      "signature": "def rels_source_part(rels_file: Path, unpacked_dir: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef8501e94f8849865395afa59d0bff7bc7f0e0cefa625be94888b756fba4429a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py#rendered_text",
      "name": "rendered_text",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L70-L71",
      "signature": "def rendered_text(text: str, preserve: bool) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c080459c79c45408eb5adc12c8d73b7202097f695d4eac99311bef2d4848631",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py#rezip",
      "name": "rezip",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L85-L111",
      "signature": "def rezip(src_dir: Path, out_path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0f3e8ef554e29a1164d055c93e533f5369b318f69483cc8d2460c7721aa40bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/__init__.py#safe_extract",
      "name": "safe_extract",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/__init__.py",
      "span": "L74-L82",
      "signature": "def safe_extract(zf: zipfile.ZipFile, dest: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4db5976845ae72a2ae510d819efa8a6c2347e3c58f109ba5c738afc91bccabc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "name": "pptx_chart.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L1-L171",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "47ac266f7d39d11ede6bb0d1f3a19d801394fd2964636f1b48beb701f1832964",
      "chars": 5862,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "name": "_canonical_ids",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L89-L98",
      "signature": "def _canonical_ids(axes: dict[str, list[str]], limit: int) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "fe1abc31e37514463c98310a8de18fe50f1ae0d98d28049f9b8a886c7e155934",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "name": "_check_chart_axis_references",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L111-L139",
      "signature": "def _check_chart_axis_references(part: str, xml: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "daeda85be68c4431c8ff932fd9607ed31c28d00646f41c699c056121e52d2b57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "name": "_check_stacked_label_positions",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L36-L53",
      "signature": "def _check_stacked_label_positions(part: str, xml: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f6578cc1f2ac1762a3e0acf9f0db7f9496e08f470e011c7be716249e2beac69",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "name": "_declared_axes",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L82-L86",
      "signature": "def _declared_axes(xml: str) -> dict[str, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8f9fa84c1d1e34124ecab18006b1ba95842fafea8901b038eca4d8516897d17e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "name": "_ext_lst_spans",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L142-L158",
      "signature": "def _ext_lst_spans(text: str) -> list[tuple[int, int]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c02cfb35f7461db872a28530296027939b10e791d03c4430976804b246b4f5b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "name": "_strip_ext_lst",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L21-L27",
      "signature": "def _strip_ext_lst(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f1c78c4e4f2fcc2f3ba89f6cae061c6b96eefd17868adb8806f1b97a3423d055",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "name": "_undeclared_axes",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L101-L108",
      "signature": "def _undeclared_axes(kind: str, block: str, axes: dict[str, list[str]]) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4c0e6191d880441be6ce5e1c7ed473aa1cc4d2613d4b5af4037c6f4d9f237eb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_chart.py#find_chart_problems",
      "name": "find_chart_problems",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "span": "L164-L170",
      "signature": "def find_chart_problems(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4192f4ba8144dc6ee31a67445371ad7252f49d6b24d5f683d931fb17a3db1d15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "name": "pptx_slide.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "span": "L1-L61",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7b9f69b4a5bd6a2d9eabf9e0e3e796d7a421373145f6a8cd11f60b7ba2d6a5d0",
      "chars": 1675,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_slide.py#fatal_slide_errors",
      "name": "fatal_slide_errors",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "span": "L53-L60",
      "signature": "def fatal_slide_errors(errors: set[str]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1864ba6bc6a1adb836e46a8e3a64a0fe4c54954bfe21dab6f52bfcef9365d86f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_slide.py#is_schema_verdict",
      "name": "is_schema_verdict",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "span": "L49-L50",
      "signature": "def is_schema_verdict(error: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3ba7b3acbf328b75274c7e352954c1549174521811bc9d0f68f2b20fd893bbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "name": "pptx_theme.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L1-L115",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ebb54c56e9c13807f5f98f0cae22d47cdd0162da8525eaa664e3f2c8c8d6bb03",
      "chars": 3510,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "name": "_is_inert",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L97-L98",
      "signature": "def _is_inert(master: str, inert_notes: bool) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "40464ba886fe1bdf31742950643161dbc6061b73822ba330ecbc447d3c08d3ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_masters",
      "name": "_masters",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L62-L63",
      "signature": "def _masters(files: Mapping[str, bytes]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e391b04d730c23a827967f5c81401ee79b5b5a9b44e590ec131d8ef3a44b7a8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "name": "_notes_master_share_is_inert",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L74-L79",
      "signature": "def _notes_master_share_is_inert(files: Mapping[str, bytes]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "b47457c7dd1081fbdb8532a28b29575591b868379dee7ea2ca73ce683c0e7caa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "name": "_rels_path",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L35-L37",
      "signature": "def _rels_path(part: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "5076825d28bd675cdfe4019c274c365ac6ef0f09691f2fadaa470dcde11655c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_resolve",
      "name": "_resolve",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L40-L44",
      "signature": "def _resolve(rels_path: str, target: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "554c94176d7f51d2a1c9f8e36e2c2f8f9cb76579eef8851cfdfbf50d30c6a471",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_shares",
      "name": "_shares",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L82-L94",
      "signature": "def _shares(files: Mapping[str, bytes])",
      "exported": false,
      "origin": "ast",
      "body_hash": "d5c3437f483f3f17c85e4037b2d9528ce13fc33effb40806fd4d372f6840fb63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_sort_key",
      "name": "_sort_key",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L29-L32",
      "signature": "def _sort_key(name: str) -> tuple[int, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5450a9c104b3f6c195508a226a99d321d4b969e16c9a3af3483feb5ce06fcf13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "name": "_theme_rel",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L47-L59",
      "signature": "def _theme_rel(files: Mapping[str, bytes], master: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "329a7d6f2733b9bf7dc48fa9ec6535c433a6e1a5e434f08c79e15e529d78a352",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "name": "find_shared_master_themes",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L101-L105",
      "signature": "def find_shared_master_themes(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd18e0dc141b3d7f252e9ed3fa8404b02c5e0bff92c79e33d1b5f3f0f79cad5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "name": "live_shared_master_themes",
      "kind": "function",
      "path": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "span": "L108-L114",
      "signature": "def live_shared_master_themes(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4a48431dce8e00949ab50fb3b663e3ed170908aa8785623f4ea30945c6d4d4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/soffice.py",
      "name": "soffice.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/soffice.py",
      "span": "L1-L233",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "85ca09ee0d2bdbd2cd2cde7d2a18e7e1598d1b82e9cb61e7db5d223822ea0782",
      "chars": 8008,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/soffice.py#_ensure_shim",
      "name": "_ensure_shim",
      "kind": "function",
      "path": "skills/pptx/scripts/office/soffice.py",
      "span": "L96-L114",
      "signature": "def _ensure_shim() -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "15addb32514ee866d69df2bd58ac3e927ea93b50a9e4441f5273d968d7bed4b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/soffice.py#_needs_shim",
      "name": "_needs_shim",
      "kind": "function",
      "path": "skills/pptx/scripts/office/soffice.py",
      "span": "L87-L93",
      "signature": "def _needs_shim() -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f9b3dc9884dea09cb68c343e847cb29548d720a915acfe7da0a55d91e207582",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/soffice.py#get_soffice_env",
      "name": "get_soffice_env",
      "kind": "function",
      "path": "skills/pptx/scripts/office/soffice.py",
      "span": "L50-L63",
      "signature": "def get_soffice_env() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "7644aea5769a40681f9f06c98b4511f28050aa6f38ab6404365e7fee23d10878",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/soffice.py#run_soffice",
      "name": "run_soffice",
      "kind": "function",
      "path": "skills/pptx/scripts/office/soffice.py",
      "span": "L66-L74",
      "signature": "def run_soffice(args: Iterable[str], **kwargs) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "48671788bc5b99f5502fb1554198c15181f1c24058edf642950d2bb6831bd281",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validate.py",
      "name": "validate.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/validate.py",
      "span": "L1-L174",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "346a4c89d92fff55e610f11efda48c30228815b29bdb10b987e48f7af70acf1e",
      "chars": 6140,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validate.py#_fail",
      "name": "_fail",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validate.py",
      "span": "L31-L33",
      "signature": "def _fail(message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "51689ba8467eaa41640f60c28970907f70044894c29413600779685960e379ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validate.py#_has_tracked_changes",
      "name": "_has_tracked_changes",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validate.py",
      "span": "L36-L45",
      "signature": "def _has_tracked_changes(unpacked_dir: Path) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "560534a9514a4b401d3b0d357c620ef7e9bae654b558ee0270e0639acb115487",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validate.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validate.py",
      "span": "L48-L169",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "af5bf4afeddbb751590ec237663815fef2081fe5b81c672bbfdcace3c83ada7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/validators/__init__.py",
      "span": "L1-L16",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "83e0f035c5abea238d3f2c3968afbd511ed022b527b7c9cb60a9434cc34ff987",
      "chars": 336,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py",
      "name": "base.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L1-L876",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f818ea28c793ba42960fa4498265e2632a62c86f7b5d6aff6fa89dacc02d59ea",
      "chars": 33756,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#_load_schema",
      "name": "_load_schema",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L17-L22",
      "signature": "def _load_schema(schema_path: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4eca50134b98a79c0b453cfb40c479ecd381e80cf5b27617ace209f46c5e25fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "name": "BaseSchemaValidator",
      "kind": "class",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L24-L871",
      "signature": "class BaseSchemaValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "1129b698cadf4eeca035657883909dad3df766fbe5f0e4256fb292cd75fadb8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L106-L119",
      "signature": "def __init__(self, unpacked_dir, original_file=None, verbose=False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c0ab3a6296e03f77457b7fff83d2cb3f8452d13685de06eb3473250f018e1c93",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "name": "_clean_ignorable_namespaces",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L728-L746",
      "signature": "def _clean_ignorable_namespaces(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f819002c77f4c9b7fb43c106023c005f6b1dc955849d1d32f674c4e533bec474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "name": "_get_expected_relationship_type",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L494-L515",
      "signature": "def _get_expected_relationship_type(self, element_name)",
      "exported": false,
      "origin": "ast",
      "body_hash": "26ae698f86a2d749400220d9511ae83a615c756277caecb410190f271ab7a124",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "name": "_get_original_file_errors",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L812-L840",
      "signature": "def _get_original_file_errors(self, xml_file, schema_path=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "130cf2ef5bf05226ec37a1df58c742e695384c33f6102bef99d80c838ad3f47b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "name": "_get_schema_path",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L710-L726",
      "signature": "def _get_schema_path(self, xml_file)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2ec1f13dd5c8862034a7ff86fbde3a8aa652bb3c6a0a666b3da21453c4b81a1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "name": "_preprocess_for_mc_ignorable",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L767-L773",
      "signature": "def _preprocess_for_mc_ignorable(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a330f2bc2606c45a1cefd6c9b89b56fc728f1aae035249fe96fc63d053d7cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "name": "_preprocess_for_schema",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L775-L776",
      "signature": "def _preprocess_for_schema(self, xml_doc, relative_path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e62d53800b442c1d56f79b61ba1803e7cbe9be702a0192a24d6509b9f252f92f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "name": "_remove_ignorable_elements",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L748-L765",
      "signature": "def _remove_ignorable_elements(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5a7432bf0ad55dac6fb4f8807af6d70a17e39ec76b73434af009811b27c5aa6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "name": "_remove_template_tags_from_text_nodes",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L842-L871",
      "signature": "def _remove_template_tags_from_text_nodes(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9246206f66577b278b24dfe657ba39a1f578938207b9fe4194e69d1835599431",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "name": "process_text_content",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L849-L859",
      "signature": "def process_text_content(text, content_type)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c8bf1fd9c01da7ed769ebb72d2144053b482b46684453f3b8b639063815c9ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "name": "_validate_single_file_xsd",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L778-L810",
      "signature": "def _validate_single_file_xsd(self, xml_file, base_path, schema_path=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e8504a854f335f45709fa5844d3dd4ecc6ac1b0f0c2f94542d799a3d4562f6ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L124-L125",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6436276765a729adb6b5cbe0e1aef1d0ad2df44526c3f87efe142fe0ddac2af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "name": "repair_whitespace_preservation",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L127-L160",
      "signature": "def repair_whitespace_preservation(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "96c9cdd95c1b47c67993f5d515dc68e46101a7748cbc8a2b1a11152bfab8f931",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L121-L122",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc5b5e6c0b2669fa71699d476f2724fa6f36c223c9e04ce039aa0acbfd3b2afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "name": "validate_against_xsd",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L661-L708",
      "signature": "def validate_against_xsd(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95d9de05921fd5f3e0951239dacafd4be8f0728f6b2455e7a06f365e7eb52c24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "name": "validate_all_relationship_ids",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L408-L492",
      "signature": "def validate_all_relationship_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "219f87e4462705ef87d28dffee781b5fe898a8de0f24286929f114f72a58857b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_content_types",
      "name": "validate_content_types",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L517-L621",
      "signature": "def validate_content_types(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f85e505c88ebff2c51443ab46f8f16cc4942bee8dbd50aca0f45590c4791879a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "name": "validate_file_against_xsd",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L623-L659",
      "signature": "def validate_file_against_xsd(self, xml_file, verbose=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e95ad25abdb64cd6ecd0b2919d0041ebaf457809d47bab56b4d4735bbd333534",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_references",
      "name": "validate_file_references",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L310-L406",
      "signature": "def validate_file_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7af8027e7b13b6aaaa5a08fcc33a34afe42a5a2fe93856b556ef463e3dbcc7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_namespaces",
      "name": "validate_namespaces",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L189-L216",
      "signature": "def validate_namespaces(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "200e5b3d11825c433aa10cad2a5b8d0965ffa6b50f3730e9f15790ae920c8d86",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_unique_ids",
      "name": "validate_unique_ids",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L218-L308",
      "signature": "def validate_unique_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "975a00ea1cf0d677a83c5a9f996d4d5f9116e0405a714654c9e2833dfb92bd23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_xml",
      "name": "validate_xml",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/base.py",
      "span": "L162-L187",
      "signature": "def validate_xml(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee83c980cdec8a5a14485d1214b6aa515a4116d14702dee54d20dcc205954625",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py",
      "name": "docx.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L1-L467",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "93d3444c0ef3f043d21a2285c46d2cda478426b930dc33dcf3b11265935517b5",
      "chars": 17478,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "name": "DOCXSchemaValidator",
      "kind": "class",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L19-L462",
      "signature": "class DOCXSchemaValidator(BaseSchemaValidator)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15bc269c48db0effc4f9851ff7cb6b23b2857b5463917d618148a6a4f716bcfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "name": "_parse_id_value",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L257-L258",
      "signature": "def _parse_id_value(self, val: str, base: int = 16) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "0dd43837122cd1852439b1e88d1562c57523e031909005fd7c9829167953dcc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "name": "compare_paragraph_counts",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L246-L255",
      "signature": "def compare_paragraph_counts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7c4f7e66cbb9fd10b5bbdaab4dd945542960ef82c10227eedc4adce45fae6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "name": "count_paragraphs_in_original",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L182-L203",
      "signature": "def count_paragraphs_in_original(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "601470148cffee7278f0a1ada00dd1606fd1ab1582f29291ee862e7674d42125",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "name": "count_paragraphs_in_unpacked",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L166-L180",
      "signature": "def count_paragraphs_in_unpacked(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "079a8e5626c3e07797f756645d4d8d7a82423ce7bf14a604298c0ce5bc43c505",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L404-L407",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "05d0d5cc0dd73268ec0526a5bfe98c46d42e32b3346ecc1e6a7e8b99b57a4260",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "name": "repair_durableId",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L409-L462",
      "signature": "def repair_durableId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3164ce4f1a96460cff17b577b98190da50814e216da57bec6a5cb3961307d9ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L27-L67",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ad58161b49145e130f7e504307b63d17b068f84b3147203705d4318989e2f6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "name": "validate_comment_markers",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L316-L402",
      "signature": "def validate_comment_markers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0713001b010cab09af475641b503320101e429da702a27e346a3937cc49e96cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "name": "validate_deletions",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L115-L164",
      "signature": "def validate_deletions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dff8053c82e0cbf61f6bf81e7c036504b4e3be7028dce73f044ff8f0c25e315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "name": "validate_id_constraints",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L260-L314",
      "signature": "def validate_id_constraints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "938d3ca4d011cc43ac00de237f93f9fe22fd9c1f5eeb2d32c6a07a32d834b79d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "name": "validate_insertions",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L205-L244",
      "signature": "def validate_insertions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae71eea320b5cc0b2cd5962508a419be90f18afd99fdf4a24c56243edabd7421",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "name": "validate_whitespace_preservation",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/docx.py",
      "span": "L69-L113",
      "signature": "def validate_whitespace_preservation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c59f93b16ecda75c9796b875ffb61c4d6d4248327fffbbb24b868cb021280f23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py",
      "name": "pptx.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L1-L442",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17eadad2b7a8374ccbe4cda45693bcd6a36f9d61a7d60f9c9ceef9464dec8299",
      "chars": 15966,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "name": "PPTXSchemaValidator",
      "kind": "class",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L13-L437",
      "signature": "class PPTXSchemaValidator(BaseSchemaValidator)",
      "exported": true,
      "origin": "ast",
      "body_hash": "836c39302df74562e1dae535eb6b739a97490f9a4cfdfe9cdc9bb76aac8f8c6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._get_schema_path",
      "name": "_get_schema_path",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L204-L207",
      "signature": "def _get_schema_path(self, xml_file)",
      "exported": false,
      "origin": "ast",
      "body_hash": "1eee089caa153a5cb7f923bfb98a96ff8291bd4431244711881421fd2f4800d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "name": "_looks_like_uuid",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L266-L268",
      "signature": "def _looks_like_uuid(self, value)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f273b75284a7eb91c7a1f535ea9a6c3237d9e9d5016a7869f2237d4aa8d18549",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "name": "_original_slide_defects",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L123-L151",
      "signature": "def _original_slide_defects(self, schema) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "812652d3a4cafd93f7d030723faf47d2f86e590721dc5bc770f2cac7e8002a42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "name": "_package_map",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L74-L88",
      "signature": "def _package_map(self) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "0d6617de403ca75c7ad81fc1b20216155762a001ee0bf72633ed8bce2e7e7212",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._preprocess_for_schema",
      "name": "_preprocess_for_schema",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L209-L226",
      "signature": "def _preprocess_for_schema(self, xml_doc, relative_path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3811d37ab78fe83f093902b6e4a0d3f10c267eafc36c4be3d1715b48b77a3d51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L28-L72",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dc88c9721a6bb8b26536a73fea95f331e9c5a144a2c2dfd97204c48cdbce3c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "name": "validate_charts",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L109-L121",
      "signature": "def validate_charts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "faeed3148ed9f28320a702c1d64ada1b845448b0a168ad7799337614e3b1ffce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "name": "validate_master_theme_uniqueness",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L90-L107",
      "signature": "def validate_master_theme_uniqueness(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d41d9b570113e4fba0d3def9221b2a399a14464aaeae950861f935f262667282",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "name": "validate_no_duplicate_slide_layouts",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L338-L374",
      "signature": "def validate_no_duplicate_slide_layouts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc79713db3fe9a010ab0530114c594c3504a57049a56db232ff806fcdbc3b8f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "name": "validate_notes_slide_references",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L376-L437",
      "signature": "def validate_notes_slide_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a33ea23df1bbfc453bdf461e77a19066dca8c6090fa4e1f8763fbae90617ee2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "name": "validate_slide_layout_ids",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L270-L336",
      "signature": "def validate_slide_layout_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ce7a7da6c390ddbda3d253e41ec4d6e67bc2937291802368638272d5452d7b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "name": "validate_slides",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L153-L202",
      "signature": "def validate_slides(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbfd9aa6b62584b89d9699b495fcead6825f8791560c272cf2e254afb3348783",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "name": "validate_uuid_ids",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/pptx.py",
      "span": "L228-L264",
      "signature": "def validate_uuid_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60b7d9904daab6aab999c3a5208bb981abeafc1a43bdd4f7ffc4bd69ef1dd317",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py",
      "name": "redlining.py",
      "kind": "file",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L1-L300",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ed50d0885eee4b9c387f546b059bcaed64086815880a5167336244f93e305123",
      "chars": 11231,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "name": "RedliningValidator",
      "kind": "class",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L25-L295",
      "signature": "class RedliningValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5fa985e9fd94180230f9a97c6d43101b59f2423c1c59ccc2cf68654c4a02338",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L27-L33",
      "signature": "def __init__(self, unpacked_dir, original_docx, verbose=False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c64294dd23d959264cdccfb2cd5fdd0dc7612c93b8e6fba60562d4732a73394c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "name": "_extract_text_content",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L282-L295",
      "signature": "def _extract_text_content(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "89c475783c8a840f01d7526cd129d7bb16a431ab2f451924fe0f22f0bd6c0306",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "name": "_generate_detailed_diff",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L151-L179",
      "signature": "def _generate_detailed_diff(self, original_text, modified_text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4bc4c877f2b68152454666500509ae50fcbb5fcbe99b83ca56a1edb1bef6fce9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "name": "_get_git_word_diff",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L181-L250",
      "signature": "def _get_git_word_diff(self, original_text, modified_text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "616940f2bd2f517d29622b2e89f2757a5810ef29025be69acbbbf0f5183b14e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "name": "_new_tracked_changes",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L112-L149",
      "signature": "def _new_tracked_changes(self, original_root, modified_root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2e2ee2240e1573deafcfb4992ab2cdcb7584a64f1d511353fc9bc1ee6db24c00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "name": "group",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L128-L129",
      "signature": "def group(elem)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d78eb74cbbe5a6c5c7d6e5f527892f74e8c0929dc2ba759e0cf25b8bd22d729",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "name": "text_of",
      "kind": "function",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L131-L132",
      "signature": "def text_of(elems)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a33d0814e14879d0b0ea2203e7cb513d2b5382080ee71da2f36ff04856ef22e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "name": "_remove_tracked_changes",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L252-L280",
      "signature": "def _remove_tracked_changes(self, root, targets)",
      "exported": false,
      "origin": "ast",
      "body_hash": "141ddc90975c713b0c38b5d3bfeb8b4c9681c0bea03797de9877ac2946c980b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "name": "_rendered_text",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L95-L97",
      "signature": "def _rendered_text(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "67c9bb3952fe1e3b700176d43cdeb78529a3bd869c9973f0564bfa71fcc9edd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "name": "_text_elements",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L99-L105",
      "signature": "def _text_elements(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3e40f9e1833830223485f31a30f4009ec60a91794b1b084b97e41b3c04cbd393",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "name": "_tracked_change_elements",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L90-L93",
      "signature": "def _tracked_change_elements(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2c56a56bdb8346ea56c721753bbe7bcef1be707cd5e8da8190f97edd24290616",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "name": "_tracked_change_key",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L107-L110",
      "signature": "def _tracked_change_key(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6dd26b7fcff436f7315902cdbed4a05220f7789ea53e01a7cbc852d4624d30b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L35-L36",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "59e5e12a57bac0aa730fc580572f6eabb63e2ee00625a464064ca1c4e43c53a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/pptx/scripts/office/validators/redlining.py",
      "span": "L38-L88",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ca98ad6e1c370de12384af435949785055a991ee1ff1855da2b0366e42eb0df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py",
      "name": "thumbnail.py",
      "kind": "file",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L1-L312",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "94ef83a84346aa2d63913de0d42bb2fe902ccdc17bfac6130096ca758381793c",
      "chars": 9802,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#_is_hidden",
      "name": "_is_hidden",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L99-L106",
      "signature": "def _is_hidden(zf: zipfile.ZipFile, part: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "618a8df7cc420b569579fb5053e97d987bd4af31e73888e5ded55601a21ac6c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#build_slide_list",
      "name": "build_slide_list",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L142-L176",
      "signature": "def build_slide_list( slide_info: list[dict], visible_images: list[Path], temp_dir: Path, ) -> list[tuple[Path, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "250b925126b2a024d15241b1cb129374ce8cb1b93ecaedaa8d6e06d52ce5551b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#convert_to_images",
      "name": "convert_to_images",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L188-L215",
      "signature": "def convert_to_images(pptx_path: Path, temp_dir: Path) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4abf156617c16588fbdfc6cda154e4873938aec752aa96576d8471d6a60fb45",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#create_grid",
      "name": "create_grid",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L247-L307",
      "signature": "def create_grid( slides: list[tuple[Path, str]], cols: int, width: int, ) -> Image.Image",
      "exported": true,
      "origin": "ast",
      "body_hash": "6265aaee100d352bcd29eb08384e7bafa669d1b78fbdf007e657210a87e905c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#create_grids",
      "name": "create_grids",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L218-L244",
      "signature": "def create_grids( slides: list[tuple[Path, str]], cols: int, width: int, output_path: Path, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "01dee325cd94c5a8fbef4bd005016d884faafd0dceb94667624582342951061f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#create_hidden_placeholder",
      "name": "create_hidden_placeholder",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L179-L185",
      "signature": "def create_hidden_placeholder(size: tuple[int, int]) -> Image.Image",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d69001b105beb855529aa9affa82c71feaf26d21a616b8d8bd8314e5fee8c67",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#get_slide_info",
      "name": "get_slide_info",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L109-L139",
      "signature": "def get_slide_info(pptx_path: Path) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f2528a095f9dc0f49ba7dcf197acecf3129ad8968b58dfa25196d750d13a267",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pptx/scripts/thumbnail.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pptx/scripts/thumbnail.py",
      "span": "L44-L96",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "f87578aa9b360d09922e118ecd303fa908ee3255733ded3aced0a64cf4a942d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/primekg/scripts/query_primekg.py",
      "name": "query_primekg.py",
      "kind": "file",
      "path": "skills/primekg/scripts/query_primekg.py",
      "span": "L1-L129",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a31b6eb98c0b130ad0623be6fc11a7bfa8f69fda36ce2e881bd4f64edf7d0fa8",
      "chars": 5013,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/primekg/scripts/query_primekg.py#_load_kg",
      "name": "_load_kg",
      "kind": "function",
      "path": "skills/primekg/scripts/query_primekg.py",
      "span": "L10-L20",
      "signature": "def _load_kg()",
      "exported": false,
      "origin": "ast",
      "body_hash": "54b19d4b65393962721831a48e5618596f0445caa66c8b527b5e8ac729c94243",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/primekg/scripts/query_primekg.py#find_paths",
      "name": "find_paths",
      "kind": "function",
      "path": "skills/primekg/scripts/query_primekg.py",
      "span": "L81-L108",
      "signature": "def find_paths(start_node_id: str, end_node_id: str, max_depth: int = 2) -> List[List[Dict]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc41ff1a332355fb2184dc66ae5011a116875daf6e21fb529b6587480d650018",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/primekg/scripts/query_primekg.py#get_disease_context",
      "name": "get_disease_context",
      "kind": "function",
      "path": "skills/primekg/scripts/query_primekg.py",
      "span": "L110-L128",
      "signature": "def get_disease_context(disease_name: str) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "f84af168957aded37619e22635ad36043123e38c1c75b6961df2c4aad0c094fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/primekg/scripts/query_primekg.py#get_neighbors",
      "name": "get_neighbors",
      "kind": "function",
      "path": "skills/primekg/scripts/query_primekg.py",
      "span": "L51-L79",
      "signature": "def get_neighbors(node_id: Union[str, int], relation_type: Optional[str] = None) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "35389040997b74cc022335145169964bf0bdd0094e02597994469391252e7945",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/primekg/scripts/query_primekg.py#search_nodes",
      "name": "search_nodes",
      "kind": "function",
      "path": "skills/primekg/scripts/query_primekg.py",
      "span": "L22-L49",
      "signature": "def search_nodes(name_query: str, node_type: Optional[str] = None) -> List[Dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "db837bcff0e889ed5d640a97f536c4c7d6f417024fe887cfeb1977abbae93319",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9a90481692132a90b81854de4e6380dee81e7769b5adb57ffde2cd9cb36abcf2",
      "chars": 76,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L1-L614",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d8278731f2e4ae450abac53bfbe1a208f563e2769f2c830ea7c620cc7a362778",
      "chars": 20219,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_api_error_from_body",
      "name": "_api_error_from_body",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L499-L511",
      "signature": "def _api_error_from_body(status: int, body: bytes) -> ApiError",
      "exported": false,
      "origin": "ast",
      "body_hash": "781a77981e5c7770c28715fad4895acdf1e990b57baf6c6b6a1fbc474077869e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_bounded_read",
      "name": "_bounded_read",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L462-L484",
      "signature": "def _bounded_read(response: Any, max_bytes: int) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f61a35fd0dffc33ee372ec42c363669266bedf8986ecb714b41dfac84e57823",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_path_inside_cwd",
      "name": "_path_inside_cwd",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L141-L166",
      "signature": "def _path_inside_cwd(raw_path: str, *, must_exist: bool) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "c85db40facb1237d6ff09f55db306d069260db93b251203d63f2c0cfe3bcb995",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L109-L110",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a76eec2a4f4835d680a28a8216bf4c541a8007931a1be66cb2682cf855866a36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_retry_delay",
      "name": "_retry_delay",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L487-L496",
      "signature": "def _retry_delay(headers: Mapping[str, str], attempt: int) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "424e0a0b80fdfacc9030d53e84d1646b6fc1b34cf0b1a5b1180499679e5b4024",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_sensitive_key",
      "name": "_sensitive_key",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L239-L241",
      "signature": "def _sensitive_key(key: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "7eb92bdf49740790fc5dca36284c3c175d18d4bb6e8d1f9212bd672fa2e564de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L113-L119",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "86beffb14dbb48efe0544c9729ffb7cb100f1cdff220e0e9142087e32d140658",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "name": "ApiError",
      "kind": "class",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L67-L79",
      "signature": "class ApiError(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "59c6b36aa26870a626de30abeae3971f4b2df0a8d1ff7e1488100230fcba4e5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#ApiError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L70-L79",
      "signature": "def __init__( self, message: str, *, http_status: int | None = None, api_status: int | str | None = None, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "0579257f281c2328bdbb7ac683dd79a56f34d83d28d073a8a5d15bbfb4597c64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiError"
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#build_url",
      "name": "build_url",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L399-L410",
      "signature": "def build_url( origin: str, path: str, params: Mapping[str, Any] | None = None, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "dec46f610ea415e357396fad719790f548a01840ad79199e08d10ccc8a072b84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "name": "clean_text",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L230-L236",
      "signature": "def clean_text(value: str, *, max_chars: int = MAX_REMOTE_STRING_CHARS) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cf4a2b6421b758881a1cc49999db8ff52ba8ce9d05cc0d8bf6bf6eaa5750aa7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#credential_status",
      "name": "credential_status",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L444-L459",
      "signature": "def credential_status( environ: Mapping[str, str] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d3ca684f4f6acc6b708705949e81c07ea92e918dd67fc94312241b8125502af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#emit_error",
      "name": "emit_error",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L305-L317",
      "signature": "def emit_error(error: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4cffba8ef92c477f641548d648386b370d6009bc31249e0ead714e43854db45",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L294-L302",
      "signature": "def emit_json(payload: Any, *, stream: Any = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "622b1a19e0f93c2c1bc1d2afb90d80468537afe3e34efbbe8fe07c484d1e7cc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#encode_protocol_identifier",
      "name": "encode_protocol_identifier",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L422-L426",
      "signature": "def encode_protocol_identifier(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6578ae6733d8f286d606ed7eeef26fa942e7ad947072fd6a8ab9f4742f409197",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#HttpResult",
      "name": "HttpResult",
      "kind": "class",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L83-L90",
      "signature": "class HttpResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "32553db53c97aefaf1bfd9761037e7868058b742f6cb167902c78bc6c1e74489",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#is_official_host",
      "name": "is_official_host",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L338-L342",
      "signature": "def is_official_host(host: str, *, allow_tenant: bool = False) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6806071281e4fcf3d3a9a52842a383c94776346bc85e01120f1734a96035fe5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "name": "load_local_json",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L188-L194",
      "signature": "def load_local_json( raw_path: str, *, max_bytes: int = MAX_LOCAL_JSON_BYTES, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "303928cef9bcf4592e811b7ae5939bdd153ccfd49ed8c4393793bf8d553e3c13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler",
      "name": "NoRedirectHandler",
      "kind": "class",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L93-L106",
      "signature": "class NoRedirectHandler(urllib.request.HTTPRedirectHandler)",
      "exported": true,
      "origin": "ast",
      "body_hash": "447ad8c0c911f0396158304885c52551361f101189025ef48b600bde73edfa82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler.redirect_request",
      "name": "redirect_request",
      "kind": "method",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L96-L106",
      "signature": "def redirect_request( # type: ignore[override] self, req: urllib.request.Request, fp: Any, code: int, msg: str, headers: Mapping[str, str], newurl: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa8e3e083dffa35da88bf5f671b2870ccb87fefb2deae7bfc5af629c5d78117f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NoRedirectHandler"
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#parse_json_bytes",
      "name": "parse_json_bytes",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L122-L138",
      "signature": "def parse_json_bytes(raw: bytes, *, source: str = \"response\") -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a23c9cd386e0db5043147dcdc1c283fc1b70b6256df0bd1905242c5c79c85dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "name": "request_bytes",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L514-L601",
      "signature": "def request_bytes( url: str, *, token: str | None, accept: str, timeout: float = DEFAULT_TIMEOUT_SECONDS, retries: int = 1, max_bytes: int = MAX_JSON_RESPONSE_BYTES, opener: Any | None = None, sleep: Callable[[float], None] = time.sleep, ) -> HttpResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7a063f5df73894f2d48f35d1504ac95aaf1b780dbbdccf4d8568b8e21de1f72",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#require_api_success",
      "name": "require_api_success",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L604-L613",
      "signature": "def require_api_success(payload: Any) -> Mapping[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcb705a7a68064d063b32b1c9f21b871e4009cbd1517e447c878c87f3310f21b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#safe_input_path",
      "name": "safe_input_path",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L169-L185",
      "signature": "def safe_input_path( raw_path: str, *, suffixes: Sequence[str], max_bytes: int, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc9f22ac6ce3d5926d0358473d6ffbf713d639ddf7a8a0d7b485fe47a68c5253",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#safe_output_path",
      "name": "safe_output_path",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L197-L208",
      "signature": "def safe_output_path(raw_path: str, *, suffix: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "e785e22898e96210106cb2cf6587e2ad1c8542bb6b43e53ffe1a464b29c3f328",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "name": "SafetyError",
      "kind": "class",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L63-L64",
      "signature": "class SafetyError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6daf3eb2b0427005dab4b328e614b8094ebfdd1d5af1db5e002cd7b561b018e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "name": "sanitize_untrusted",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L244-L291",
      "signature": "def sanitize_untrusted( value: Any, *, depth: int = 0, max_string_chars: int = MAX_REMOTE_STRING_CHARS, max_items: int = MAX_REMOTE_COLLECTION_ITEMS, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae11ec498d196cdc1ea9bc003ed5cef4c656820c4c80a8c184d547f823051e6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_guid",
      "name": "validate_guid",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L429-L432",
      "signature": "def validate_guid(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fce5c7120928b63f9d5ba1b65cb1614f91a34fc223dea41b4e4aa2647af51c7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_nonnegative_integer",
      "name": "validate_nonnegative_integer",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L435-L441",
      "signature": "def validate_nonnegative_integer(value: str, *, name: str, maximum: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e40f157b84f2d93c273a1628687c08b81052ba8c05fdce8a72095d7ff57c946",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "name": "validate_origin",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L345-L367",
      "signature": "def validate_origin(raw_origin: str, *, allow_tenant: bool = False) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5f756c2d2be6b85657731eab635e91ba5f0bda833a1be8bfadf3adb88a3cd38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_protocol_identifier",
      "name": "validate_protocol_identifier",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L413-L419",
      "signature": "def validate_protocol_identifier(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "847e9dba805032db0571b6d9c2c6d302ac0a403077939ec3e02bf63e743dcc11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_remote_url",
      "name": "validate_remote_url",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L370-L396",
      "signature": "def validate_remote_url( raw_url: str, *, allow_tenant: bool = False, allowed_paths: Sequence[str] = (\"/api/\", \"/view/\"), ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb84a57193832e50c2f851a989c078ee9c0bf6a6bb8b522d46cfff63063c0d7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_retries",
      "name": "validate_retries",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L332-L335",
      "signature": "def validate_retries(value: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "65a50b41b1e325d66d4c24903a65d53597f09cedce07be58c876bf67814bf543",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#validate_timeout",
      "name": "validate_timeout",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L320-L329",
      "signature": "def validate_timeout(value: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b18c6150815c1a16273881a70a6509361e2f8047b2ae9d555ff5029eeabeaddf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/_common.py#write_private_bytes",
      "name": "write_private_bytes",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/_common.py",
      "span": "L211-L227",
      "signature": "def write_private_bytes(path: Path, data: bytes) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "02a8d017d87e9349e14c69bbef346c5e1806e2537bb3146ba6af296021af27c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "name": "pagination_helper.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L1-L249",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "90bb406939f562223c91306738a1abf57c06a2d3933272a77a881f53ec696d41",
      "chars": 7665,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#_bounded_int",
      "name": "_bounded_int",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L86-L99",
      "signature": "def _bounded_int( value: Any, *, name: str, minimum: int, maximum: int, ) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "686eeba22e2e189132c38446f1c35cfbe289ea8d231633d639b04ea4162798ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#_opaque_cursor",
      "name": "_opaque_cursor",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L143-L149",
      "signature": "def _opaque_cursor(pagination: Mapping[str, Any]) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "eb83f37a402b37c9f9b048f0241eafc4c915ad882b5fbc69565f37928a0837fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#_pagination_object",
      "name": "_pagination_object",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L74-L83",
      "signature": "def _pagination_object(payload: Any) -> Mapping[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7d2a6c4b49bf4c20be8b8e43d0c824b520d9b075c6e660498316feb7c8b197f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#_validated_next_url",
      "name": "_validated_next_url",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L102-L140",
      "signature": "def _validated_next_url(next_page: Any, current_url: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "aec8bcc0feeea669788aa2b8146b196c24c0751c2adae7989f6aadbbb5620409",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L34-L71",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4b24819383699bb48b4b4514f4e6ddc0368e2825fac7ba0c2691f8760fbb61f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "name": "inspect_pagination",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L152-L227",
      "signature": "def inspect_pagination( payload: Any, *, current_url: str, pages_seen: int, items_seen: int, max_pages: int, max_items: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "814bc79f9f05a65c1c06fab96241043b5c6259572e5662092aac4766eaf4c8ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/pagination_helper.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "span": "L230-L244",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c159da9d774a0aba6a9d085db7c9ce82d8bd7a7d576a736bc41c7ec5dc17223b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "name": "plan_write_request.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L1-L658",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8a087cc06f8dacdb8d693a803b2ec2e5d8d536b60c4c7044daaa26b9064858e3",
      "chars": 21735,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_drop_sensitive",
      "name": "_drop_sensitive",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L177-L188",
      "signature": "def _drop_sensitive(value: Any) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "e090d40efbe7d6c514db56b3e76ff6873f85b2393ddaef990e928eb982f8b2a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "name": "_exact_fields",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L191-L205",
      "signature": "def _exact_fields( payload: Mapping[str, Any], *, required: set[str], optional: set[str], operation: str, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b3c6d65c0e40b8af5c917c05ad25a8cf61164ed725db8c41008d146d830da1de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_hash_file",
      "name": "_hash_file",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L382-L396",
      "signature": "def _hash_file(path: Path, maximum: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "0dbbc40e8054b7f9cb56b946af7716c9309aa293d1f464aa8ce2e8c91dd7ca8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_int_id",
      "name": "_int_id",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L227-L240",
      "signature": "def _int_id(value: Any, *, name: str) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "fa4da685adacdf887fb2266b01c9a1cf317bce433c53244d299c88b8fed4a15c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_payload",
      "name": "_payload",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L149-L157",
      "signature": "def _payload(path: str | None) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a350e3be24cc6d428be826cacf435d2f071e068626babac683aa277037f1cf4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_protocol_uri",
      "name": "_protocol_uri",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L214-L224",
      "signature": "def _protocol_uri(value: str | None) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "87af687e2c8d345722739cad8ee678c157bde79708f28dc39da6d2412de88470",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_sensitive_paths",
      "name": "_sensitive_paths",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L160-L174",
      "signature": "def _sensitive_paths(value: Any, prefix: str = \"$\") -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b3b962eba1c61749d292a6611f1e41746dadc6c04aa21d6967e6d3923777e753",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_slug",
      "name": "_slug",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L208-L211",
      "signature": "def _slug(value: str | None, *, name: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "01ffb10984c378cfda508b8c204a20e209faf48ed52fb16231255987478b6464",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_upload_plan",
      "name": "_upload_plan",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L399-L447",
      "signature": "def _upload_plan( raw_path: str | None, *, local_max_bytes: int, origin: str, ) -> tuple[str, dict[str, Any], list[dict[str, Any]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d5f3a4519cb74de10d83efc3eb4be37f9587683003ae58b8ce6f895a6896604",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_comment",
      "name": "_validate_comment",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L354-L365",
      "signature": "def _validate_comment(payload: Mapping[str, Any]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6cb42a6ec220bfa65aaad11448b5a7e39622d63ea5ebb5387e9309b500e75ba8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_ids",
      "name": "_validate_ids",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L368-L379",
      "signature": "def _validate_ids(payload: Mapping[str, Any], *, operation: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f1cb96a2b16038701bcc01812ae5126fc216f182e00252c278eea504dfa8eb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_publish",
      "name": "_validate_publish",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L341-L351",
      "signature": "def _validate_publish(payload: Mapping[str, Any]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7668ec9ff54fe707e8488c62c60c1c0dd3dfc7745823d674265d2c9c7bea3336",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_steps",
      "name": "_validate_steps",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L299-L338",
      "signature": "def _validate_steps(payload: Mapping[str, Any], *, deleting: bool) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a0813194055b85526f0a5c7fee6de102050474032ef8080aa8845edcbea6952c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_update",
      "name": "_validate_update",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L243-L296",
      "signature": "def _validate_update(payload: Mapping[str, Any]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9a87eb0e7fce0bb63edf0a150c4f30a84c67f67026bfb3b978b1ffb77a8adf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L83-L146",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc2e6acc8065d7fd42394663ab0ca126f39d65db1d5f5bdbb484489d1fd2644c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L450-L626",
      "signature": "def build_plan( *, operation: str, target: str | None, payload: dict[str, Any], origin: str, tenant_origin: str | None, upload_file: str | None, local_max_upload_bytes: int, confirmation: str | None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f8cdaa79d6409edb17c05e347c40c83683565ea88c0f99629c27495ff17e5b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#credential_env_name",
      "name": "credential_env_name",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L629-L630",
      "signature": "def credential_env_name() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "540fc6be1ce4e3eb304a2ca2778df791920c995577a23ef2fbb9983b5c6eff91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L637-L653",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cb707f0da34e4cfe2a11245068ec6f9774e7bd2be64bce58c7cfa0c1e573d9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/plan_write_request.py#urllib_target",
      "name": "urllib_target",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "span": "L633-L634",
      "signature": "def urllib_target(url: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "733825b2b70f18d4aed13ca45854d59e8b0962110c915b529d15d10f79314c3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py",
      "name": "protocols_read.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L1-L494",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8433afd642d4b80b90575bcf5b19687b356f46c3ffc014d297ce9cee23c9b667",
      "chars": 15573,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_add_protocol_arguments",
      "name": "_add_protocol_arguments",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L185-L197",
      "signature": "def _add_protocol_arguments(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "39feeef6a77a257d981bccbb6e7ce1c9c6bce4f0e58d5157ab818ba6fbdf47a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "name": "_execute_list",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L330-L385",
      "signature": "def _execute_list( args: argparse.Namespace, plan: Mapping[str, Any], *, token: str, opener: Any | None, sleep: Any, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6a8436d7ff86ae320014fedf8092069af4595851eac09093eadca7ca976ca053",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_pdf",
      "name": "_execute_pdf",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L388-L422",
      "signature": "def _execute_pdf( args: argparse.Namespace, plan: Mapping[str, Any], *, environ: Mapping[str, str], opener: Any | None, sleep: Any, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "eb596f6ef587aa9ea53c43c39ff0101f7228a94ee7dc23a15f5d353f1958f810",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_get_items",
      "name": "_get_items",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L211-L217",
      "signature": "def _get_items(payload: Mapping[str, Any]) -> list[Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "dd3ee9af08e50a5cee368b043c4de39c32a69a869179a20ac7c1909ded779c18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_has_pagination",
      "name": "_has_pagination",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L220-L227",
      "signature": "def _has_pagination(payload: Mapping[str, Any]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "31bce553a657a1b46b4b43e1a5bdff32a1229acc7c70edb7ed7dc345e6d2f7eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_plan",
      "name": "_plan",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L254-L327",
      "signature": "def _plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f9c4c2b042574f079317b713e84bec8fa45725ca67b8b95144baa2cba73c47b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_request_json",
      "name": "_request_json",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L230-L251",
      "signature": "def _request_json( url: str, *, token: str, args: argparse.Namespace, opener: Any | None, sleep: Any, ) -> tuple[Mapping[str, Any], int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f6a77ee09688160cd4bf305006727735b9c470a3093cd53cd7d8b2439ffc43af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#_require_token",
      "name": "_require_token",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L200-L208",
      "signature": "def _require_token(environ: Mapping[str, str]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "2efb04f444c874ad82ced6e1c4e1bbb699b3db37666b125a3c6724ca9746cc56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L63-L182",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "58e295e2052482bdd80907f2641d849360cc248ec94637ef2f97cc7bb1395020",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "name": "execute",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L425-L474",
      "signature": "def execute( args: argparse.Namespace, plan: Mapping[str, Any], *, environ: Mapping[str, str], opener: Any | None = None, sleep: Any = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9189a95cc2525ce977220558148fc24c76e9ca5e4bb4f70bc6a00320efbcd1fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/protocols_read.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/protocols_read.py",
      "span": "L477-L489",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "af6df54867bede8f6749db48ccd3d75d73da3a4e56f7eaf63e17cbc6fd9d275c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "name": "validate_auth_config.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "span": "L1-L129",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fb3e49f7bda0f38889f79fc198232e19d3dda8bea3ea843670d508d1202eef95",
      "chars": 3529,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_auth_config.py#_validate_secret_value",
      "name": "_validate_secret_value",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "span": "L57-L67",
      "signature": "def _validate_secret_value(name: str, value: str | None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "583778b53b8232cc4d087ba544162b1f0333cc86eda2d21bb8fee6c58c31700b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_auth_config.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "span": "L32-L54",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "68732649c77d4d0fc6878975797c2f7bcbfbdfd760c3c36f2ad3d1badc9ced93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_auth_config.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "span": "L112-L124",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "27f6b2bb40fbb5f7c033363517309f1c0cc4c14f6101e40387bb90b0d53fe01d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_auth_config.py#validate_config",
      "name": "validate_config",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "span": "L70-L109",
      "signature": "def validate_config( *, origin: str, tenant_origin: str | None, requirement: str, environ: Mapping[str, str], ) -> tuple[int, dict[str, object]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "beb4839741951df6daa542c164707e7fcfeb2674afc806d28d83148c341221d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "name": "validate_protocol_json.py",
      "kind": "file",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L1-L359",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ecacd47f3b56f3bcb2349a432f4586d17de96921efaec64a387e787b4535e3f0",
      "chars": 12311,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_int",
      "name": "_bounded_int",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L95-L109",
      "signature": "def _bounded_int( value: Any, *, name: str, minimum: int = 0, maximum: int = 2_147_483_647, nullable: bool = True, ) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a2014257872fa3af0cff56b43124f2beb6f17c938b7f0a4f5a793f475d7bb3af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_list",
      "name": "_bounded_list",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L112-L124",
      "signature": "def _bounded_list( protocol: Mapping[str, Any], name: str, maximum: int, ) -> list[Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "84553c62edba320d8f1356554db4dcb0243ca6a6fd18f62f63686edd476078ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_string",
      "name": "_bounded_string",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L79-L92",
      "signature": "def _bounded_string( value: Any, *, name: str, maximum: int = 2_048, nullable: bool = True, ) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1df68512c041887285ef63fdede3d8dad2313206e5d6c62e4a19a4a4476d8155",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_protocol_object",
      "name": "_protocol_object",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L61-L76",
      "signature": "def _protocol_object(payload: Any) -> Mapping[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e17b6ff211c8eba4b5766e91766872436c639debeca0cb24dcc7f284b9d31d43",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_authors",
      "name": "_validate_authors",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L137-L150",
      "signature": "def _validate_authors(authors: list[Any]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "40a016c8460b2acb127a6b5548245431f0414ca73242f7dd571a6b15f5c5108d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_public",
      "name": "_validate_public",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L127-L134",
      "signature": "def _validate_public(value: Any) -> bool | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ca7d7556f03d78d1d7edab8ed8f973089fdf519def96b3b25c74db0a5580142",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_steps",
      "name": "_validate_steps",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L153-L221",
      "signature": "def _validate_steps(steps: list[Any]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7ba50eea8469c4671751e62767191f2882dfe30f3365ea79230a9373a741970f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_version_specific",
      "name": "_version_specific",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L224-L229",
      "signature": "def _version_specific(protocol: Mapping[str, Any]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "0dce056578224038f48014ce247c26f7e1bbd248e2eccefd2e208edbeb06f8d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L39-L58",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "96d3329dcd049830f13596a7eb971e6b25a0bc1a105b56022714a164dc23d043",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L343-L354",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8936661ae7c960d4646e49a52c724245b9553fd49efbd13691366f03e7142cbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "name": "validate_and_summarize",
      "kind": "function",
      "path": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "span": "L232-L340",
      "signature": "def validate_and_summarize( payload: Any, *, require_version: bool, max_steps: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "96cd95695c9a3faba1254c346adb46bae57c9e09096b176bd731df8ba03f248b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5e2a587bf7e4f8fb11154872238594d6ba21805716d7f3b974675ebe54e52bfb",
      "chars": 62,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L1-L200",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8f3f610237c6035f4fcb379ec16198f9e2a93c7770ba93e9d222530e5512f85f",
      "chars": 6668,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "name": "_assert_finite_json",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L84-L92",
      "signature": "def _assert_finite_json(value: Any, path: str = \"$\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7afacab71647cc2a892382eca10643163702d4781ccb66bb689827ac2f95d734",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L71-L72",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "15c197aa1be73d48c7a3a1e612bf60ff3a8a14b9dd256afd4f3ae0f13a1c88cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#_reject_duplicate_keys",
      "name": "_reject_duplicate_keys",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L75-L81",
      "signature": "def _reject_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "18f72b8470488b4defea10a3366e2e9aab2548a904a4275959fc9ab08b71531e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L42-L52",
      "signature": "def bounded_int(value: str | int, *, name: str, minimum: int, maximum: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6c8d863b0c8cfb83d6d6feaa80ba373d0437d9ef07bb229d26368053a99004c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L124-L125",
      "signature": "def emit_json(value: Any, *, pretty: bool = True) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9c98d7401655b6d81927bf10dbb88d34c1cc51a1bed3c510e467f4257473f0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L152-L170",
      "signature": "def load_json_object( path: str | Path, *, root: str | Path, max_bytes: int = MAX_JSON_BYTES, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa31cd04e1df5d8ec956baca0af31780455e2a8ffd1edd15a3b521ddb585d0d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#require_keys",
      "name": "require_keys",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L189-L199",
      "signature": "def require_keys( mapping: dict[str, Any], *, allowed: set[str], required: set[str], path: str, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c5a00743f18fcb4be620f280a198f111dcc45f4ff91a0a2617d3e162b7eaddb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#resolve_local_path",
      "name": "resolve_local_path",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L128-L149",
      "signature": "def resolve_local_path( value: str | Path, *, root: str | Path, must_exist: bool = True, reject_symlink: bool = True, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "d62868b06831cdfdeb0200e202d29f8160de703a5c28357b263fb24a72e363c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#secret_key_paths",
      "name": "secret_key_paths",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L173-L186",
      "signature": "def secret_key_paths(value: Any, path: str = \"$\") -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "371b36a7211d3a28b5cd29d4d38786f5ac482737e6492fe90b8f3bb8f875ff2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#strict_json_dumps",
      "name": "strict_json_dumps",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L111-L121",
      "signature": "def strict_json_dumps(value: Any, *, pretty: bool = True) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b8bac8e4b294e1b22886dd5e7382348663f31557aa58ec52805ac37b2095363",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#strict_json_loads",
      "name": "strict_json_loads",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L95-L108",
      "signature": "def strict_json_loads(text: str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "46640b16cc5b0b6fa7a9ed0c6234581de63904364bfd0ca2b2727574a24ff7dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#UserInputError",
      "name": "UserInputError",
      "kind": "class",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L38-L39",
      "signature": "class UserInputError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38a9c786d424c565e381fb6ac37ccc6909be05562065614471a1241fbe15b741",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#validate_sha256",
      "name": "validate_sha256",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L64-L68",
      "signature": "def validate_sha256(value: str, *, name: str = \"sha256\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d27f4409ea29a7d62e2f0b264dbe2a14d992d72dc6365f23f3f55e47a269490e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/_common.py#validate_slug",
      "name": "validate_slug",
      "kind": "function",
      "path": "skills/pufferlib/scripts/_common.py",
      "span": "L55-L61",
      "signature": "def validate_slug(value: str, *, name: str = \"name\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "36cdfe2bcd9d136bb2d91d7971e100f6491c6dca64ed4bd218e3cf80eb53e07b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "name": "benchmark_vectorization.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L1-L245",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4601b83d9493dd4fd1c21b84afb2bd17fcedb0674d2bf526e62e770a59b16d6b",
      "chars": 8332,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#_partitions",
      "name": "_partitions",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L46-L62",
      "signature": "def _partitions( *, num_envs: int, workers: int, steps_per_env: int, seed: int, max_steps: int, ) -> list[tuple[int, int, int, int, int]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d6fbbddcdb5ad4b5a22fa4dad428ca1eeea00d04c83d6359fb8f2804c546cf47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "name": "_run_partition",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L22-L43",
      "signature": "def _run_partition(payload: tuple[int, int, int, int, int]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e9b6bc054b276c2378233c2272a14dab304687c632a7a43b0c9584b0e6837cf8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize",
      "name": "_summarize",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L65-L78",
      "signature": "def _summarize(samples: list[float]) -> dict[str, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "835eda8beee0167798f9030579c59f8e209070ea6222243b6934898a245c5a12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize.percentile",
      "name": "percentile",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L68-L70",
      "signature": "def percentile(fraction: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "e208a30fdd74c07f27d9dd9c6f0f63939930065ab8ac480de874b3c38c36c2d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#benchmark",
      "name": "benchmark",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L81-L176",
      "signature": "def benchmark( *, backend: str, num_envs: int, workers: int, steps_per_env: int, repeats: int, warmup_steps: int, seed: int, max_steps: int, start_method: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a024c45caaa96945a2c3e2fdafe85269dada487a238a409bb8ac75dd40d5c2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L179-L204",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f67f5d807e62b4e62003715befad2850e3a939132446a1a15298430dddd7043",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/benchmark_vectorization.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "span": "L207-L240",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "604d68cd46ae7771ca9145ba0984ff15166b18c541469acb619fc8f4a4d84555",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py",
      "name": "env_contract_validator.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L1-L199",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2308a4f0076f6e5cba7a1a8328fa8764ba2f21828c252d0bd0bb0689321abade",
      "chars": 6892,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "name": "_check_determinism",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L74-L88",
      "signature": "def _check_determinism(seed: int, max_steps: int, errors: list[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7dbd9e786521fccd1abca001d1bf15faa0ce69cf21c48be3ad41b8b6dc716d8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#_require",
      "name": "_require",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L19-L21",
      "signature": "def _require(condition: bool, message: str, errors: list[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "9dc7cc7c05c79957eb8ef766a0a7e224093a6865eb4e7c25aed91215b8c4d894",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#_validate_reset",
      "name": "_validate_reset",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L24-L39",
      "signature": "def _validate_reset(result: Any, env: SyntheticGymEnv, errors: list[str]) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "fff33011568c287120e893a62446bd0738ae577780e37e1ff0349b2b7755560e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#_validate_step",
      "name": "_validate_step",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L42-L71",
      "signature": "def _validate_step(result: Any, env: SyntheticGymEnv, errors: list[str]) -> tuple[bool, bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e44de448c9210bfac33d3b3ed214d2729981a06577f1b6e6b7691a0978bf1718",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L160-L173",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "1de72ac66902ec2d08a81cd56ef28cd1be222b44e61cc98bd9f045a872979a14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L176-L194",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "79322edde6e5489358f97ac9885ab307df832c087f7de13a742a1ebd3afecf5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "name": "validate_synthetic",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_contract_validator.py",
      "span": "L91-L157",
      "signature": "def validate_synthetic( *, seed: int, steps: int, episodes: int, max_steps: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d54f081322d344999e04ced0f7235208b5e74edceeabc27a3cd14783e310758a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py",
      "name": "env_template.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L1-L211",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "058f479e510d8f02d8bbba517c96d7a9f8fe6dfc5e32f01f333b22651204df70",
      "chars": 7251,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#BoxSpace",
      "name": "BoxSpace",
      "kind": "class",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L42-L60",
      "signature": "class BoxSpace",
      "exported": true,
      "origin": "ast",
      "body_hash": "b04a3d81d1c3856f6e698727672f2f6f048c564350b74fb8a65ca66d5d00d607",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#BoxSpace.contains",
      "name": "contains",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L50-L60",
      "signature": "def contains(self, value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7fe0304925b7e1353bcabe05204346cab7e3dba8834280e836ffb08ba4d1c54",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoxSpace"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L183-L191",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c0983587fa37d885e38beb70a453f66df5c1ab3343be7718717ff93beabe976",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#DiscreteSpace",
      "name": "DiscreteSpace",
      "kind": "class",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L25-L38",
      "signature": "class DiscreteSpace",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2341e62d79101fbaeeb66b70c5e2337389b3657f60bef6329caa5409795f282",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.contains",
      "name": "contains",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L34-L35",
      "signature": "def contains(self, value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ebd5af348cec1405ab8415f1c3ef0d88de35c2a8dedc16f3acc9a4ff614bcb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscreteSpace"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.sample",
      "name": "sample",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L37-L38",
      "signature": "def sample(self, rng: random.Random) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb59186423c43b2474c7845494623971f7064db6a75ea74ca61c86859e70c843",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscreteSpace"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.shape",
      "name": "shape",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L31-L32",
      "signature": "def shape(self) -> tuple[int, ...]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ef64664dc626a329f42558fedda119e4ede7be79a04604993c0dc7eb4f4f8d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscreteSpace"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L194-L206",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2c1f574ffc4fb550259a4df5cdc449a193025eff14c03d9efaabb4d2b9df89d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#run_demo",
      "name": "run_demo",
      "kind": "function",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L149-L180",
      "signature": "def run_demo(*, seed: int, steps: int, max_steps: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ddaaaf353a9454ea21286ab5b3f33fc8a73e9ee1452eac8727f4e433ccec1dce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "name": "SyntheticGymEnv",
      "kind": "class",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L63-L146",
      "signature": "class SyntheticGymEnv",
      "exported": true,
      "origin": "ast",
      "body_hash": "353f7080d2a50fe3c07e646bdfec4d328edb7caf0d8531d4f485c68b4b328a50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L68-L80",
      "signature": "def __init__(self, *, max_steps: int = 16) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "bb13fb22b10f892a044ec1000ec0407efb81ac1e07491fdc185d3b0d757762b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticGymEnv"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv._observation",
      "name": "_observation",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L82-L88",
      "signature": "def _observation(self) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8d935be648a90ca6da6df740c006504406deae509ee6ec83b430a5fa3f2c4f32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticGymEnv"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.close",
      "name": "close",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L144-L146",
      "signature": "def close(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "97deac17804a652cf42545363f50678cb00cc447b408af05aaf81fe8fad9dc8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticGymEnv"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "name": "reset",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L90-L115",
      "signature": "def reset( self, *, seed: int | None = None, options: dict[str, Any] | None = None, ) -> tuple[list[float], dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "082ee631498e99e6e5b088511cf2f6daa393952004980389e6d96d6a47432246",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticGymEnv"
    },
    {
      "id": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "name": "step",
      "kind": "method",
      "path": "skills/pufferlib/scripts/env_template.py",
      "span": "L117-L142",
      "signature": "def step( self, action: int ) -> tuple[list[float], float, bool, bool, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6701ff5669823b2db48c34324ea1cd6752307887e4839e220803bd950d7bfded",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticGymEnv"
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "name": "inspect_checkpoint.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L1-L226",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ecc0f229309b634618c7bcec65063d3e1aac3b747f04af53013b3215f5fba1fa",
      "chars": 6832,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#_detect_format",
      "name": "_detect_format",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L69-L90",
      "signature": "def _detect_format(prefix: bytes, suffix: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "22c276c2738442a062873b8f81957eec0966fb59368605e10e128aeadca61a11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#_hash_and_prefix",
      "name": "_hash_and_prefix",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L93-L103",
      "signature": "def _hash_and_prefix(handle: BinaryIO, *, chunk_bytes: int = 1_048_576) -> tuple[str, bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a0f886b70b7b43109d87d309e326ca9023747c91e6984da3af7f81f984c50a9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#_open_regular_no_follow",
      "name": "_open_regular_no_follow",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L53-L66",
      "signature": "def _open_regular_no_follow(path: Path) -> tuple[BinaryIO, os.stat_result]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7b1ad3095ee0d3a0bb983a36630a02db9c4aa6c291360220ae6aee3a9b705eec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#_safe_sidecar",
      "name": "_safe_sidecar",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L106-L119",
      "signature": "def _safe_sidecar( metadata_path: str | None, *, root: str | Path ) -> tuple[dict[str, Any] | None, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ec216d61175dd8a0e412a0f67b0643a0d91a4422f848ce2db32b60b8b5bf3aa0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L173-L191",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "36efa743248e79f8bb2ec6c7937d6eb3e69cb3ba00c37329d97c2ee858975a4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "name": "inspect_checkpoint",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L122-L170",
      "signature": "def inspect_checkpoint( checkpoint_path: str, *, root: str | Path, metadata_path: str | None, expected_sha256: str | None, max_bytes: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "77c4776e515627dccbf505ad0d47d7884c5e6f042c7bb27d97efc5087970d848",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/inspect_checkpoint.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "span": "L194-L221",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebe94494f1b9c2cc108c323d1198d8b86af2f5fbe5557cac0a88e69a75af2dad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/repro_plan.py",
      "name": "repro_plan.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/repro_plan.py",
      "span": "L1-L178",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f3af13a6b15ff4af08c689d90396147d0bf8dc0481f2d945f1bae5a0cb63801d",
      "chars": 6027,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/repro_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/repro_plan.py",
      "span": "L122-L136",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc21f814ad1e60d7a98eafc3ba020067166ba5acc523c4ad5f63ddecbc163a40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/repro_plan.py#generate_plan",
      "name": "generate_plan",
      "kind": "function",
      "path": "skills/pufferlib/scripts/repro_plan.py",
      "span": "L31-L119",
      "signature": "def generate_plan( *, profile: str, environment: str, base_seed: int, replicates: int, eval_episodes: int, benchmark_repeats: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "330071e96beb852849f100773fdcbd4275174102a40c86cdcec8516799197d6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/repro_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/repro_plan.py",
      "span": "L139-L173",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "552acb7d94cdb19e454d4d4dfbd92abf11f717f1de4ba25abfd8a018470b1bee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/train_template.py",
      "name": "train_template.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/train_template.py",
      "span": "L1-L283",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1c1844c7c07e649894347c648031b6c3656c896f126a3f8d24f1e052278f66ab",
      "chars": 9975,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/train_template.py#_command_preview",
      "name": "_command_preview",
      "kind": "function",
      "path": "skills/pufferlib/scripts/train_template.py",
      "span": "L23-L79",
      "signature": "def _command_preview(plan: dict[str, Any]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "289fe075556824e60240b53fdde12733c52c7e15aa9f589219a880ec0d8fe89d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/train_template.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/train_template.py",
      "span": "L187-L239",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "11f132e7bba627a373fe9c0558d1db0057e088a9eb091fffe423bc2086fb0b3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/train_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/train_template.py",
      "span": "L242-L278",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfe086e55d947ba00815f4b2cb1e49d4f18243176158cfce01dd7b9148b50d06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/train_template.py#make_plan",
      "name": "make_plan",
      "kind": "function",
      "path": "skills/pufferlib/scripts/train_template.py",
      "span": "L82-L184",
      "signature": "def make_plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bcfa0a29e256066c6c7cea7d4ac2c2b87880efd99c873def5898c7f2a2fabea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py",
      "name": "validate_plan.py",
      "kind": "file",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L1-L571",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d0cc93404fa3ae6bb0a933cccdfea77e233a9cb7807cea663a2c1529245a8b59",
      "chars": 18466,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_boolean",
      "name": "_boolean",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L138-L142",
      "signature": "def _boolean(value: Any, *, path: str, errors: list[str]) -> bool | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a4af70f343d3ceaff028f5987dbc60df515d04f5dd8ef96baedf02159e0fe9df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_integer",
      "name": "_integer",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L121-L135",
      "signature": "def _integer( value: Any, *, path: str, minimum: int, maximum: int, errors: list[str], ) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7634441c83340d12cf43ec63ab01d0c2f69e82e99227ec19088dfbf9a32a9a8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_mapping",
      "name": "_mapping",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L114-L118",
      "signature": "def _mapping(value: Any, path: str, errors: list[str]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8c53167df34a3bb7e8e902d7614d70c3449d5b714ec03173868fd6930e7479b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_checkpoint",
      "name": "_validate_checkpoint",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L458-L471",
      "signature": "def _validate_checkpoint(checkpoint: dict[str, Any], errors: list[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3077e73b8829e6d474592954632fba18e02e4c2d8c29f27016dca65448554881",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_environment",
      "name": "_validate_environment",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L179-L204",
      "signature": "def _validate_environment(environment: dict[str, Any], errors: list[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1e959f01e498afb354783b7e06c885f8635f3e3f8a4fd26e8692d27bc8f75d94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_evaluation",
      "name": "_validate_evaluation",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L383-L414",
      "signature": "def _validate_evaluation( evaluation: dict[str, Any], training: dict[str, Any], errors: list[str] ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "66560cc6a7814deca6fe2c08691c2311502aed8ea32b421cff464f20dc88cb3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_logging",
      "name": "_validate_logging",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L417-L455",
      "signature": "def _validate_logging( logging: dict[str, Any], profile: str, errors: list[str] ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "dea435e3d2212a64ccb2a734a131ab13ae8960dd8daaa801d65933474dc227ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_package",
      "name": "_validate_package",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L145-L176",
      "signature": "def _validate_package( package: dict[str, Any], profile: str, errors: list[str] ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6822f148818fc8e8ad304b6c759e69ea9ac643985ed3b713961d92ad0c9f5cb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_training",
      "name": "_validate_training",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L207-L247",
      "signature": "def _validate_training(training: dict[str, Any], errors: list[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "235b68ece8dffce96b2cb0d6b4afe36446aec948eea032686ade6587b4647df5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#_validate_vectorization",
      "name": "_validate_vectorization",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L250-L380",
      "signature": "def _validate_vectorization( vectorization: dict[str, Any], profile: str, training: dict[str, Any], errors: list[str], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "aa80599eb2e966bfb5b79f628c5f64a0287531e3594ed377e3fe831133a87094",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L528-L539",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2776aa3fcb346e46e3586e4f470e6ec98d17b3de2eb6cb7c25616e3d02d9c50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#default_plan",
      "name": "default_plan",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L48-L111",
      "signature": "def default_plan(profile: str = \"pypi-3.0.0\") -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5b1941bcec3b05db1d7bfc3c289224ccc6440441354a8f489a603c7158270e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L542-L566",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d264b8b340de17ea8eae8c8729a5737b58c010a33aed425a72eeeda61630e70",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "name": "validate_plan",
      "kind": "function",
      "path": "skills/pufferlib/scripts/validate_plan.py",
      "span": "L474-L525",
      "signature": "def validate_plan(plan: Any) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "679ec03db6e5ab299e864e2617a3ca77d5f12443a6675946e9a505b611c6a094",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "name": "run_deseq2_analysis.py",
      "kind": "file",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L1-L389",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1718f0c1423e0589a8a6776174c47379479a8d0568171f7219ae8a77b5dc31e1",
      "chars": 13061,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#create_plots",
      "name": "create_plots",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L218-L281",
      "signature": "def create_plots(ds, output_dir)",
      "exported": true,
      "origin": "ast",
      "body_hash": "983dcf1df642b5f7edaa4100ba670ef5aaf0dcb8952ecda0798e0dda8ac3538c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#filter_data",
      "name": "filter_data",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L67-L91",
      "signature": "def filter_data(counts_df, metadata, min_counts=10, condition_col=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "003ec6a28489c2d2cd482eb7da9ccb60bd7a596d0ad2f052320272e14acd688d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#infer_shrink_coeff",
      "name": "infer_shrink_coeff",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L124-L134",
      "signature": "def infer_shrink_coeff(dds, contrast)",
      "exported": true,
      "origin": "ast",
      "body_hash": "56f4eddd04a3d9c70fd7a185e9137583560d0990b9eb2c868bcb0abd1a8daf8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#load_and_validate_data",
      "name": "load_and_validate_data",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L34-L64",
      "signature": "def load_and_validate_data(counts_path, metadata_path, transpose_counts=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c61953b946339829f8e25c8d7ae8f255da0e89388e916638c41709bf2ef3d71a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L284-L384",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3c01fc1a2cca4ee0a5ef4bc31fac96814956269605f81913c05d161bb97cfa7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_deseq2",
      "name": "run_deseq2",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L94-L121",
      "signature": "def run_deseq2(counts_df, metadata, design, n_cpus=1)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b830f8882d16ecf6b17492e9a4ae3a442387ee243e4147a1e430c176dc6c892e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_statistical_tests",
      "name": "run_statistical_tests",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L137-L169",
      "signature": "def run_statistical_tests(dds, contrast, alpha=0.05, shrink_lfc=True, inference=None, shrink_coeff=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b8f1fbb837a66e693a92c8b7d6e46466c8b3ac5a1c18858ea5b81c1704674ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydeseq2/scripts/run_deseq2_analysis.py#save_results",
      "name": "save_results",
      "kind": "function",
      "path": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "span": "L172-L215",
      "signature": "def save_results(ds, dds, output_dir, shrink_lfc=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "71470bbf4445f6a534add13b4ccad5cd5cf6f3c04b2799033017d01c5d28f0bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fecf71e36c1caf5edc7470964188e93742dc8e4d69a977e04df910382898a96d",
      "chars": 60,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L1-L917",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e3647bd18249286dd93e03d80320f07cabb5a83e93c242255b472496551de7a5",
      "chars": 29812,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#_absolute",
      "name": "_absolute",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L365-L366",
      "signature": "def _absolute(path: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "f88c3b37eaa87462b032c0d4c75a3a3e3260a06a6ecd36ed50de0152030a215d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#_reject_json_constant",
      "name": "_reject_json_constant",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L553-L554",
      "signature": "def _reject_json_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d174ce8d7a254e235b7145f9a8b84e0115385d53821dda45218e39299ce9a620",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "name": "_reject_path_text",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L354-L362",
      "signature": "def _reject_path_text(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "349a848d392a47dd45de1b6b71d16a30e4a0722c0ce0e4d43f826daa1cf5ec9e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "name": "_reject_symlink_components",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L369-L381",
      "signature": "def _reject_symlink_components(path: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7b653f27231989ee259a525ca3920ffde13a503e2af64064b72348155b635d86",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L557-L563",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c1fb7c4c426a83617c5f288d429e2f2f8c78f3cf46961f321b1ae033d909c89d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#_within_root",
      "name": "_within_root",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L399-L403",
      "signature": "def _within_root(path: Path, root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "07c17727f037da0816852dcf8e3b4aba3c98f4eab7b107123ba75314fa924a0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#atomic_generated_file",
      "name": "atomic_generated_file",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L648-L681",
      "signature": "def atomic_generated_file( destination: Path, *, writer: Callable[[Path], None], validator: Callable[[Path], None] | None = None, force: bool = False, max_bytes: int = HARD_MAX_OUTPUT_BYTES, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd059be0d84f7a25eac0a5ec9d10a17fdfbf369cefaf32418cb7b61a71106075",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#atomic_write",
      "name": "atomic_write",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L622-L645",
      "signature": "def atomic_write( destination: Path, payload: bytes, *, force: bool = False, max_bytes: int = MAX_REPORT_BYTES, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cf32ff31b441a983299c9003ab58d07ba1a7f1121b9c570c4c3986bc170c925",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L305-L314",
      "signature": "def bounded_int(value: Any, *, name: str, minimum: int, maximum: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfdbd433e687b1b053c32eb1b41f15ce274e78db22da9eefb0254f1e4938fc35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#checked_input",
      "name": "checked_input",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L406-L438",
      "signature": "def checked_input( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", kind: str = \"file\", max_bytes: int = DEFAULT_MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ce0c248b21a6915efba9c2c02eab74c35276ed6afa77e4aab6375395f0215eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#checked_output",
      "name": "checked_output",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L441-L467",
      "signature": "def checked_output( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "f22859fcc85d61b3ba5cb5c27e48eccc263dd70e503d5bd0d53ff46236ebdef9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "name": "checked_output_directory",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L470-L498",
      "signature": "def checked_output_directory( value: str | os.PathLike[str], *, root: str | os.PathLike[str] = \".\", ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c8779adfb42c9294edcc7d98d646f99e641ec56aeac52ebe9d71687a43b7c4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#checked_root",
      "name": "checked_root",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L384-L396",
      "signature": "def checked_root(value: str | os.PathLike[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee8810aadc616cf974b1360e86344ce7b0533528d8d21e630b578135f16303e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#collect_local_files",
      "name": "collect_local_files",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L507-L550",
      "signature": "def collect_local_files( source: Path, *, max_files: int, max_bytes: int, recursive: bool = True, ) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "57f3aaca4d0d5df46210e1ff26b7933c54438784add37c5e25f4ebcc0b093564",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#counter_dict",
      "name": "counter_dict",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L870-L871",
      "signature": "def counter_dict(counter: Counter[str]) -> dict[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9bef175fa426a0475c7ebd829ab6b02389ec08da4565fb7af06259812e64305",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#derive_token",
      "name": "derive_token",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L767-L776",
      "signature": "def derive_token(value: str, *, key: bytes, scope: str, length: int = 24) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f88ca663c7b50777415da6ede686d00d358651eb758529ebb92aefbf120e685a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#derive_uid",
      "name": "derive_uid",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L749-L764",
      "signature": "def derive_uid(original: str, *, key: bytes, scope: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b1edaf59c631da60d8784c676dd8d7ec1d1b55cf168b7f289231b471e730629",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#element_tag",
      "name": "element_tag",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L734-L735",
      "signature": "def element_tag(element: Any) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "787dec8ffb2907ccab7fa29d8b745c7ae46007ea30f0bff2f04774fd94676bec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L601-L602",
      "signature": "def emit_json(document: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f6a78140509d06eb0c39f7329bcbb8a4969179067099ae8c843f9ebf6345eed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#fail_json",
      "name": "fail_json",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L605-L619",
      "signature": "def fail_json(tool: str, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab369987959e4bcba8db24dce92d6b0c36a94ffb473320c60464f9a686f86941",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#frame_count",
      "name": "frame_count",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L783-L795",
      "signature": "def frame_count(dataset: Any) -> tuple[int, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a42d5a93bb3367e4470dcf2936020172ab40fc3f6f4fc279bb9bafab5c437ede",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#json_bytes",
      "name": "json_bytes",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L582-L598",
      "signature": "def json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "2073ca1bab8b5d76823e6a69da9ffdfd098c5c2eae6a37da9079bd6e9939ced8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L566-L579",
      "signature": "def load_json(path: Path, *, max_bytes: int = MAX_JSON_BYTES) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "54d2373c236dcdb5d6f5ae1f3089c9038b48019056ef4d3d328f08e1549005a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#parse_size",
      "name": "parse_size",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L317-L335",
      "signature": "def parse_size( value: str | int, *, name: str, minimum: int = 1, maximum: int = HARD_MAX_INPUT_BYTES, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8657638598c0ec5026a3e717a779afce32629ce503519277876533983068dd88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#paths_overlap",
      "name": "paths_overlap",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L501-L504",
      "signature": "def paths_overlap(first: Path, second: Path) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc6e57b8cbde6fc433873cc1ae312c984cb64c930b31b0b95e60e9d25b736c5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#pixel_plan",
      "name": "pixel_plan",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L798-L867",
      "signature": "def pixel_plan( dataset: Any, *, max_frames: int = HARD_MAX_FRAMES, max_decompressed_bytes: int = HARD_MAX_DECOMPRESSED_BYTES, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a2857379a3f677c90c7ef8c9383b5d13610f79cc39e37616438c0e7354396ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#require_pixel_stack",
      "name": "require_pixel_stack",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L699-L710",
      "signature": "def require_pixel_stack() -> tuple[Any, Any, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "257ad376d67c1e02b9e4f77e6b5559ae0b22d8ccb9270a92c44c61486cf9d607",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#require_pydicom",
      "name": "require_pydicom",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L684-L696",
      "signature": "def require_pydicom() -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc74ebdd031af99983f018c571fca5df1060756ca452ef2a0171688f29891dc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#require_text",
      "name": "require_text",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L338-L345",
      "signature": "def require_text( value: Any, *, name: str, minimum: int = 1, maximum: int = 1_000 ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "813e2522a4ee6b170225e874c0c44e9cfe4793023b3243d5e3e43fbf7629262d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "name": "safe_dcmread",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L713-L731",
      "signature": "def safe_dcmread( path: Path, *, stop_before_pixels: bool, force: bool = False, defer_size: str | int | None = None, specific_tags: Iterable[str | int] | None = None, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5921ddfeef324cdeb14819dd19a8d5e14e954e84a754d89137a5a9dba3c4b48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#safe_plugin_name",
      "name": "safe_plugin_name",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L348-L351",
      "signature": "def safe_plugin_name(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7b4429bc5a917328f6d7fbafe688f195b0e00f1bca0ec1da1e10ceb612524bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#sha256_text",
      "name": "sha256_text",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L779-L780",
      "signature": "def sha256_text(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c0a40d5002b6eb9917094dfaf2368903fc9199f53fb782d34c9f0e61a453eb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#starter_profile",
      "name": "starter_profile",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L909-L916",
      "signature": "def starter_profile() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f218f336fc8d76c38c21c6540e3633cbb8fdce149bd69fd8cb68aed5a7c7a3c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#ToolError",
      "name": "ToolError",
      "kind": "class",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L301-L302",
      "signature": "class ToolError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2f398556b122aeb5c95bdea72f0f1d70b29f6eef8353b4e972a79b9b893d3d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#valid_uid",
      "name": "valid_uid",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L738-L746",
      "signature": "def valid_uid(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb47ae9fa11afec9b53ea93ebd80619bf3752a9f482dc04aac2cf69f9cd7e609",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/_common.py#validate_profile",
      "name": "validate_profile",
      "kind": "function",
      "path": "skills/pydicom/scripts/_common.py",
      "span": "L874-L906",
      "signature": "def validate_profile(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7c6a01cef382d9e281cb04b29066fee28e4e4014d08a4827a22dd1517929e4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py",
      "name": "anonymize_dicom.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L1-L714",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "117b20a2127d089e922420add6e08b2fbbe482e68e9ac7a242b1e23b810483bd",
      "chars": 25805,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_date_action",
      "name": "_date_action",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L131-L170",
      "signature": "def _date_action( element: Any, *, date_policy: str, date_shift_days: int | None, retain_times: bool, counters: Counter[str], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f98fce0266ab0ea8ee26faf80d73c5e1a1fb7dd8d01ff941fc5325d21ab7cf30",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_load_key",
      "name": "_load_key",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L63-L78",
      "signature": "def _load_key(path: Path) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "cff10e895bfdb939f78a3c777ce7831a807526ea233b23982ae12932e62648ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_looks_instance_uid",
      "name": "_looks_instance_uid",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L173-L176",
      "signature": "def _looks_instance_uid(keyword: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "2f494fb7537979057b398fcee80e1bb4f392f36f9edd840329edc53e0dfb8c0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_map_scalar_uid",
      "name": "_map_scalar_uid",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L81-L89",
      "signature": "def _map_scalar_uid( value: Any, *, key: bytes, scope: str, mapping: dict[str, str] ) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "40d5377762c8a14d7313bc335c1bd0203710498718a78c244c3b46b2bf450442",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_map_uid_value",
      "name": "_map_uid_value",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L92-L100",
      "signature": "def _map_uid_value( value: Any, *, key: bytes, scope: str, mapping: dict[str, str] ) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "48cb7b339d8d8a481c505604e3820a0f16cee2ff2c6215559e38cf7d85b71996",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_pseudonym_value",
      "name": "_pseudonym_value",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L103-L107",
      "signature": "def _pseudonym_value(value: Any, *, keyword: str, key: bytes, scope: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "52d91bcf6f747c4cee349959419422f8391530802940b1949b57b344502ecf3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_rebuild_file_meta",
      "name": "_rebuild_file_meta",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L346-L360",
      "signature": "def _rebuild_file_meta(dataset: Any, *, original_transfer_syntax: Any) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "294f7b7e9308663ab3c41b57a56c07a1fb3463dbd8c6aab4914404856f1e7b98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_shift_date_text",
      "name": "_shift_date_text",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L110-L120",
      "signature": "def _shift_date_text(value: Any, days: int) -> tuple[str, bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e4be53e0feac73cf366731279eb714547d1c66b4b4a58be32dc3ae2d4ef44652",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#_shift_datetime_text",
      "name": "_shift_datetime_text",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L123-L128",
      "signature": "def _shift_datetime_text(value: Any, days: int) -> tuple[str, bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5549f92aa142c4e562a09e96de9552d365e4e64b8326841932a1b2b2287078cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L555-L671",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5590ef55a08a4e5cbfd90cf05f7773e05345546fc2129af936e8fa6fee7a6651",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L674-L709",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3dc4748e8cdb44b6bc64f618447f21f81bf168f51258e93db6092c966b5d6f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "name": "process_file",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L363-L552",
      "signature": "def process_file(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a08801787a7785007add58a605a54c0133c72b50ff8aa9587f637b05063dc8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#process_file.validator",
      "name": "validator",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L482-L489",
      "signature": "def validator(path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b7208935c348754c3e619c98798e4dc4b43dd49fcd095dcf1b8f27e438599e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#process_file.writer",
      "name": "writer",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L474-L480",
      "signature": "def writer(path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "463d1c1f66806a33ac1b20295e0fb4aefb531d15a21a0821445fb3f56ad17761",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "name": "transform_dataset",
      "kind": "function",
      "path": "skills/pydicom/scripts/anonymize_dicom.py",
      "span": "L179-L343",
      "signature": "def transform_dataset( dataset: Any, *, profile: dict[str, Any], key: bytes, scope: str, date_shift_days: int | None, retain_times: bool, allow_private_retention: bool, allow_date_retention: bool, max_elements: int, ) -> tuple[dict[str, Any], dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "98b2193ddccc473257ec77b0abf4bae3d61aca3e7fb2216eeb4abd563121e773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/deidentification_audit.py",
      "name": "deidentification_audit.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/deidentification_audit.py",
      "span": "L1-L381",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "20fed508c9bd4bd502eda9e0e506de55a833a7b0b1ebd95105a039195429e79a",
      "chars": 13090,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/deidentification_audit.py#_has_value",
      "name": "_has_value",
      "kind": "function",
      "path": "skills/pydicom/scripts/deidentification_audit.py",
      "span": "L68-L77",
      "signature": "def _has_value(element: Any) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "25b7b5a36a95946a13907b9b632d3b9b1a2f543386d659f9df23142617009f51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/deidentification_audit.py#audit_dataset",
      "name": "audit_dataset",
      "kind": "function",
      "path": "skills/pydicom/scripts/deidentification_audit.py",
      "span": "L80-L177",
      "signature": "def audit_dataset( dataset: Any, *, profile: dict[str, Any], file_id: str, max_elements: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a3df04bb09acfb951d0452e914b0a4b54484200e71464287e17fb785fd2d147",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/deidentification_audit.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/deidentification_audit.py",
      "span": "L285-L340",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "67e43e24cf867e4bca01357daed875a8af394a5231c3b0d9d22280e5bd3997a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "name": "build_report",
      "kind": "function",
      "path": "skills/pydicom/scripts/deidentification_audit.py",
      "span": "L180-L282",
      "signature": "def build_report(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fd215cf95576975b999f14521a39efe3f5c7797d0a391b7f194342e77cc3b81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/deidentification_audit.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/deidentification_audit.py",
      "span": "L343-L376",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b06b354e26a3550a223ede071280b03307454c03d80f5e73224144fbcdd4fee9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_inventory.py",
      "name": "dicom_inventory.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/dicom_inventory.py",
      "span": "L1-L403",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "96f897ece7ba8d3d35dbb7625eab764c874090826b863e9fb0757bbb25a60aed",
      "chars": 13597,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_inventory.py#_issue",
      "name": "_issue",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_inventory.py",
      "span": "L47-L48",
      "signature": "def _issue(code: str, message: str, severity: str = \"error\") -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "bb9f9575b85e08bb31eeb3e8d954021f0857229190045eb522bd925874647559",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_inventory.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_inventory.py",
      "span": "L312-L365",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "089be7f2f0f8e22d964a3dd51c14167eb8890e7b2bd6b8d4715768fdc9535765",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "name": "inspect_dataset",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_inventory.py",
      "span": "L51-L207",
      "signature": "def inspect_dataset( dataset: Any, *, file_id: str, file_size: int, max_frames: int, max_decompressed_bytes: int, forced_read: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b74ccc4909b5a07d5041445b25f5aab9b7d4bdfdad76451392e25b86009d5a4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "name": "inventory",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_inventory.py",
      "span": "L210-L309",
      "signature": "def inventory(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "518e513660e83aa9c8afcd98f2510cb6ced9e7817f2bfd75a16432169ba23198",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_inventory.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_inventory.py",
      "span": "L368-L398",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "883abc400732a588c189903be2859cf55720ed7c0234e159ea7fc67763557ea7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py",
      "name": "dicom_to_image.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L1-L460",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9368695158edeb4287b5dc705efec78ce356c8d7593d081a7c742dc95e60e54c",
      "chars": 15486,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py#_apply_grayscale_transforms",
      "name": "_apply_grayscale_transforms",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L115-L157",
      "signature": "def _apply_grayscale_transforms( array: Any, dataset: Any, *, modality_transform: str, voi: str, voi_index: int, ) -> tuple[Any, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5dc87f2a6a774b2312742e15d4b1f2badbf11f6c7f41e42e36e8f49a8c54e7f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py#_infer_format",
      "name": "_infer_format",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L73-L86",
      "signature": "def _infer_format(path: str, explicit: str | None) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "8165a73a470dcca504697588861f8e8e98c8438576f480a61af7bcece9c83f9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py#_normalize",
      "name": "_normalize",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L89-L112",
      "signature": "def _normalize(array: Any, *, numpy: Any, bit_depth: int) -> tuple[Any, dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "eea3e5367ff747e85551759ea650bfe8d4623e12bfd5012c064ff391168d2eae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L352-L443",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2f49792ece305138ac9d0c0a88fa4e627464d178164b152392bf0310e4d7dea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L446-L455",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7943c14e88e3201dea3785c7248341c725d7be02d4271606572b2558476ea02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "name": "render_frame",
      "kind": "function",
      "path": "skills/pydicom/scripts/dicom_to_image.py",
      "span": "L160-L349",
      "signature": "def render_frame(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f5bd95e63164742d7b41c0c88e5221f2eec85a5e71377f1a34817976575eb66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py",
      "name": "extract_metadata.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L1-L331",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8759954f07ca872f5647191a28d7621e7383405ee54e18211e4bed4e87a8ee2c",
      "chars": 11452,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#_status",
      "name": "_status",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L46-L52",
      "signature": "def _status(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "e588f00a52b6dc63efeebec987f3caee700a4bebc043eb769d939444b487c534",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#_uid_description",
      "name": "_uid_description",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L38-L43",
      "signature": "def _uid_description(value: Any) -> dict[str, str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f36e595064bd14ec964f3a93357cc84b92cc17b348ded48e83f3fed01350673",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#aggregate_records",
      "name": "aggregate_records",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L111-L148",
      "signature": "def aggregate_records( records: list[dict[str, Any]], *, read_failures: int ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad62bb3245d609bdb9bd23b8e2aaaa6b6b642c5eb336b99752b5552cbc0d6d05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "name": "allowlisted_record",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L55-L108",
      "signature": "def allowlisted_record(dataset: Any, *, file_id: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbad5f5645dc261502cab868bcf595f5a06ba4ee4dc8bb3c7e7c9b1415d22721",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L238-L288",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c38f6b7d5b90fa9a85d88e66e09ccde0adaa18fd801f99f199400817a06a3d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "name": "build_report",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L151-L209",
      "signature": "def build_report(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5dadaf9e67fe337e5f006eccb3994980d489dceab1f56850f93be59fcadaa5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L291-L326",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea123f2fa946fb68581e9b83ec1dfd3ac5d50fb91932da8f1165c0a2a09c5296",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/extract_metadata.py#render_text",
      "name": "render_text",
      "kind": "function",
      "path": "skills/pydicom/scripts/extract_metadata.py",
      "span": "L212-L235",
      "signature": "def render_text(report: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f25d3c4e0ea919452f98180219c7567d1b68755febb88f11bfd4ac160f58c34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/pixel_frame_planner.py",
      "name": "pixel_frame_planner.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/pixel_frame_planner.py",
      "span": "L1-L304",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "39992aee08b3a3387331f25a24190ef93f99aa8fbb90b478f3277e8f0363f07a",
      "chars": 10130,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/pixel_frame_planner.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/pixel_frame_planner.py",
      "span": "L222-L272",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab7c37d05055ab08851436394a5e5f07d42e265d5532599e09956b532ae2f60c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/pixel_frame_planner.py",
      "span": "L275-L299",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9b9f72fa9ca104376a6c04a391be2724ec531173243cb9387afe982713c0bc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/pixel_frame_planner.py#parse_frame_selection",
      "name": "parse_frame_selection",
      "kind": "function",
      "path": "skills/pydicom/scripts/pixel_frame_planner.py",
      "span": "L63-L91",
      "signature": "def parse_frame_selection( specification: str, *, total_frames: int, max_selected: int ) -> list[int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2615ad87759aafd3c38601075a42252f58b2aeb22d9c9c0a894654a5cb2c576e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "name": "plan",
      "kind": "function",
      "path": "skills/pydicom/scripts/pixel_frame_planner.py",
      "span": "L94-L219",
      "signature": "def plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8aab831bf2e563d40e6672d85a3d40764b2ad9d430a23d3d5a0e5a9807f4a860",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "name": "transfer_syntax_inspector.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "span": "L1-L246",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "952e06fc095a02846013e3c270accf4e340453a2ae0665743688629acb58202a",
      "chars": 7881,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/transfer_syntax_inspector.py#_codec_capability",
      "name": "_codec_capability",
      "kind": "function",
      "path": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "span": "L72-L125",
      "signature": "def _codec_capability(uid_value: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "edd71537dc16382ce170c7b1a8331b2e01a1f1aad8bda30d73b79eb32f266443",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/transfer_syntax_inspector.py#_package_versions",
      "name": "_package_versions",
      "kind": "function",
      "path": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "span": "L62-L69",
      "signature": "def _package_versions() -> dict[str, str | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5ec2121f1443bcaee8c0cc82f7e0a5163c1f4b10996a948ddfe9b20bc5cbc833",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/transfer_syntax_inspector.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "span": "L181-L213",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cfaf8bceb5c5a240288e9f6a4bfa2ff044b4f79eebd19306dc5a8f28d9162d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "name": "inspect",
      "kind": "function",
      "path": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "span": "L128-L178",
      "signature": "def inspect(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "63ae080062175dd1b695ffeb8fba349adf14726008588e01170351ceabf3fcf2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "span": "L216-L241",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "299302520043994bdd7bdf4b67e404a738df2e0b077754b8a5257ed2f12eab92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/uid_mapping_validator.py",
      "name": "uid_mapping_validator.py",
      "kind": "file",
      "path": "skills/pydicom/scripts/uid_mapping_validator.py",
      "span": "L1-L241",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5ad7525adad8374d2bd655ba772bd13bd5be4b0770f7b97515e2cb53d46cb787",
      "chars": 8533,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/uid_mapping_validator.py#_load_key",
      "name": "_load_key",
      "kind": "function",
      "path": "skills/pydicom/scripts/uid_mapping_validator.py",
      "span": "L39-L54",
      "signature": "def _load_key(path: Path) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "bb2f2f4d4c17f4c03bd4fec5bcc96c8183c9c55ce6272a10716420306cf57cb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/uid_mapping_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pydicom/scripts/uid_mapping_validator.py",
      "span": "L146-L182",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd429a459b1db81a4d09f2b5d260599e5706b3e0bd2dd81baa77c9a8bc62ed98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pydicom/scripts/uid_mapping_validator.py",
      "span": "L185-L236",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b916b5c522b07c0e27a85a05e96e8bb45b79f543eaa5a488477bfa6731e1315e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "name": "validate_mapping",
      "kind": "function",
      "path": "skills/pydicom/scripts/uid_mapping_validator.py",
      "span": "L57-L143",
      "signature": "def validate_mapping( document: Any, *, max_entries: int, require_2_25: bool, key: bytes | None = None, scope: str | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "758aa87054231c5caf4378890a5868afd16468806190a78ff5dac34405d14a92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyhealth/assets/starter_pipeline.py",
      "name": "starter_pipeline.py",
      "kind": "file",
      "path": "skills/pyhealth/assets/starter_pipeline.py",
      "span": "L1-L59",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "46cf30e24e5f3ff1a2708e56ea154a0d5c50fce59731a66784733e592620ed12",
      "chars": 2338,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/__init__.py",
      "span": "L1-L2",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d1a981fe4edf160c2ed51409244c623b0bb6d73b1ffc9b50e6b729303c640cca",
      "chars": 72,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L1-L719",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4a69f32c3d847c14bf8f8d5a0b2775b1372be88eb314ec8f37160c3e9e0c2939",
      "chars": 26669,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_endpoint",
      "name": "_endpoint",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L474-L481",
      "signature": "def _endpoint(value: str, where: str) -> tuple[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7996caa7120c0186237e72c09dfcf5a6ca2a9a58bf88f5809f432b3cd571ef3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_exact_keys",
      "name": "_exact_keys",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L147-L163",
      "signature": "def _exact_keys( obj: Any, required: Iterable[str], optional: Iterable[str], where: str, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "521266a0d17c3cfbda452e3937c130d77924e093650b8dc68f65c485e63dd348",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_integer",
      "name": "_integer",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L192-L197",
      "signature": "def _integer(value: Any, where: str, minimum: int, maximum: int) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "48da9c2628373c682fc07b312f3dcc1c3d012b12cd44b8e3adbc8818036f0828",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_name",
      "name": "_name",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L166-L169",
      "signature": "def _name(value: Any, where: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "fb539d2b6e9cd1cfadc482de6b7c6a2a61dbe12282a37008f1eece7a581dc3ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_number",
      "name": "_number",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L172-L189",
      "signature": "def _number( value: Any, where: str, *, minimum: float = 0.0, maximum: float, minimum_inclusive: bool = True, ) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "ee00407253ac31cb77f75083c9c6142eb8c03541d54eeaa3c93d1f649a5ce0e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_parse_float_text",
      "name": "_parse_float_text",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L444-L462",
      "signature": "def _parse_float_text( value: str, where: str, *, maximum: float, minimum: float = 0.0, minimum_inclusive: bool = True, ) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "7395ad4333c44ee7b2591b15a2da033859fda0c79bae2e751c8cacaec5058425",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_parse_int_text",
      "name": "_parse_int_text",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L465-L471",
      "signature": "def _parse_int_text(value: str, where: str, minimum: int, maximum: int) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "ce2b5ee9cc130117f7c285bab4c7970ea570b03aa81c4bfde2fbb200c8adc4e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L54-L55",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6d0ff15e98d115653a412fc5c6d62946b7c622fedc33bfae5c081af0416b37e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_string_list",
      "name": "_string_list",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L200-L208",
      "signature": "def _string_list(value: Any, where: str, maximum_items: int = 256) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7aa4a57770d10ad1c1ac7a6a529f14941d180b66eb7cb5f72c77b1e303c6b777",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L58-L64",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ec8e4e68b4d0a3b5fe25edae267f95b2869f6da2be51338dbb3b13d1eba668c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "name": "_validate_grid",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L243-L286",
      "signature": "def _validate_grid(value: Any, kind: str, where: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "2eaf22bc12e929d7c3f7b6d1b9e5bc9774ae6033649cfe8e99f442a12f8062af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#_xyz",
      "name": "_xyz",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L211-L223",
      "signature": "def _xyz(value: Any, where: str, *, positive: bool) -> dict[str, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b52495a5666e8b937c60d5d2cccace7366265622e1f792627e744cb886241bf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#emit_error",
      "name": "emit_error",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L713-L718",
      "signature": "def emit_error(error: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a75e24616d20d0ec82cfcba321c37428d7b2efe5ee9a39acfb2f407f391453b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L707-L710",
      "signature": "def emit_json(payload: Any, *, stream: Any = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f959c9839c651c40ccebedd00d2da3b0f8d68ec1be9561e415bd184ef63e0d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#geometry_report",
      "name": "geometry_report",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L539-L576",
      "signature": "def geometry_report(manifest: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7c9a7cb8c4c2ec51f7ecd0dae25f63efca7be209422d9f039c0ae426a5ac94d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#load_csv",
      "name": "load_csv",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L121-L144",
      "signature": "def load_csv(raw_path: str) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "977d4debd7b088e93d6c6c6bf57240e6c01f20d83eeac376d8eb6a70f1a2af72",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L102-L118",
      "signature": "def load_json(raw_path: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d1fb438d1fdb713e4967e390804cca2f8a5f05aa47f1ca9b4b4e2a159a48314",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#plan_transfers",
      "name": "plan_transfers",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L579-L704",
      "signature": "def plan_transfers( manifest: dict[str, Any], transfers: list[dict[str, Any]], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e7478b1a44e0642989711eb6e59d504ba1a5f76372435f497c884d8a354eb95",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#row_index",
      "name": "row_index",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L226-L230",
      "signature": "def row_index(row_letters: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "72ff085a465ea71c7ff2fb8bcdbc2520123231bede39850a78d1b681b8c60984",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#safe_input_path",
      "name": "safe_input_path",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L67-L99",
      "signature": "def safe_input_path(raw_path: str, allowed_suffixes: Sequence[str]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "27f17c897b4cdd22f0fb7b2d211060103ee9ee190e9be57a6f6cbcbd07a5a5d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "name": "validate_manifest",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L289-L441",
      "signature": "def validate_manifest(data: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8420a2dfd9e355e2fbc0d1d030e374d5f19a9bcba087bf581c4c6d9b6ac93b7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "name": "validate_transfers",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L484-L536",
      "signature": "def validate_transfers(rows: list[dict[str, str]]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf119dd09445f78884093603c8fa99faeadeabfd0d481a1be4231be253459236",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#validate_well",
      "name": "validate_well",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L233-L240",
      "signature": "def validate_well(well: str, rows: int, columns: int, where: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fb10294b8b698e3c6fae756c602ac7d6d25e015c5903c04c03bd250931b3958",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/pylabrobot/scripts/_common.py",
      "span": "L50-L51",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b392036623374843a99379d1b9f92193c57446c9a3ecff3329c9876ee4b21e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "name": "check_deck_geometry.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "span": "L1-L53",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0e219941e7013cb1a812966ec730a29f17037be819c19a08d4ab3342a5b0b74b",
      "chars": 1301,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/check_deck_geometry.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "span": "L29-L37",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "66e9b8a2df89c99cc08660a405d862e4115fbb04edc5cac433058b86a8b88b73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/check_deck_geometry.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "span": "L40-L48",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c627955fea781dd5f51162d032308129a5394773dacd7159031d9bb448dc91b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "name": "generate_simulation_plan.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "span": "L1-L141",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "071e42a404830476134331af47bc0d103882c2d5a5f2773b8b220bdd7efa6092",
      "chars": 4793,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/generate_simulation_plan.py#_steps",
      "name": "_steps",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "span": "L49-L89",
      "signature": "def _steps(operations: list[dict[str, Any]]) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c1b9bf3b2ecbabbcedebc1164b2461a10e5dbdd9b00a0e3871cff503cc6fb86e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/generate_simulation_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "span": "L37-L46",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2b5c6b61f8a64f5c3e571e3df68edab250d72bde74d95318383466e2a549a1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "span": "L92-L136",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "25c0a30e7da9dde5c98d9160a24df647279329d60a585123e2b4649e76f50ab8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/inspect_backends.py",
      "name": "inspect_backends.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/inspect_backends.py",
      "span": "L1-L217",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "efac335c04818643415b0fc143f057852cdf2ab111dc76709994fe3dadda232b",
      "chars": 7041,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/inspect_backends.py#_class_record",
      "name": "_class_record",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/inspect_backends.py",
      "span": "L41-L58",
      "signature": "def _class_record( class_object: type[Any], *, support: str, transport: str, methods: Sequence[str], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f34f4f4593484d5b806694396212c44dcaa41bc749d6e3289ef6e4993b422e84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/inspect_backends.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/inspect_backends.py",
      "span": "L20-L38",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "280a192fcf7bfa460dd4c14299c8075fb12a7180613ce6b9d9b8216c21353251",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/inspect_backends.py#inspect_installation",
      "name": "inspect_installation",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/inspect_backends.py",
      "span": "L61-L200",
      "signature": "def inspect_installation(expected_version: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d21a5dd9c126d7112d2b2ab6ee8e12d30c5b9aad5de45e98f66ab8b67151e1bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/inspect_backends.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/inspect_backends.py",
      "span": "L203-L212",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "40faa914eb6a78f144e58ea95c3548a22619475accc7b288e77a3bb2a01f7e36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/plan_transfers.py",
      "name": "plan_transfers.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/plan_transfers.py",
      "span": "L1-L60",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "92a059726a5707506c2bd68877e7bf3fc36a61201f4de4f8e0d8ad66963fd0ab",
      "chars": 1556,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/plan_transfers.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/plan_transfers.py",
      "span": "L33-L43",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e86fecc6474c78c40faf00b0b7a19ab8fd0b376b7bd0dfaa3ebf626b13aaba5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/plan_transfers.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/plan_transfers.py",
      "span": "L46-L55",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc61a2474513da47f89a0ebb8f12a18213da6adeb2ab98e3bc57fc6d124d88c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/validate_manifest.py",
      "name": "validate_manifest.py",
      "kind": "file",
      "path": "skills/pylabrobot/scripts/validate_manifest.py",
      "span": "L1-L48",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6fe09732a1fc75fa5ee534a2e79abd8724bd149c4ef3a698c0960c093762ca1c",
      "chars": 1391,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/validate_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/validate_manifest.py",
      "span": "L15-L23",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8329ecd6939efbe8035484f6ce44e5d2085303501f0f66d31aac0004dc9cb6f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pylabrobot/scripts/validate_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pylabrobot/scripts/validate_manifest.py",
      "span": "L26-L43",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3937a0fc6e9d04af2ae63884dbf9bc79ef9fcd2b02ddadc2fc8762583a6b6c5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L1-L317",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a4fe82a32f38da7759c55f5aae232dccc656766e7ab62dc7e2b8bcf09e98b373",
      "chars": 10658,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L97-L98",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3cf4243d3698a8c39c6200a1987aa851de158fdad2789499661afb9482f06606",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#_reject_duplicate_pairs",
      "name": "_reject_duplicate_pairs",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L88-L94",
      "signature": "def _reject_duplicate_pairs(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "fdd00889fc60f82d55fbfd3f978bf1864f46486c2d175f0c68ef6ca508492d03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#atomic_link_from_temp",
      "name": "atomic_link_from_temp",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L311-L316",
      "signature": "def atomic_link_from_temp(temp_path: Path, output_path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1eb9d69af7af58aa8dcafae69bac78e042619b60defd0f342360c328b34584bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L38-L62",
      "signature": "def checked_input_file( value: str | Path, *, max_bytes: int = DEFAULT_MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "92330a94a45e978984c58605b4a729b92dd86634b55af42ac34b55c709f20dfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L65-L85",
      "signature": "def checked_output_file( value: str | Path, *, input_paths: tuple[Path, ...] = (), ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fe70377c6c68250328ddf66bb7d707c05526e9b46074dfc2914da37506767a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L28-L29",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99e67789ebcaea8fbb14ba3dbef32d7d04bbb7c4c82f45405f7e6a9051726c88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L132-L134",
      "signature": "def emit_json(payload: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5372028904f7cb9a8100acfc1ddb5a2e2dcd79d48ec3dd2952355ac15fd31a3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L170-L180",
      "signature": "def finite_float(value: Any, label: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc5bc1e6875be622f3800d19fb827160ac44e1eec6e4fd7d861263938b017ff0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#json_text",
      "name": "json_text",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L121-L129",
      "signature": "def json_text(payload: Any, *, pretty: bool = True) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "00b3671e9d778606a7009b800565bc4ad8c8a3d174ee1416f56651099a37a17f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#load_strict_json",
      "name": "load_strict_json",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L101-L118",
      "signature": "def load_strict_json( value: str | Path, *, max_bytes: int = DEFAULT_MAX_INPUT_BYTES, ) -> tuple[Any, Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ace4b42f4fd22d731ccc7d5f2d2af64b62ebe4a0693a7d6ecec078175a714137",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#load_structure",
      "name": "load_structure",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L235-L300",
      "signature": "def load_structure( value: str | Path, *, structure_index: int = 0, max_bytes: int = DEFAULT_MAX_INPUT_BYTES, max_sites: int = DEFAULT_MAX_SITES, ) -> tuple[Any, Path, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6a549b09b3f4de9c9c9523ef463dc6e52b5a22a2a9f1b05c84bf2f2c80f072a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#package_versions",
      "name": "package_versions",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L194-L202",
      "signature": "def package_versions(names: tuple[str, ...]) -> dict[str, str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c579bb957fae90eab17585dfd17a5024679bab5706fed53110eeab9f50e6aa3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L183-L191",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "df4e1b1a4b806ffed9fe72ec6315cab1c889faada066833a2b33288a80d8a78c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#reject_url",
      "name": "reject_url",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L32-L35",
      "signature": "def reject_url(value: str, label: str = \"path\") -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31fea08d427cacb86a69798e82d908271c724a5d4bba926eb74e8a89fe2f5115",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#safe_error_message",
      "name": "safe_error_message",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L303-L308",
      "signature": "def safe_error_message(exc: BaseException, *, secret: str | None = None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "be9a09944bb483045b9a7e6a998cb0ec316efd68bff98cb02756a3562ee86a5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#sha256_file",
      "name": "sha256_file",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L205-L211",
      "signature": "def sha256_file(path: Path, *, chunk_bytes: int = 1024 * 1024) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d7539edd7534b20d01ca8e6ec11cc32c2a3c3af75d94ac88cd6443694be4179",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#structure_oxidation_summary",
      "name": "structure_oxidation_summary",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L214-L232",
      "signature": "def structure_oxidation_summary(structure: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c19feee5a0dbf7ad1000e6b878fc91114389b20f39a14a7a2114f1642852761",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#write_json_new",
      "name": "write_json_new",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L160-L167",
      "signature": "def write_json_new( path: Path, payload: Any, *, max_bytes: int = DEFAULT_MAX_OUTPUT_BYTES, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d7c8b075bd0cc0d892af925cc51934112d4e9a3fd3269ced31e12c361b79904",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/_common.py#write_text_new",
      "name": "write_text_new",
      "kind": "function",
      "path": "skills/pymatgen/scripts/_common.py",
      "span": "L137-L157",
      "signature": "def write_text_new( path: Path, text: str, *, max_bytes: int = DEFAULT_MAX_OUTPUT_BYTES, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "75be704b94ca83d38b203b24e5fc922ec0e6842b22c8ac42654850becb10df46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/artifact_manifest.py",
      "name": "artifact_manifest.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/artifact_manifest.py",
      "span": "L1-L173",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "20e64dcd2e65996312bd17a487e0eebfb8e87fc814f938cc030a972f64d6118c",
      "chars": 5659,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/artifact_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/artifact_manifest.py",
      "span": "L37-L78",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "66e5feaf8f707dd81489aaf0af4f7bef794ccab13cd4a805da0ebc920fa85328",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/artifact_manifest.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/artifact_manifest.py",
      "span": "L81-L168",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "be4e3f58dfdb8f3a24a0cd961daa91a98e0430cd14795ef8285df0d25c822c51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/composition_structure_validator.py",
      "name": "composition_structure_validator.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/composition_structure_validator.py",
      "span": "L1-L301",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c96d2a7a2d09006e270877fe89925719fc5ba84ebd2bb18647b15ddf96f28755",
      "chars": 11521,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/composition_structure_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/composition_structure_validator.py",
      "span": "L194-L236",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "74df5cc45d25de0d97ab99dc9014b67c11ce57467f8e981733526b8162a3daac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/composition_structure_validator.py",
      "span": "L239-L296",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "783b3dcf0742289349b831c0dfa77fea369b01dc2316a8b45709d7e590a76e39",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/composition_structure_validator.py#minimum_distance",
      "name": "minimum_distance",
      "kind": "function",
      "path": "skills/pymatgen/scripts/composition_structure_validator.py",
      "span": "L96-L108",
      "signature": "def minimum_distance(structure: Any, limit: int) -> tuple[float | None, list[int] | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "096ada5b982a0e502ee879cc9216ebb44a87878428ab371555793c53dde39dc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/composition_structure_validator.py#validate_composition",
      "name": "validate_composition",
      "kind": "function",
      "path": "skills/pymatgen/scripts/composition_structure_validator.py",
      "span": "L25-L93",
      "signature": "def validate_composition( formula: str, *, guess_oxidation_states: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "953ab44c92f5c58174e1327b0c66ef6c65a7612f980f28e8f403eb4f1efcd0bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/composition_structure_validator.py#validate_structure",
      "name": "validate_structure",
      "kind": "function",
      "path": "skills/pymatgen/scripts/composition_structure_validator.py",
      "span": "L111-L191",
      "signature": "def validate_structure(structure: Any, args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "663c4adc60d5c412e62fc0b5c239334d6cc373740a2e6332522d9ae251c01e6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/io_conversion_plan.py",
      "name": "io_conversion_plan.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/io_conversion_plan.py",
      "span": "L1-L205",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bbaa88773984f1cc2ae170720ff18142e7d4a5114a98c83b1da905e9803605f1",
      "chars": 6970,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/io_conversion_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/io_conversion_plan.py",
      "span": "L130-L169",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "9507295d73d64e483739e11effe1409c703ca318121b32212b93799933e91940",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/io_conversion_plan.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/pymatgen/scripts/io_conversion_plan.py",
      "span": "L64-L127",
      "signature": "def build_plan(args: argparse.Namespace) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "13949e3255f2e779e13e03df81f765f379e0743feaa1b07c075ec0c98bf41f4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/io_conversion_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/io_conversion_plan.py",
      "span": "L172-L200",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e76507123d887fdc9c5d2fc10bed5dc95e450ed82f00721d70545dd76414724",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py",
      "name": "mp_query.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L1-L417",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "674956444ffe2ab647a79877a27a5e4c0c993a6703a8f5b54d4c063103b7558f",
      "chars": 15087,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L313-L357",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a859145058a7aa9bf2f8996b15026c21589f24b752ae47adb3c27b747e06510d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#checked_range",
      "name": "checked_range",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L65-L81",
      "signature": "def checked_range( values: list[float] | None, label: str, *, non_negative: bool = False, ) -> tuple[float, float] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "09f9aa341b8fc73c2eb8b2f5b6f01a73484a3be0b81c96dae0710b0104d91d77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#csv_tokens",
      "name": "csv_tokens",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L37-L48",
      "signature": "def csv_tokens(value: str | None, label: str) -> list[str] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1223d8fdcc142263961ac66db86777da40d23c2e2d09711f9a01475498648d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#document_to_json",
      "name": "document_to_json",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L210-L223",
      "signature": "def document_to_json(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c996f83ab32d2fbe3f28678bf3de4405a006147f51031d4abdbbe0e96246838e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#execute_query",
      "name": "execute_query",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L226-L310",
      "signature": "def execute_query( args: argparse.Namespace, contract: dict[str, Any], output_path: Any, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ee21e4d3a8ff06b70a9724f23e0ec24e94be3f724421fedacde075d3ac37aa8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L360-L412",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "631831aa048fb84c9fe4342c3a02f86594c730da60607440b462d384b0216997",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#parse_fields",
      "name": "parse_fields",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L51-L62",
      "signature": "def parse_fields(value: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bece88a8928e05f2d17c888587dbddc670e748dae53016a02cd0c9d29bf7205a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#plan_payload",
      "name": "plan_payload",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L146-L207",
      "signature": "def plan_payload( args: argparse.Namespace, contract: dict[str, Any], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "60b54c9385d3c86a00ba8ebdc589b3da7b8aec5e2161ccac1cef01f398a45fee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/mp_query.py#query_contract",
      "name": "query_contract",
      "kind": "function",
      "path": "skills/pymatgen/scripts/mp_query.py",
      "span": "L84-L143",
      "signature": "def query_contract(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3121393bb02347a77226933abba09b262531897d4fc0d4f398197a22d14d6f4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "name": "phase_diagram_generator.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L1-L416",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c2e9727ed8522824f315091f477ab19ba8916baf949bb2d8ec6b815f443a337e",
      "chars": 14650,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L293-L327",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef998cd886b29a1dabb1833ab5703e33ad1901bdd1b3eed9566e3130a7648b11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py#entries_from_payload",
      "name": "entries_from_payload",
      "kind": "function",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L63-L139",
      "signature": "def entries_from_payload( payload: Any, *, max_entries: int, ) -> tuple[list[Any], dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "26b0445045bc22bd585cce35c9f767d3044cda92881cf8bd3de09cd4e4a2856f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L330-L411",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb8abad6332d6605645697c12224be74677d167d1def172a9f68c6afddc7243e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py#phase_report",
      "name": "phase_report",
      "kind": "function",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L142-L255",
      "signature": "def phase_report( entries: list[Any], provenance: dict[str, Any], *, analyze: list[str], max_report_entries: int, ) -> tuple[dict[str, Any], Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef58f4368fe5a87af28ebcfc3642e2a12a06b3d5b1c1f4d24f74e0a5b29678db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py#validate_provenance",
      "name": "validate_provenance",
      "kind": "function",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L46-L60",
      "signature": "def validate_provenance(value: Any, label: str) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ee2190fc4a466d0a8f4384b3a77b8d75c7aa489eb3b8b2bef04d98865f4cfae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/phase_diagram_generator.py#write_plot_new",
      "name": "write_plot_new",
      "kind": "function",
      "path": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "span": "L258-L290",
      "signature": "def write_plot_new( diagram: Any, output_path: Path, *, show_unstable: float, max_bytes: int, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8ced2d89153cde66334252bcf16e26a4a0bc74228138ac30cf352b768a8bcd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py",
      "name": "structure_analyzer.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L1-L294",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f5740bf53181e30f4a9c4546a32ea3d09f9b1ada76b26d7d2b96fe8233fdbfd4",
      "chars": 11051,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "name": "analyze_structure",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L143-L203",
      "signature": "def analyze_structure(structure: Any, args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f24603e012258a19ed11ee7af1c75252797cf6d2e486680bf52e15e6c7968eab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L206-L237",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "58a9f0d764f46032d184034aba43dd0d5ded778da1bd3ae6c558934f49ef9160",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L240-L289",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4007dd57e18b38b24db597f78f841eb12d424726bd85dfc7726fe00202b4654",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#minimum_periodic_distance",
      "name": "minimum_periodic_distance",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L26-L34",
      "signature": "def minimum_periodic_distance(structure: Any, max_sites: int) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "34a539151a67e0b0ea3d1f796da0d902570e17ddce3ba9dc019ac5ab0772b518",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#neighbor_report",
      "name": "neighbor_report",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L87-L140",
      "signature": "def neighbor_report( structure: Any, *, site_limit: int, neighbor_limit: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "709acd365ddda58dd6423a5d3b0baf97fd54ef19402d1af85fb391eef3309444",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#site_records",
      "name": "site_records",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L37-L54",
      "signature": "def site_records(structure: Any, limit: int) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "173eca80e00a1fe7520670a32ea0fc246c46c1c21ff5d48f9662a2d6670b72ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_analyzer.py#symmetry_report",
      "name": "symmetry_report",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_analyzer.py",
      "span": "L57-L84",
      "signature": "def symmetry_report( structure: Any, *, symprec: float, angle_tolerance: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d7a4b1be74a9ba12b6f4f3d32852e497077c19681c9cbc75ea6b3a7a3a8ba21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_converter.py",
      "name": "structure_converter.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/structure_converter.py",
      "span": "L1-L220",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f8e5fe54d8d86af94fa5efd1782406a163790103dacac1bbdcbf3b93abc79b1b",
      "chars": 7596,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_converter.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_converter.py",
      "span": "L72-L124",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e27c0b9a369587491dd917f4add595ae3e8d549faa3ff9ef26159cd9eb2e2a89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_converter.py#conversion_risks",
      "name": "conversion_risks",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_converter.py",
      "span": "L28-L44",
      "signature": "def conversion_risks(structure: object, output_format: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb54b7019b10373e301cb2384feca61f0c487c95a784f75c010b6338cd61063e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_converter.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_converter.py",
      "span": "L127-L215",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "19191b17985d461a30e10c0b5b801793c7adb151a84fa4b5ca64d8013ef06070",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/structure_converter.py#render_structure",
      "name": "render_structure",
      "kind": "function",
      "path": "skills/pymatgen/scripts/structure_converter.py",
      "span": "L47-L69",
      "signature": "def render_structure( structure: object, *, output_format: str, coordinate_mode: str, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "08d05465c5cd7da16a357b3aa2108181b675abbc7d85aacf33af4059a333d1f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "name": "symmetry_sensitivity_report.py",
      "kind": "file",
      "path": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "span": "L1-L213",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "21a384d299e20b7e98281c8623da02a4a8e82604275c8c83454f87163652da15",
      "chars": 7659,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#analyze_grid",
      "name": "analyze_grid",
      "kind": "function",
      "path": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "span": "L43-L108",
      "signature": "def analyze_grid( structure: Any, *, symprec_values: list[float], angle_values: list[float], ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "587dda2d0ffd0295f471945a2ce0a30255892eb592a7e0cb974f9209093bbf8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "span": "L111-L147",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "03e5ccaf22c755904432d537209a04b479c149b81cd4acb8aa02c03a3f5b06ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "span": "L150-L208",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "07b6165d07ebc81ba466dc9a34ded3c1e9d4da067577236b2b9d63a6c5c84293",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#parse_tolerances",
      "name": "parse_tolerances",
      "kind": "function",
      "path": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "span": "L23-L40",
      "signature": "def parse_tolerances(value: str, label: str) -> list[float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cee4c13557fa7a8a917e01d2fb7eabb6ac5bd16e2a5e7c404f75c4bba4f26f2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/assets/hierarchical_model_template.py",
      "name": "hierarchical_model_template.py",
      "kind": "file",
      "path": "skills/pymc/assets/hierarchical_model_template.py",
      "span": "L1-L333",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "487a6f47f78cdb7daea115e57d9c886d356a0f8a76e944d4c8f702ebade57b5e",
      "chars": 11882,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/assets/linear_regression_template.py",
      "name": "linear_regression_template.py",
      "kind": "file",
      "path": "skills/pymc/assets/linear_regression_template.py",
      "span": "L1-L245",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "843dda9b920c3a4ffcc57ea3ae58b9e3d6238dd55edbdbb898108c4aa07749be",
      "chars": 8259,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_comparison.py",
      "name": "model_comparison.py",
      "kind": "file",
      "path": "skills/pymc/scripts/model_comparison.py",
      "span": "L1-L410",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b0160e058654df48cf08ebfd96426c44a6cd8a5f34cefcb0f4331f6d610ac6df",
      "chars": 13663,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_comparison.py#check_loo_reliability",
      "name": "check_loo_reliability",
      "kind": "function",
      "path": "skills/pymc/scripts/model_comparison.py",
      "span": "L138-L210",
      "signature": "def check_loo_reliability(models_dict: Dict[str, Any], threshold=0.7, verbose=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1aab8df2f6dd4041f05ca26ec2e31b3673cdeb7f17964425ef826d716c2121f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_comparison.py#compare_models",
      "name": "compare_models",
      "kind": "function",
      "path": "skills/pymc/scripts/model_comparison.py",
      "span": "L32-L135",
      "signature": "def compare_models(models_dict: Dict[str, Any], ic='loo', verbose=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecf9a9534592e60293012eacd92ac7b33bfe0cd8403232a083b72272ff6af78a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_comparison.py#cross_validation_comparison",
      "name": "cross_validation_comparison",
      "kind": "function",
      "path": "skills/pymc/scripts/model_comparison.py",
      "span": "L313-L377",
      "signature": "def cross_validation_comparison(models_dict: Dict[str, Any], k=10, verbose=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7af57099cbb7548f8424da446f50593c813f7503bcc589b4dd498968e70d002",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_comparison.py#model_averaging",
      "name": "model_averaging",
      "kind": "function",
      "path": "skills/pymc/scripts/model_comparison.py",
      "span": "L250-L310",
      "signature": "def model_averaging(models_dict: Dict[str, Any], weights=None, var_name='y_obs', ic='loo')",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcde3f166428c221c05751ddc3a92b389bed56636589404da3e9f06253bbe326",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_comparison.py#plot_model_comparison",
      "name": "plot_model_comparison",
      "kind": "function",
      "path": "skills/pymc/scripts/model_comparison.py",
      "span": "L213-L247",
      "signature": "def plot_model_comparison(comparison, output_path=None, show=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a55b54a48efc3b03f625ac9b35d579ef7bc53d3a91306cdf7a7ceaeed9160a7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_diagnostics.py",
      "name": "model_diagnostics.py",
      "kind": "file",
      "path": "skills/pymc/scripts/model_diagnostics.py",
      "span": "L1-L329",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "95dca9203c1cde89412e0a9feaf749c5d2d5193056bdcd50569d44709748550a",
      "chars": 10906,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_diagnostics.py#check_diagnostics",
      "name": "check_diagnostics",
      "kind": "function",
      "path": "skills/pymc/scripts/model_diagnostics.py",
      "span": "L22-L169",
      "signature": "def check_diagnostics(idata, var_names=None, ess_threshold=400, rhat_threshold=1.01)",
      "exported": true,
      "origin": "ast",
      "body_hash": "332d8843a5b964d1bbd658ec7e50b33395fdb166601bd95ab056f6ae87dcbbc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_diagnostics.py#compare_prior_posterior",
      "name": "compare_prior_posterior",
      "kind": "function",
      "path": "skills/pymc/scripts/model_diagnostics.py",
      "span": "L256-L303",
      "signature": "def compare_prior_posterior(idata, prior_idata, var_names=None, output_path=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3827077d890866fd7efe966fd776a99f2aa7067d8cfb4c87480143242e32e90",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report",
      "name": "create_diagnostic_report",
      "kind": "function",
      "path": "skills/pymc/scripts/model_diagnostics.py",
      "span": "L172-L253",
      "signature": "def create_diagnostic_report(idata, var_names=None, output_dir='diagnostics/', show=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c790082588fca278a5d0c07aa16f7f48effc74508c1cca92c5bcea05a28d8bf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report._save",
      "name": "_save",
      "kind": "function",
      "path": "skills/pymc/scripts/model_diagnostics.py",
      "span": "L204-L212",
      "signature": "def _save(plot_collection, filename, label)",
      "exported": false,
      "origin": "ast",
      "body_hash": "a056c3507fe9a06035867b3e2b21937e55b059b982c8ec48a2be1a8c1e89a3e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py",
      "name": "custom_problem_example.py",
      "kind": "file",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L1-L182",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9b385850d6b05f28443a28cfb41d226cddc8296bad98436616ed62d7f5e935ac",
      "chars": 4766,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem",
      "name": "ConstrainedProblem",
      "kind": "class",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L50-L89",
      "signature": "class ConstrainedProblem(ElementwiseProblem)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a35b48c900a41cc7ddeb6efe1aead2b4b97da839e2f81fa085e10305f4c066e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L65-L72",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6099ca8f3da18710cad1ec66faa37e7725c34108b33972f77bfb0ee01b23d630",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblem"
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem._evaluate",
      "name": "_evaluate",
      "kind": "method",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L74-L89",
      "signature": "def _evaluate(self, x, out, *args, **kwargs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f085c2c49246ed5c7a64a2380c146ba9d189de74e45fb07ed95b79080cdf6e72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblem"
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem",
      "name": "MyBiObjectiveProblem",
      "kind": "class",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L15-L47",
      "signature": "class MyBiObjectiveProblem(ElementwiseProblem)",
      "exported": true,
      "origin": "ast",
      "body_hash": "109d6961c3b46de56c05785037e2ce073c9fcbeae7cd42aaf9ef1430ba4c030c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L28-L36",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3d893d85565595a23e04863a52998ef5fd1f1d21b67f7797e4c40b8c7cb23622",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MyBiObjectiveProblem"
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem._evaluate",
      "name": "_evaluate",
      "kind": "method",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L38-L47",
      "signature": "def _evaluate(self, x, out, *args, **kwargs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "fbd682ffa7d1c08644776d2e2bd3e01ebfcd0e1b0c995931ea571b265375ae78",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MyBiObjectiveProblem"
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#solve_constrained_problem",
      "name": "solve_constrained_problem",
      "kind": "function",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L127-L171",
      "signature": "def solve_constrained_problem()",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0c4f592146ad7284e8874851e1815283f0faf3f1f87c3aa63d182d8307049b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/custom_problem_example.py#solve_custom_problem",
      "name": "solve_custom_problem",
      "kind": "function",
      "path": "skills/pymoo/scripts/custom_problem_example.py",
      "span": "L92-L124",
      "signature": "def solve_custom_problem()",
      "exported": true,
      "origin": "ast",
      "body_hash": "427b1b9482182029caa928c57aad885acb99fda8a47bde72b8f54fc360bd5d88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py",
      "name": "decision_making_example.py",
      "kind": "file",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L1-L162",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7ff21a0661ca04e5668ccd76a7342231782b07e6f7e57b9258178bf57ce09506",
      "chars": 4588,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py#apply_pseudo_weights",
      "name": "apply_pseudo_weights",
      "kind": "function",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L39-L58",
      "signature": "def apply_pseudo_weights(result, weights)",
      "exported": true,
      "origin": "ast",
      "body_hash": "34c965afa295b2bc9524381c68f96afaa22dc33fb69653d25efe883a042bc91e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py#compare_different_preferences",
      "name": "compare_different_preferences",
      "kind": "function",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L61-L92",
      "signature": "def compare_different_preferences(result)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2c2e871dbefcc300d97960e975e573099b4da0b1b7734f9328d82fd82c69231",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py#find_extreme_solutions",
      "name": "find_extreme_solutions",
      "kind": "function",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L115-L132",
      "signature": "def find_extreme_solutions(result)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b03379607d31b1dc0e1f63adcf966e840ba20b43ed57f6ce4fa268e53cecefe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L135-L157",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f9879c5c296bcb919e4cf0c234dafce696916206114e3614fdd49f19cff22cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py#run_optimization_for_decision_making",
      "name": "run_optimization_for_decision_making",
      "kind": "function",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L17-L36",
      "signature": "def run_optimization_for_decision_making()",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1c442fc053d2d167abb2844a0b80a4d3cbff6c2e82de400863a9be1d010b1e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/decision_making_example.py#visualize_selected_solutions",
      "name": "visualize_selected_solutions",
      "kind": "function",
      "path": "skills/pymoo/scripts/decision_making_example.py",
      "span": "L95-L112",
      "signature": "def visualize_selected_solutions(result, selections)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24a47b4eb40b05beaead068562fec48b5cd47b2f529efcc84dcc739871b0a504",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/many_objective_example.py",
      "name": "many_objective_example.py",
      "kind": "file",
      "path": "skills/pymoo/scripts/many_objective_example.py",
      "span": "L1-L75",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4356326fe8463c948b7f9af7999ee1cc276c99ef9de70b6547159d527502e936",
      "chars": 2227,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/many_objective_example.py#run_many_objective_optimization",
      "name": "run_many_objective_optimization",
      "kind": "function",
      "path": "skills/pymoo/scripts/many_objective_example.py",
      "span": "L16-L70",
      "signature": "def run_many_objective_optimization()",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e6a34f756ca7afa098b53666a57ef3a6042a3b3ed371a7d0ab8113008d8f317",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/multi_objective_example.py",
      "name": "multi_objective_example.py",
      "kind": "file",
      "path": "skills/pymoo/scripts/multi_objective_example.py",
      "span": "L1-L64",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ba237064b8aac3aae49d8f40b8bd8ac78766ddcdd2d69c4e219b35837d186d92",
      "chars": 1731,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/multi_objective_example.py#run_multi_objective_optimization",
      "name": "run_multi_objective_optimization",
      "kind": "function",
      "path": "skills/pymoo/scripts/multi_objective_example.py",
      "span": "L15-L59",
      "signature": "def run_multi_objective_optimization()",
      "exported": true,
      "origin": "ast",
      "body_hash": "619bfb0cc03dba35dffe97d41ad7e6438d04742c3a830bcec35a711a66e244d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/single_objective_example.py",
      "name": "single_objective_example.py",
      "kind": "file",
      "path": "skills/pymoo/scripts/single_objective_example.py",
      "span": "L1-L60",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a69cecea739093a152370ab53b9d2d7491a584c0ed5bfb5a236d729472b0732f",
      "chars": 1620,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pymoo/scripts/single_objective_example.py#run_single_objective_optimization",
      "name": "run_single_objective_optimization",
      "kind": "function",
      "path": "skills/pymoo/scripts/single_objective_example.py",
      "span": "L18-L55",
      "signature": "def run_single_objective_optimization()",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5acfc7c858f122908e90b6e1266ef441d401989ef44b75e492b51c8a668f016",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/accurate_mass_search.py",
      "name": "accurate_mass_search.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/accurate_mass_search.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2b5f0ea863642a8ee1d2dab2b1c6229c85ec1521bdaafb7591a2590ea51e46e4",
      "chars": 4518,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/accurate_mass_search.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/accurate_mass_search.py",
      "span": "L26-L107",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1ecba77a8e278d967792d3ac8d02563db0d67287a0d83857733bcb8285622f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/align_link_quantify.py",
      "name": "align_link_quantify.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/align_link_quantify.py",
      "span": "L1-L141",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4e4998f8fcb1f7e916959283cafea297a02bd97bb1e5b85901c6e011f1de0668",
      "chars": 5352,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/align_link_quantify.py#align",
      "name": "align",
      "kind": "function",
      "path": "skills/pyopenms/scripts/align_link_quantify.py",
      "span": "L50-L65",
      "signature": "def align(feature_maps)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5df646be4dfa9bd602d5f5951a87646b793d99d7e84bfc6ef255a2064ff5863",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/align_link_quantify.py#link",
      "name": "link",
      "kind": "function",
      "path": "skills/pyopenms/scripts/align_link_quantify.py",
      "span": "L68-L87",
      "signature": "def link(feature_maps, filenames, rt_tol, mz_tol, mz_unit)",
      "exported": true,
      "origin": "ast",
      "body_hash": "615851dee3bba67a41a93486356bccc8db587763516afc5fc35e97906fa6f8e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/align_link_quantify.py#load_or_detect",
      "name": "load_or_detect",
      "kind": "function",
      "path": "skills/pyopenms/scripts/align_link_quantify.py",
      "span": "L37-L47",
      "signature": "def load_or_detect(path, ppm, noise)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5c3440a8b603971f987730e4229ff35ea543656506163f009e619fa825c2181",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/align_link_quantify.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/align_link_quantify.py",
      "span": "L90-L136",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3136925261633933e26c25dfdb2fd4f23c9f7e660f12e47f329e40156257d0c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "name": "consensus_to_matrix.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "span": "L1-L71",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "783941b652c51d9f68e64b65fff9c4d186bc0ef0936f8cfa799663c0332eb731",
      "chars": 2775,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/consensus_to_matrix.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "span": "L27-L66",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "48c88626d509981f4ccebee307f6362322977584f63abbed0b33aac790e7743c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/convert_format.py",
      "name": "convert_format.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/convert_format.py",
      "span": "L1-L96",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f3373a479166010bcab1d769b92faa0ce3c57b4df231088562c3f1fbd69035b9",
      "chars": 3293,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/convert_format.py#filter_experiment",
      "name": "filter_experiment",
      "kind": "function",
      "path": "skills/pyopenms/scripts/convert_format.py",
      "span": "L33-L52",
      "signature": "def filter_experiment(exp, ms_level=None, rt_min=None, rt_max=None, min_intensity=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0462f3853dfe89789000781add8fa42032e63a5957f1f4bc64fcbbf30d6bdedf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/convert_format.py#load_experiment",
      "name": "load_experiment",
      "kind": "function",
      "path": "skills/pyopenms/scripts/convert_format.py",
      "span": "L27-L30",
      "signature": "def load_experiment(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "626acb9d727893d4f67b63daea1039fe9f8e5b11d98f85580681e880a2087c6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/convert_format.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/convert_format.py",
      "span": "L67-L91",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "14f5858ebb719a18f5bcfd8c703dc9ad143a8b4743e2291108f0c10c801a0257",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/convert_format.py#store_experiment",
      "name": "store_experiment",
      "kind": "function",
      "path": "skills/pyopenms/scripts/convert_format.py",
      "span": "L55-L64",
      "signature": "def store_experiment(exp, path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32dc6ce2ac55771b5712175aff1190bdcdb64063b4004e9f5455be2b01d3ed58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_adducts.py",
      "name": "detect_adducts.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/detect_adducts.py",
      "span": "L1-L91",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1acd5fbab47bfd1a123258775c6ced38989f4cad0afda7dd3ad59697382ddefd",
      "chars": 3683,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_adducts.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/detect_adducts.py",
      "span": "L36-L86",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "b890f84c399076ea07d13c90e942f23710d774a7506ad7a8be5f875d1ea3de45",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_features_centroided.py",
      "name": "detect_features_centroided.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/detect_features_centroided.py",
      "span": "L1-L81",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "57d7747d1e4c9c8cf3d0aabb436fb67e7288fc86c7590de3d2bde0ce9f587ac6",
      "chars": 3027,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_features_centroided.py#detect_features",
      "name": "detect_features",
      "kind": "function",
      "path": "skills/pyopenms/scripts/detect_features_centroided.py",
      "span": "L28-L43",
      "signature": "def detect_features(exp, mz_tol_ppm=10.0, charge_low=1, charge_high=4, min_spectra=7)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eaa3011b75a996bfa1a1baac3a47578a4dfc184d932ba18955881d1999b0c0aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_features_centroided.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/detect_features_centroided.py",
      "span": "L46-L76",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1a7be8f6ee6a9ad96084f56047db8b616be50a4e2a09ed66e5d79c42958b1d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_features_metabo.py",
      "name": "detect_features_metabo.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/detect_features_metabo.py",
      "span": "L1-L111",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cb7931710c122a73a399a169c645a12859fda4a5390c5b305a3b451bafa92bdf",
      "chars": 4169,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_features_metabo.py#detect_features",
      "name": "detect_features",
      "kind": "function",
      "path": "skills/pyopenms/scripts/detect_features_metabo.py",
      "span": "L30-L65",
      "signature": "def detect_features(exp, ppm=10.0, noise=1000.0, charge_low=1, charge_high=3, remove_single=True, iso_model=\"metabolites (5% RMS)\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5c74b690ca17380e3488e00ff2a2ea92f1151405ea56265b1a559418493927e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/detect_features_metabo.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/detect_features_metabo.py",
      "span": "L68-L106",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "921c38d26ee8dc3baa1582227ac1c2d3ea798d769324e0fe4cdea591c16dd4de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/digest_protein.py",
      "name": "digest_protein.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/digest_protein.py",
      "span": "L1-L103",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "61e14e798a8390bf157c74d18c926e6042e306c22de1a2f80d2659199d2ffa91",
      "chars": 3535,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/digest_protein.py#digest",
      "name": "digest",
      "kind": "function",
      "path": "skills/pyopenms/scripts/digest_protein.py",
      "span": "L38-L44",
      "signature": "def digest(seq_str, enzyme, missed, min_len, max_len)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c82efdb3d2da2a6068eaba75baebb726dd764c05e5dbaac969c0528fa7c70ed0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/digest_protein.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/digest_protein.py",
      "span": "L47-L98",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe99ac3ba646470527b0d36810ae0851af6311249603a9646b850e75ec785c12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/digest_protein.py#read_fasta",
      "name": "read_fasta",
      "kind": "function",
      "path": "skills/pyopenms/scripts/digest_protein.py",
      "span": "L28-L35",
      "signature": "def read_fasta(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fba5d24964d4ad56ed37583453406237aca044f5215424965505bfcb46066c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "name": "export_gnps_sirius.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "span": "L1-L91",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7dbc8ca1a3ad6714fa27c1e83ed1121ababa0d9773e6b261207c4e2a948de563",
      "chars": 3359,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/export_gnps_sirius.py#export_gnps",
      "name": "export_gnps",
      "kind": "function",
      "path": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "span": "L29-L43",
      "signature": "def export_gnps(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a91e3adfce7180d38dc4a069ada1a5fe1ac9644c6588ed82d71141242a82831",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/export_gnps_sirius.py#export_sirius",
      "name": "export_sirius",
      "kind": "function",
      "path": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "span": "L46-L64",
      "signature": "def export_sirius(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ba624dfa1ba53f1fb0545f6456cc80c242a927c77645d8553aaa3b0c6ed999e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/export_gnps_sirius.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "span": "L67-L86",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a28c14ec6ceb98d0b9f8564a1ace5c133710e4b8dde79934ba026280d72ef8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/extract_chromatograms.py",
      "name": "extract_chromatograms.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/extract_chromatograms.py",
      "span": "L1-L106",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a21122bb5f46169a58eca7c7c3ca38513d8c6eb0d43a66c80337dd06522b7107",
      "chars": 3810,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/extract_chromatograms.py#collect_ms1",
      "name": "collect_ms1",
      "kind": "function",
      "path": "skills/pyopenms/scripts/extract_chromatograms.py",
      "span": "L27-L36",
      "signature": "def collect_ms1(exp)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e5e35c6f5a111a03f1b253ea4549749fcc2f1dfdc497264b7b53495e3aad199",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/extract_chromatograms.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/extract_chromatograms.py",
      "span": "L39-L101",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "615046c1956c406854bf997adbde9b35c5c7adc5edf33902e3835c41ec2961f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py",
      "name": "inspect_ms_data.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L1-L168",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "66c6825f789a7d41a87982c73ca75fde52a9a625f7183731c15bbf0f0bf72257",
      "chars": 5980,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py#dump_spectra_csv",
      "name": "dump_spectra_csv",
      "kind": "function",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L76-L95",
      "signature": "def dump_spectra_csv(exp, out_csv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "870d97958af2d7d7bf4000784602ba5e9f273220396988586f8d3d30eb2d9fc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L143-L163",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca733654a2ab87ee413c14291cf4643779efd5181b90585a244a2f61146de986",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_consensus_map",
      "name": "summarize_consensus_map",
      "kind": "function",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L113-L121",
      "signature": "def summarize_consensus_map(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "567d2a2e4d245d48987e25035c9842c9ba5e31340e5896644c302220848c5ca7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_experiment",
      "name": "summarize_experiment",
      "kind": "function",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L28-L73",
      "signature": "def summarize_experiment(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3230993f41319605dab02b950e0de70af9b33027b3d073e095e28c573f9a063",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_feature_map",
      "name": "summarize_feature_map",
      "kind": "function",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L98-L110",
      "signature": "def summarize_feature_map(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc13d64b9fc87f09998fad2dd48c88fba0c504b4eef4406e82d89d5803682849",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_idxml",
      "name": "summarize_idxml",
      "kind": "function",
      "path": "skills/pyopenms/scripts/inspect_ms_data.py",
      "span": "L124-L140",
      "signature": "def summarize_idxml(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae36589468dafa3196350a35cd4ae02c5ac6d37c45be90a0d4a5bca6e76e09cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/mass_calculator.py",
      "name": "mass_calculator.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/mass_calculator.py",
      "span": "L1-L93",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6b2928c9a2b73a4f305a7c9c073c6d172956bcd3f5f0d0c7c3c04c063744ca5e",
      "chars": 3481,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/mass_calculator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/mass_calculator.py",
      "span": "L48-L88",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "83bbd2eba9df693de3de1e7dccb26f1859b271617d174e27b5b47aad1c81f862",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/mass_calculator.py#report_isotopes",
      "name": "report_isotopes",
      "kind": "function",
      "path": "skills/pyopenms/scripts/mass_calculator.py",
      "span": "L29-L45",
      "signature": "def report_isotopes(formula, n, csv=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a35be6d868deed508c7f1a40edc9e3ec2b4ebb4793e1dac4e37f68760a73eea9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py",
      "name": "plot_ms_data.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L1-L130",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e0c7ed3d59cdbea6e8c10f054a68a1b55e8ba451d3b0d9c7a36af308ba30c36d",
      "chars": 4026,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py#load_exp",
      "name": "load_exp",
      "kind": "function",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L33-L36",
      "signature": "def load_exp(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a99df4521a30aeb4a2e44b3703cf515b7df6b0d217f691682daddf0a579feb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L110-L125",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1be1a258b2381698dd5d0fda341dfde327077b826a16f0e7a8b150f7d57f9322",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py#plot_featuremap",
      "name": "plot_featuremap",
      "kind": "function",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L71-L83",
      "signature": "def plot_featuremap(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7baf58d8113c3ee64da6eabf1ee45bf7b184db1ffdc0f227e316d8aa013c2817",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py#plot_map2d",
      "name": "plot_map2d",
      "kind": "function",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L86-L103",
      "signature": "def plot_map2d(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bce707e28406a1900685dfa5099a6b9fbdbaa2a6ef3dbd193f4fcbdd128d5ebd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py#plot_spectrum",
      "name": "plot_spectrum",
      "kind": "function",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L39-L51",
      "signature": "def plot_spectrum(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc7c512cf956b9c4ba6b3e914d2353164b7c0be8f168cbcb8c30c584a49b905d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/plot_ms_data.py#plot_tic",
      "name": "plot_tic",
      "kind": "function",
      "path": "skills/pyopenms/scripts/plot_ms_data.py",
      "span": "L54-L68",
      "signature": "def plot_tic(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "64404a9eba59d53a1e4a772904989edbafda34bf2c3618ce9dceb0916fca5f2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/process_identifications.py",
      "name": "process_identifications.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/process_identifications.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "da1c22d5ec71a650b8d33cb190afc8c825f5e09285f86e1541fb7d0df08018e2",
      "chars": 4464,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/process_identifications.py#index_peptides",
      "name": "index_peptides",
      "kind": "function",
      "path": "skills/pyopenms/scripts/process_identifications.py",
      "span": "L27-L36",
      "signature": "def index_peptides(fasta, prot_ids, pep_ids)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fa64d384f1e142510097878f6317518962b92e1d1c276c4db4be660b63f0cd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/process_identifications.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/process_identifications.py",
      "span": "L39-L107",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "0597dceafe5caa609e6dd6b7a20546d8da4c551327af1b9bc4e7f04e6b35f931",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/process_spectra.py",
      "name": "process_spectra.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/process_spectra.py",
      "span": "L1-L125",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b4d139bdc6093976fe9cf046abb74e496bcebc505b559e6133d6570f48d06681",
      "chars": 4793,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/process_spectra.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/process_spectra.py",
      "span": "L33-L120",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee90f05c471098905a52a679f1ece90fe44f4af85380de49408fa010209a1479",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "name": "theoretical_spectrum.py",
      "kind": "file",
      "path": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "span": "L1-L76",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "068b91ce75a56e4f40d824c97105eed9389d875733725ac7805a5e6b627ee08a",
      "chars": 2935,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pyopenms/scripts/theoretical_spectrum.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "span": "L25-L71",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "551a98421387f6ec24018bac49664bfa28bd7fb127db284f86624976876be1f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py",
      "name": "alignment_qc.py",
      "kind": "file",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L1-L327",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "602a310b48c851ce4dc475ab85302a1d396fedd41c717225efbf871d65f9a567",
      "chars": 10204,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#alignment_mode",
      "name": "alignment_mode",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L83-L91",
      "signature": "def alignment_mode(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d37fe4ab49d4639396791a654162cc406a3a917676e89636f10b0772899ac05c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#average",
      "name": "average",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L98-L99",
      "signature": "def average(total: int, count: int) -> Optional[float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1041e338db0471b31cab42356d151582862f764e751c6fdba9f013e8d69f1ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L34-L71",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "483ac42cf9f0a66f1ae789f5fbd88ba5704a335e08e316e28bd0f0da9165ec78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#empty_counts",
      "name": "empty_counts",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L111-L130",
      "signature": "def empty_counts() -> dict[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "36520af0504018d353f987612c8cdaf66059166b2a519526bd8922492ccc1709",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "name": "inspect_alignments",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L133-L278",
      "signature": "def inspect_alignments(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e48bbc900edbb481b97733aacd9914d457a79a096603f7dda15166e6871c2bae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L297-L322",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9919082e6a13e11fd4122fcab452b6910fd48dd61e65cc28745473f5cc02169",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L27-L31",
      "signature": "def nonnegative_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f509c3d8569d46966954972dcdf510b5af72b8cb776f6ebd46dcf05a785478cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L20-L24",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6602124caacc04f345d45fd141024b36ca4c117526aa1cd742355a39abdf2a31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#ratio",
      "name": "ratio",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L94-L95",
      "signature": "def ratio(numerator: int, denominator: int) -> Optional[float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2955aa91beb487711d7a8929e2a7fbf3987cf3729af336c44c0828e7f6024993",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#require_local_file",
      "name": "require_local_file",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L74-L80",
      "signature": "def require_local_file(path: Path, label: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1233884e62ca7c3fc815c541479389da6a044d71f0754ccaae9a86d495c88eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#selected_reads",
      "name": "selected_reads",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L102-L108",
      "signature": "def selected_reads( alignments: pysam.AlignmentFile, region: Optional[str], ) -> Iterator[pysam.AlignedSegment]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bfebaace15255e839456f829e4ec9fe858065cee14d9137146712e6e08762f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/alignment_qc.py#write_report",
      "name": "write_report",
      "kind": "function",
      "path": "skills/pysam/scripts/alignment_qc.py",
      "span": "L281-L294",
      "signature": "def write_report(report: dict[str, Any], output: Optional[Path]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "219ae402e81ff7cf9352caf6eff49f21e2c5ffdba2f65b4ed89a3f195268f7bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py",
      "name": "filter_alignments.py",
      "kind": "file",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L1-L360",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "735a227759d565a8491a2401d1d241118fa662db59351fcf02456feafd19cf5b",
      "chars": 11223,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#alignment_mode",
      "name": "alignment_mode",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L121-L129",
      "signature": "def alignment_mode(path: Path, *, writing: bool) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c220a9f4f5a2de6580c635e46886ba2a2385686bfc41f9874c41dd4be5954f84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L36-L109",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "58ae11f5aacaf9333a24910825b3b547dd25f071c1c42ba039f6a45a50cba11a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#exclusion_reasons",
      "name": "exclusion_reasons",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L141-L160",
      "signature": "def exclusion_reasons( read: pysam.AlignedSegment, args: argparse.Namespace, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3356b840a46db5807bda9a6f774b0a88410b136b450416f409336380c61da753",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "name": "filter_file",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L193-L316",
      "signature": "def filter_file(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c360e31cd29adab9edb3566fc62086645fae253ac386a7069eded24b7bb1c55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L336-L355",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b4a4317d4e848fec3916e0c399be839ac1345714c46597110d68be4968ea055",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L29-L33",
      "signature": "def nonnegative_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f509c3d8569d46966954972dcdf510b5af72b8cb776f6ebd46dcf05a785478cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L22-L26",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6602124caacc04f345d45fd141024b36ca4c117526aa1cd742355a39abdf2a31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#require_local_file",
      "name": "require_local_file",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L112-L118",
      "signature": "def require_local_file(path: Path, label: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1233884e62ca7c3fc815c541479389da6a044d71f0754ccaae9a86d495c88eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#selected_reads",
      "name": "selected_reads",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L132-L138",
      "signature": "def selected_reads( alignments: pysam.AlignmentFile, region: Optional[str], ) -> Iterator[pysam.AlignedSegment]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bfebaace15255e839456f829e4ec9fe858065cee14d9137146712e6e08762f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#validate_destinations",
      "name": "validate_destinations",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L163-L190",
      "signature": "def validate_destinations( input_path: Path, output_path: Path, summary_path: Optional[Path], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "311baf13c0b1c25ff0a5b23a2641c308e69d228b85de86bb4417580a83f22a69",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/filter_alignments.py#write_summary",
      "name": "write_summary",
      "kind": "function",
      "path": "skills/pysam/scripts/filter_alignments.py",
      "span": "L319-L333",
      "signature": "def write_summary( report: dict[str, Any], output: Optional[Path], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a406a8ab856d629d1c2ee15b207458e64223d98c883090915ab9caba28aa9e9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py",
      "name": "inspect_hts.py",
      "kind": "file",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L1-L486",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f5ccce4b2ee396a31d7ebb1f5d3bbac3c754d782f3807243c09d6f4524505c5b",
      "chars": 13784,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#alignment_mode",
      "name": "alignment_mode",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L161-L167",
      "signature": "def alignment_mode(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "679ca1837721c9c4874d89a1d648e0aef249712259336e974a40503e4264bd25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L87-L131",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "37e0915b6f1bea93a54bab6d0e5b742eaeba9983886534a7a7b564644a4fb3dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#contig_records",
      "name": "contig_records",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L149-L158",
      "signature": "def contig_records( names: tuple[str, ...] | list[str], lengths: tuple[int, ...] | list[int], maximum: int, ) -> tuple[list[dict[str, Any]], bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d0ffe1800b3d02d59d3fa55f89435440f79d121905d325f730ab20218696710",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#detect_kind",
      "name": "detect_kind",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L37-L84",
      "signature": "def detect_kind(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6952e5b8ce36be7e07edd5e24667a928c31583a13c64583c78a0fcefb5dffb1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#inspect_alignment",
      "name": "inspect_alignment",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L170-L249",
      "signature": "def inspect_alignment( path: Path, *, reference: Optional[Path], index: Optional[Path], threads: int, max_items: int, include_identifiers: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "08a97d207d310e33408b914a9f6c090bf396c4be681505d56e139035994aaf51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#inspect_fasta",
      "name": "inspect_fasta",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L314-L337",
      "signature": "def inspect_fasta( path: Path, *, index: Optional[Path], max_items: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "93de7bb92c85ab98cd99ea900803a5ac50a0a909b5812b7b567824e0712071e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#inspect_fastx",
      "name": "inspect_fastx",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L340-L350",
      "signature": "def inspect_fastx(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d43e5f58adc34edcc91c3ac5b868a1466d1e963b3306de954635e66c3dc7b3f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "name": "inspect_file",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L379-L437",
      "signature": "def inspect_file(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d6a626f6c15e4e000ecda90ea2e39344357ed9172c6f08d6567692e8ef2ca3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#inspect_tabix",
      "name": "inspect_tabix",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L353-L376",
      "signature": "def inspect_tabix( path: Path, *, index: Optional[Path], threads: int, max_items: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "94ba4fc9ae67e8232a3d0a9f3e6c6724aa9acdb7038859b19db71ff341510fb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#inspect_variant",
      "name": "inspect_variant",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L259-L311",
      "signature": "def inspect_variant( path: Path, *, index: Optional[Path], threads: int, max_items: int, include_identifiers: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a63d35f754f23483621241997733f55b2b5bf507926957cf8c36b9a88b9412d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#limited",
      "name": "limited",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L143-L146",
      "signature": "def limited(values: list[Any], maximum: int) -> tuple[list[Any], bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "109e2685c66e97fda246f33be1e2b9d463f0e6ed61a0d347a074b61ca6e2f89a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L456-L481",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9d9fed0542d368230fccf86313fdeec8fc7ff93ef088cd4ba04a9acaea6b66a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L30-L34",
      "signature": "def nonnegative_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f509c3d8569d46966954972dcdf510b5af72b8cb776f6ebd46dcf05a785478cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L23-L27",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6602124caacc04f345d45fd141024b36ca4c117526aa1cd742355a39abdf2a31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#require_local_file",
      "name": "require_local_file",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L134-L140",
      "signature": "def require_local_file(path: Path, label: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1233884e62ca7c3fc815c541479389da6a044d71f0754ccaae9a86d495c88eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#variant_index_loaded",
      "name": "variant_index_loaded",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L252-L256",
      "signature": "def variant_index_loaded(variants: pysam.VariantFile) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "b792c7fefe1efcaa3d47208ec2d5cf851b7798222acf7f725cc686f1ef3586b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/inspect_hts.py#write_report",
      "name": "write_report",
      "kind": "function",
      "path": "skills/pysam/scripts/inspect_hts.py",
      "span": "L440-L453",
      "signature": "def write_report(report: dict[str, Any], output: Optional[Path]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "219ae402e81ff7cf9352caf6eff49f21e2c5ffdba2f65b4ed89a3f195268f7bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py",
      "name": "variant_summary.py",
      "kind": "file",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L1-L363",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a10ab027af2d70e6672b46d507d600fd25192f4bb943d824582de0813057c93a",
      "chars": 11119,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L35-L78",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "441790a640282b5a026aa80ed4c95110e35b0cfd007cc99d3a4a5609d02a660b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#classify_record",
      "name": "classify_record",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L108-L120",
      "signature": "def classify_record(record: pysam.VariantRecord) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "850cede0e5386b2b6cbbba2667be63e11dc6e4f805927fd52e6395849db00ea4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#filter_status",
      "name": "filter_status",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L123-L129",
      "signature": "def filter_status(record: pysam.VariantRecord) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7db9273aad7d619a677099b9ba1429203bdc23e44aee0eaa331f03e168e807d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#is_symbolic_or_breakend",
      "name": "is_symbolic_or_breakend",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L99-L105",
      "signature": "def is_symbolic_or_breakend(allele: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "243fb5581fa3227b584715d9f77c06ac4572b6362fc6124ceccebc9e8c8a9fba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L333-L358",
      "signature": "def main(argv: Optional[list[str]] = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "70e6a29f5e5863af98ff1ea3718488d214717c75bdf3d617e75450cf286f22af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L28-L32",
      "signature": "def nonnegative_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f509c3d8569d46966954972dcdf510b5af72b8cb776f6ebd46dcf05a785478cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L21-L25",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6602124caacc04f345d45fd141024b36ca4c117526aa1cd742355a39abdf2a31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#require_local_file",
      "name": "require_local_file",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L81-L87",
      "signature": "def require_local_file(path: Path, label: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1233884e62ca7c3fc815c541479389da6a044d71f0754ccaae9a86d495c88eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "name": "summarize_variants",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L189-L314",
      "signature": "def summarize_variants(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "79acdcb8de02db0718464b0577363200621081cce05531a51e3519d9f7b70be2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#update_genotype_counts",
      "name": "update_genotype_counts",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L151-L186",
      "signature": "def update_genotype_counts( record: pysam.VariantRecord, counts: Counter[str], ploidy_counts: Counter[int], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "60b0d958a216f89f65f9f8b0a1a300acba196f0e025eee367c13ee2e724575cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#update_substitution_counts",
      "name": "update_substitution_counts",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L132-L148",
      "signature": "def update_substitution_counts( record: pysam.VariantRecord, counts: Counter[str], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b2a57c4def8b084f318beef41612fd202361ddb2a313557659339e10544bd21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#variant_records",
      "name": "variant_records",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L90-L96",
      "signature": "def variant_records( variants: pysam.VariantFile, region: Optional[str], ) -> Iterator[pysam.VariantRecord]",
      "exported": true,
      "origin": "ast",
      "body_hash": "855d5631229dfb1b546fba84288d92b5b9560497748100fc44d7a4d07cb027d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pysam/scripts/variant_summary.py#write_report",
      "name": "write_report",
      "kind": "function",
      "path": "skills/pysam/scripts/variant_summary.py",
      "span": "L317-L330",
      "signature": "def write_report(report: dict[str, Any], output: Optional[Path]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "219ae402e81ff7cf9352caf6eff49f21e2c5ffdba2f65b4ed89a3f195268f7bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L1-L206",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5400062833084d7dfbe6fa603901d2d931689c1d2ad587c9ae67052f50b98791",
      "chars": 7346,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L20-L34",
      "signature": "def bounded_int(minimum: int, maximum: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cd696aaf6020046c6e90c95e13adf97b567c0128a48fc6d8d25e6774cfbd6d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#bounded_int.convert",
      "name": "convert",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L23-L32",
      "signature": "def convert(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c72750c6436e473d3eb38e4e5c0f2dd11139fb4f85f1e96805fb61abd30f365",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#canonical_name",
      "name": "canonical_name",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L37-L46",
      "signature": "def canonical_name(query: str, choices: Iterable[str], label: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "53a5d4e34dd979858ff9f4883ed667d695c5d1837e09594411724c3ca38664e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L16-L17",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f72733839cea3e1066ce5186a98ed0e5f20e5264b97195e1fb1704327663a66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L174-L205",
      "signature": "def emit_json(payload: Any, output: str | None, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6803e826452fdbf29a1801641c138cd86305a12bd19b4118f5b328bc8adeb528",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "name": "load_pytdc_metadata",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L116-L127",
      "signature": "def load_pytdc_metadata() -> tuple[Any, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0664cc19cb8956eaf2333a6c1a80da2024ec807399700a2ae765d6621e98f8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#read_json_file",
      "name": "read_json_file",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L161-L171",
      "signature": "def read_json_file(path: Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "b22641582281e37c47501a20f666019be207545f5c26e7b30ba09e56ad1465d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#read_json_file.reject_constant",
      "name": "reject_constant",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L164-L165",
      "signature": "def reject_constant(value: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "78a359dcffe4c72eb9960c2126ab01d89943520420873a44c498d9dcbbaed698",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#safe_directory",
      "name": "safe_directory",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L70-L86",
      "signature": "def safe_directory( raw_path: str, *, label: str, create: bool = False, must_exist: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b6ada2692bfd9087f8c5f417472d3e79c0da44b83ffcef6fda57882609bdd84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#safe_input_file",
      "name": "safe_input_file",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L89-L98",
      "signature": "def safe_input_file(raw_path: str, *, max_bytes: int, label: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4ce868ea2f216eb194ba4a292dbe8f93e8cea7af724fc8efb4a020f54adaddf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#safe_relative_path",
      "name": "safe_relative_path",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L49-L67",
      "signature": "def safe_relative_path( raw_path: str, *, label: str, allow_workspace_root: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b4670472b07c43f5a6596aa2551b5f70c7b8ec6d6f64e53accd0e07fcf57b0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#truncate_value",
      "name": "truncate_value",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L130-L158",
      "signature": "def truncate_value(value: Any, *, max_string: int = 160) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea147b96b92d11274584e22437a230ce9078d4381d3cc764ebae2b2052789a78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/_common.py#validate_fractions",
      "name": "validate_fractions",
      "kind": "function",
      "path": "skills/pytdc/scripts/_common.py",
      "span": "L101-L113",
      "signature": "def validate_fractions(values: Sequence[float]) -> tuple[float, float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c48d976eb627589017f0fbd560d957c8a39ce4661a1245a7b24cb82473931c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py",
      "name": "benchmark_evaluation.py",
      "kind": "file",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L1-L368",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fd2f6918f53ff9674c761860e8cb426e313f565b0736ae1a94a63b37e79675ee",
      "chars": 12498,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#_validate_values",
      "name": "_validate_values",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L57-L68",
      "signature": "def _validate_values(values: Any, dataset: str) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "2ddb7afdfd9d59bb4c0c4c8e4d89f70b74f436b3d9bb6724ea367735856cfdaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#benchmark_names",
      "name": "benchmark_names",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L37-L42",
      "signature": "def benchmark_names(metadata: Any, group: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "84c3cbdafb4255a6b690781e1ceaf9b9337a14baef56881e0e010e40f46b9d67",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L230-L279",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "557c0b040c98c476fbe132947fd02af9791c24d8e7c199ee0a3e33a2ab781059",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L161-L191",
      "signature": "def build_plan( *, group: str, dataset: str | None, seeds: list[int], data_dir: Path, package_version: str, metric: str | None, prediction_summary: dict[str, Any] | None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9902e22f8741884c840036095e5e308d4f9773a22960332a955cc0b0134cadc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#execute_evaluation",
      "name": "execute_evaluation",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L194-L227",
      "signature": "def execute_evaluation( *, group: str, dataset: str | None, mode: str, predictions: dict[str, list[float]] | list[dict[str, list[float]]], run_seeds: list[int | None], data_dir: Path, package_version: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "007b770f7b414d2f709ed331d18d99f0dda7b413da2d5ef718cc55fa1709c822",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L282-L363",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f2a8dbf630551432f40a071ff65ff1152a5514616cc767272acbd64221532e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_prediction_mapping",
      "name": "normalize_prediction_mapping",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L71-L95",
      "signature": "def normalize_prediction_mapping( value: Any, *, available: list[str], selected_dataset: str | None, ) -> tuple[dict[str, list[float]], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a92dd041e1be8d6d657e04d03264eb12d53426f23743070e7e66975e114ba7a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_predictions",
      "name": "normalize_predictions",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L98-L158",
      "signature": "def normalize_predictions( payload: Any, *, mode: str, available: list[str], selected_dataset: str | None, ) -> tuple[dict[str, list[float]] | list[dict[str, list[float]]], list[int | None]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0fa87874f26c75e94b720a7933599f833c5c22a3e8a3f57ccfa03a6a3c68c3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/benchmark_evaluation.py#validate_seeds",
      "name": "validate_seeds",
      "kind": "function",
      "path": "skills/pytdc/scripts/benchmark_evaluation.py",
      "span": "L45-L54",
      "signature": "def validate_seeds(seeds: list[int]) -> list[int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f64417c7f8fb8350eeee27ca819575fad718d2b6fc9367dea88d881ef0b54d5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/cache_audit.py",
      "name": "cache_audit.py",
      "kind": "file",
      "path": "skills/pytdc/scripts/cache_audit.py",
      "span": "L1-L147",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fa95d89be81da8341f5134cba7e48ba65ef66f0f19d44738e6eebc8cd257f234",
      "chars": 4574,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/cache_audit.py#audit_cache",
      "name": "audit_cache",
      "kind": "function",
      "path": "skills/pytdc/scripts/cache_audit.py",
      "span": "L17-L95",
      "signature": "def audit_cache(root: Path, *, max_files: int, largest_limit: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "66ef5c2ae3ac2213604173ebb66c6f2721898237e48592836cade250cdad4c62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/cache_audit.py#audit_cache.on_error",
      "name": "on_error",
      "kind": "function",
      "path": "skills/pytdc/scripts/cache_audit.py",
      "span": "L29-L33",
      "signature": "def on_error(error: OSError) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df3e9f3fc7a1e9d66ae9f92c5d1778090a2ee1b1f19540a48f4f0d0704e32a1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/cache_audit.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pytdc/scripts/cache_audit.py",
      "span": "L98-L126",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "00cd3af2756c17f7d556a8c725313a3c3a4aea0bbdf2d8b20eaa8960547722ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/cache_audit.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pytdc/scripts/cache_audit.py",
      "span": "L129-L142",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7be8f2e8c4c016c3f6e2fc57862922da12d944ba8f15727098ab732783e25aea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/discover_metadata.py",
      "name": "discover_metadata.py",
      "kind": "file",
      "path": "skills/pytdc/scripts/discover_metadata.py",
      "span": "L1-L175",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e761eb71b2c7c131db661920e252d88ef72402004e3445055487a344dace1e0f",
      "chars": 5066,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/discover_metadata.py#_window",
      "name": "_window",
      "kind": "function",
      "path": "skills/pytdc/scripts/discover_metadata.py",
      "span": "L19-L29",
      "signature": "def _window(values: Iterable[Any], offset: int, limit: int) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "2d7b68fb60babba786752e7b936d16578647590747afcd9853037814ff99245f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/discover_metadata.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pytdc/scripts/discover_metadata.py",
      "span": "L116-L147",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "93c614f84ebf949971ee0ed67e2bbf968c967655385cc776087e4f5f8be5aae2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/discover_metadata.py#collect_metadata",
      "name": "collect_metadata",
      "kind": "function",
      "path": "skills/pytdc/scripts/discover_metadata.py",
      "span": "L32-L113",
      "signature": "def collect_metadata( metadata: Any, package_version: str, *, kind: str, task: str | None, offset: int, limit: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "de969ca259481954f809e752f1f7da0062375bd0f3e2f306242dd99071518c68",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/discover_metadata.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pytdc/scripts/discover_metadata.py",
      "span": "L150-L170",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "78c0231a68382a2e03f3199064073425a297050dd8668a2c8af1b1336510ec11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py",
      "name": "load_and_split_data.py",
      "kind": "file",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L1-L375",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c1f16b9cd0ec4a1578b2e701a753c2a71bbc57606a9ce12da6f5ca3e20cb64f6",
      "chars": 12594,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#_audit_cold_columns",
      "name": "_audit_cold_columns",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L170-L197",
      "signature": "def _audit_cold_columns( split: dict[str, Any], columns: list[str] ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b6cbe0de62465ea56e7fda9d93ed78ad7e8a20271a3878796e8a10314fb65e3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#_summarize_frame",
      "name": "_summarize_frame",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L160-L167",
      "signature": "def _summarize_frame(frame: Any, preview: int) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3522d3e80c5d8ef1f349f8f409b4f65ea4435b691c1342eac5801fcc276101d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L263-L319",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c0c3a40d849897845fd053a821f1d545db56d619da84d160eb2eca0043e57af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L125-L157",
      "signature": "def build_plan( *, task: str, dataset: str, method: str, seed: int, fractions: tuple[float, float, float], columns: list[str], time_column: str | None, data_dir: Path, package_version: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d57f4882c8aca509f19757b5c9b53135526fa2c5237f21859935759e02abd9e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#execute_split",
      "name": "execute_split",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L200-L260",
      "signature": "def execute_split( *, task: str, dataset: str, method: str, seed: int, fractions: tuple[float, float, float], columns: list[str], time_column: str | None, data_dir: Path, preview: int, package_version: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "685f7513c119b4cea429ecce1f4e44e3147ec3170efae84cf1711c1b428339a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L322-L370",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7545e00fb817c2b1ac775f716aebf6cf513a33f818b1283b4878359b93a2ba2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#normalize_columns",
      "name": "normalize_columns",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L61-L68",
      "signature": "def normalize_columns(values: list[str] | None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "be3e53d76d66a884b36b110da21262927d44e1d7f53b2aebc9c0a1859ffd0b39",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/load_and_split_data.py#validate_request",
      "name": "validate_request",
      "kind": "function",
      "path": "skills/pytdc/scripts/load_and_split_data.py",
      "span": "L71-L122",
      "signature": "def validate_request( *, task_query: str, dataset_query: str, method: str, columns: list[str], time_column: str | None, metadata: Any, ) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "72dafe52d78e99cd509b3f2bd2dbe28e93542cb906bb4d77a8716f6449c8f8bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py",
      "name": "molecular_generation.py",
      "kind": "file",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L1-L418",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b72943eefdf33e9cbd8ab74e50b2793e95b57840c44f58ccc6dd7969e8b1ef89",
      "chars": 13619,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#_add_output_arguments",
      "name": "_add_output_arguments",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L243-L247",
      "signature": "def _add_output_arguments(parser: argparse.ArgumentParser) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "5c0a57ca47da17596c9b538bf13231bd78dd46dbb2b50ccd10f3e3f3fa3ff135",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#_working_directory",
      "name": "_working_directory",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L41-L47",
      "signature": "def _working_directory(path: Path) -> Iterator[None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5ef7706c8938d88719bb8c02df205c57846ba37e30c87bb5c4c69a01217694de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L250-L340",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8aeb10793fe4ba18af3500142a9b131b4397020eb4df4c2c8aec5d8331bdb00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#classify_oracle",
      "name": "classify_oracle",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L50-L64",
      "signature": "def classify_oracle(metadata: Any, query: str) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "46985d06e51b961d884b92468b5ff99f6f5cf526395a2cf9e9a4f82157f79cd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#dataset_plan",
      "name": "dataset_plan",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L167-L194",
      "signature": "def dataset_plan( *, dataset: str, data_dir: Path, seed: int, fractions: tuple[float, float, float], package_version: str, download_acknowledged: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "51f37ef583a8ccaa7e53fb351a7c6444d061cd60721c98e96d8c882529eaed05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#execute_dataset",
      "name": "execute_dataset",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L197-L240",
      "signature": "def execute_dataset( *, dataset: str, data_dir: Path, seed: int, fractions: tuple[float, float, float], preview: int, package_version: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "06524576dcd185ec9d2c66f8045d1e7b86d88e3721ddf12621a88c2994b5a507",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#execute_scores",
      "name": "execute_scores",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L121-L164",
      "signature": "def execute_scores( *, oracle_name: str, category: str, smiles: list[str], runtime_dir: Path, download_acknowledged: bool, package_version: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9897af06129036cb2a9ea7e484e322d2da46fdbf8ee3e744fdc3da16d7e1d9fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#load_smiles",
      "name": "load_smiles",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L67-L90",
      "signature": "def load_smiles( direct: list[str] | None, input_path: str | None, *, max_molecules: int, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8ea9e2b50a23c7162275f2b0c7b8bed32ba708574bdf4fd00c4011c6959f994",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L343-L413",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b9b95081cfa0606d49e4a4aecea23b74917535b06b6ccdd3cff0f4bc80829b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytdc/scripts/molecular_generation.py#score_plan",
      "name": "score_plan",
      "kind": "function",
      "path": "skills/pytdc/scripts/molecular_generation.py",
      "span": "L93-L118",
      "signature": "def score_plan( *, oracle: str, category: str, smiles_count: int, runtime_dir: Path, package_version: str, download_acknowledged: bool, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "013735fd88c5e220c94ab20c215f0494fc8c7b3486a772f8d76ae32fba8e37a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "name": "quick_trainer_setup.py",
      "kind": "file",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L1-L474",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8b9a8e926f0c2841b5dfcd49597126defe0b55132ab5c8122ab531a4506f7eb3",
      "chars": 13843,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#basic_trainer",
      "name": "basic_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L24-L36",
      "signature": "def basic_trainer()",
      "exported": true,
      "origin": "ast",
      "body_hash": "582d0da1678276e633b660b15050bbaa1b0d3d59870f8000930f44747d962bfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#debug_trainer",
      "name": "debug_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L43-L55",
      "signature": "def debug_trainer()",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b9264e68295bd2c66109b1d4c24c95b772ef2ca6822ea74d7ad89c143583958",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#deepspeed_trainer",
      "name": "deepspeed_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L244-L294",
      "signature": "def deepspeed_trainer( max_epochs=100, num_gpus=8, stage=3, log_dir=\"logs\", checkpoint_dir=\"checkpoints\" )",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d2f20fcf88f74ecf56c5b88f76116b58b88bc45e22dd600547d8ab85f79a0f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#hyperparameter_tuning_trainer",
      "name": "hyperparameter_tuning_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L301-L316",
      "signature": "def hyperparameter_tuning_trainer(max_epochs=50)",
      "exported": true,
      "origin": "ast",
      "body_hash": "20100807656f351c2a19c5b1755008ea96e2accedaed9552adbacdcdaf0b2e16",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#large_model_fsdp_trainer",
      "name": "large_model_fsdp_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L183-L237",
      "signature": "def large_model_fsdp_trainer( max_epochs=100, num_gpus=8, log_dir=\"logs\", checkpoint_dir=\"checkpoints\" )",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3478a3b67bddccbcad586c5936321d7e06260b5b84ec054d93563ff8b74f06c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#multi_gpu_ddp_trainer",
      "name": "multi_gpu_ddp_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L121-L176",
      "signature": "def multi_gpu_ddp_trainer( max_epochs=100, num_gpus=4, log_dir=\"logs\", checkpoint_dir=\"checkpoints\" )",
      "exported": true,
      "origin": "ast",
      "body_hash": "05e0cd1c2bd28b3b1bd7d99721f353e35dbb577af919bdd0c52b8697b6553f11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#overfit_test_trainer",
      "name": "overfit_test_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L323-L336",
      "signature": "def overfit_test_trainer(num_batches=10)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3c580596ce6089652284d4d58bda42e36f305befff4baf51b16113b9898a9f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#production_single_gpu_trainer",
      "name": "production_single_gpu_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L62-L114",
      "signature": "def production_single_gpu_trainer( max_epochs=100, log_dir=\"logs\", checkpoint_dir=\"checkpoints\" )",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fa8053722b0e31abaca80e5bae4c422eb0f554076f1724ba4c078395eb456fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#reproducible_trainer",
      "name": "reproducible_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L379-L409",
      "signature": "def reproducible_trainer(seed=42, max_epochs=100)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1a5e62fcb4bda2e40cc934c78dc84367a93f13a5955477e62a73d1a23385948",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#time_limited_trainer",
      "name": "time_limited_trainer",
      "kind": "function",
      "path": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "span": "L343-L372",
      "signature": "def time_limited_trainer( max_time_hours=23.5, max_epochs=1000, checkpoint_dir=\"checkpoints\" )",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f66a2a4c45a931c8d172d1ac9ea5e78c1c82532a4a2a1dd6b17f7d84d6a31b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "name": "template_datamodule.py",
      "kind": "file",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L1-L329",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "82d1601800fa17a80250b640b4df530ebd78bb852316bc75c6441b1d592c80cf",
      "chars": 9354,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "name": "CustomDataset",
      "kind": "class",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L13-L59",
      "signature": "class CustomDataset(Dataset)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd791589cbf6d30b82820d3e95e7462e4096ebba86d0c350b4c67b310922f2e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset.__getitem__",
      "name": "__getitem__",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L43-L59",
      "signature": "def __getitem__(self, idx)",
      "exported": false,
      "origin": "ast",
      "body_hash": "11956aaae8dcf3cd1eb15d277515c326a9e797b31483b5918c9a19be681d1c52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDataset"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L20-L37",
      "signature": "def __init__(self, data_path, transform=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e1f0984429171f49e5e41ecd8a57a50488607f15189ff3cbff297285e9c1de69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDataset"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset.__len__",
      "name": "__len__",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L39-L41",
      "signature": "def __len__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "56a928ba1951183cfaccef25c9110af59d5798934bd12cdb283f4a86a9955ae3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDataset"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "name": "TemplateDataModule",
      "kind": "class",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L62-L298",
      "signature": "class TemplateDataModule(L.LightningDataModule)",
      "exported": true,
      "origin": "ast",
      "body_hash": "37db9d9623741b06d4e1c4bcf0fbdc9701cc8f96727233ce150b216bdc7fbbd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L79-L96",
      "signature": "def __init__( self, data_dir: str = \"./data\", batch_size: int = 32, num_workers: int = 4, train_val_split: float = 0.8, pin_memory: bool = True, )",
      "exported": false,
      "origin": "ast",
      "body_hash": "8c8c1f778fad67962e7bfcc0ff23db705cae82a23bf27e74cd9de303894ce78e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule._get_test_transforms",
      "name": "_get_test_transforms",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L185-L199",
      "signature": "def _get_test_transforms(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "aa8725e250650d7c67ce4cf250608d1258788f4b7f64783cdac000fc6aadfb5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule._get_train_transforms",
      "name": "_get_train_transforms",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L167-L183",
      "signature": "def _get_train_transforms(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "58a8001bf36f6ef8229c79e193179227b56841004b1cb75c44b4896510e5617a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.load_state_dict",
      "name": "load_state_dict",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L273-L280",
      "signature": "def load_state_dict(self, state_dict)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c85b6e976f276682e4899021a5ce124e9191d572231f2bd41594793dfadeca5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.predict_dataloader",
      "name": "predict_dataloader",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L248-L260",
      "signature": "def predict_dataloader(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd0a11ff9e5cfdb0322d226c34d15b58b293f49978cf1a1041c867d180fa25e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.prepare_data",
      "name": "prepare_data",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L98-L118",
      "signature": "def prepare_data(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "41b25863d2fa97b69dee6a3868875efd4e6ca750e20efa010bc0f2722cee150d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.setup",
      "name": "setup",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L120-L165",
      "signature": "def setup(self, stage: str = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "79d28c0ff475d25e11bf7366ba679ee752a3e9f96cd93979bb08c9c2ab2b7dc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.state_dict",
      "name": "state_dict",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L264-L271",
      "signature": "def state_dict(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99315f780878469abc2917db1688721a2f49aeac22bc30544ccd1ea82addc4f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.teardown",
      "name": "teardown",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L284-L298",
      "signature": "def teardown(self, stage: str = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bb426be897e50bbd5dac1e178706273aa42d178004bd860cfee7c5caf94dc58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.test_dataloader",
      "name": "test_dataloader",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L234-L246",
      "signature": "def test_dataloader(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d059fdfc8c5bd2147906a468fbcd7bc5988a0b16c3738d8bb05c16a0ecce6296",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.train_dataloader",
      "name": "train_dataloader",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L201-L216",
      "signature": "def train_dataloader(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b68b1f83cba89e766abbcdc801ecc218c2d254a61f015ef6bfa86582de78fc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.val_dataloader",
      "name": "val_dataloader",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "span": "L218-L232",
      "signature": "def val_dataloader(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "76b980914906862d01bf9872eea98a97869985ab1aabec9ff0e9122184cc68a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateDataModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "name": "template_lightning_module.py",
      "kind": "file",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L1-L221",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7c93eb6abfcaa938fefd4c3c5fd62fade2ad448955f54abb95e4fd2424c4de00",
      "chars": 6045,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "name": "TemplateLightningModule",
      "kind": "class",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L16-L195",
      "signature": "class TemplateLightningModule(L.LightningModule)",
      "exported": true,
      "origin": "ast",
      "body_hash": "afd96ab1657f19a239f7b8b31de12964c1b3985db32fcdcf5a4e86abb735c506",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L26-L48",
      "signature": "def __init__( self, learning_rate: float = 0.001, hidden_dim: int = 256, dropout: float = 0.1, )",
      "exported": false,
      "origin": "ast",
      "body_hash": "a530dc0a35c77d5bdeba2803b235ab02c1503a81acd025bd197b36a268591851",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.configure_optimizers",
      "name": "configure_optimizers",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L151-L183",
      "signature": "def configure_optimizers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "481d28a685aa73e6e75c16e996696b00fac0905bd954d31e9d9f6fc2a16a6961",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.forward",
      "name": "forward",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L50-L60",
      "signature": "def forward(self, x)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e032076a4bccb8ade61b423cf4ceb598daf7c44f663258849d35733f9aa671af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.on_train_epoch_end",
      "name": "on_train_epoch_end",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L187-L190",
      "signature": "def on_train_epoch_end(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "45782bee6f3c38d9e6364a95af02db687b651d59102ed9a2b211d2fe6798feb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.on_validation_epoch_end",
      "name": "on_validation_epoch_end",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L192-L195",
      "signature": "def on_validation_epoch_end(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d5b7a8f7b3f0287496c72291928e6b3000c6ce5fa2fb20f50bf8c891f1d1ef1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.predict_step",
      "name": "predict_step",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L134-L149",
      "signature": "def predict_step(self, batch, batch_idx, dataloader_idx=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "356d95073841b4311a55dda5514875406c15937b36c316c2aff108fd59450acc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.test_step",
      "name": "test_step",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L112-L132",
      "signature": "def test_step(self, batch, batch_idx)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc5351a576674766f9c0446b025a1e9f200466cf3edf7c4468d28a0d0b7e228f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.training_step",
      "name": "training_step",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L62-L88",
      "signature": "def training_step(self, batch, batch_idx)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e78f1f9ad7899567f76ff61950af5f2c7b6da1d590b28f65f2205ee7c5abd11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.validation_step",
      "name": "validation_step",
      "kind": "method",
      "path": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "span": "L90-L110",
      "signature": "def validation_step(self, batch, batch_idx)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a561af0dc0dae994fdbf7746efd8757228dc90ea123b4d01363a758f94a201a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateLightningModule"
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py",
      "name": "check_environment.py",
      "kind": "file",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L1-L261",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dd9f44b7378041d236755c37c4a0e77286a0dbc5eddec1cdd34de7894cfa3e06",
      "chars": 7930,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L175-L202",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e949179e7896bbe9decc8b3f69e65f47d47f0ad7934b0fb4f518cb82ebaedba0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py#collect_report",
      "name": "collect_report",
      "kind": "function",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L63-L172",
      "signature": "def collect_report( require_runtime: bool, require_aer: bool, strict: bool, ) -> tuple[dict[str, Any], list[str], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "33d804e90d53b4b8e94565be9e76511cd033ee469728f9383bf5537e81ba4f68",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py#import_status",
      "name": "import_status",
      "kind": "function",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L45-L60",
      "signature": "def import_status(module_name: str) -> dict[str, str | bool | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "582f1c3486c6f235b9d900b6e9a85b1737d64511f58fe5b46af62434cc0dc735",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py#installed_version",
      "name": "installed_version",
      "kind": "function",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L37-L42",
      "signature": "def installed_version(distribution: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a88a6217702643c063417efa52a32d5d71ace5edb1cc698153f0c8c82a1ac34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L243-L256",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2947d711212272c84b021015110f574690e165c5faa14ed689067cb980e995f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/check_environment.py#print_human_report",
      "name": "print_human_report",
      "kind": "function",
      "path": "skills/qiskit/scripts/check_environment.py",
      "span": "L205-L240",
      "signature": "def print_human_report(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ad93146dabf76af9e423bc3575fbd00ade0ebdbdc76555bee017e9a80fc7f48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py",
      "name": "inspect_runtime.py",
      "kind": "file",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L1-L225",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7f42b7446303c5ddb8683ec41c4d495f001f076247cb6d6e5512c8dd48c87d16",
      "chars": 6425,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L120-L155",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0b225680d1763888630abbb75627aab77f42475cebb7afce50681a7e4353aa8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#distribution_version",
      "name": "distribution_version",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L22-L26",
      "signature": "def distribution_version(distribution: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fe04f1e9a8e9aa614f871de4ca331b812a5525080d28cc81bb9bdc24f1004cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#inspect_backend",
      "name": "inspect_backend",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L53-L117",
      "signature": "def inspect_backend(backend: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "620164b98f6aec332232f7f8257d473536f0fc7c8b10790932be58cdb609a7d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L183-L220",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ec4185e5be9c5e56e40797dcc538b190e0566ac2febf944100db18c1d6be123",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#positive_qubits",
      "name": "positive_qubits",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L13-L19",
      "signature": "def positive_qubits(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e9775431656cb7feef317772bf17b7888dbb302b931a99970160c848f43e36c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#print_human",
      "name": "print_human",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L158-L180",
      "signature": "def print_human(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e2f5c2d57bfef018addcc2a08a9cd7a21da6e05fef00f3b86ed137c16259dc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/inspect_runtime.py#select_backend",
      "name": "select_backend",
      "kind": "function",
      "path": "skills/qiskit/scripts/inspect_runtime.py",
      "span": "L29-L50",
      "signature": "def select_backend( service: Any, backend_name: str | None, min_qubits: int, use_fractional_gates: bool | None, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b080f0e9313c5832af3c0ab55b8971a63672e19f4fe0edabac2318bb78d24ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py",
      "name": "run_local_primitives.py",
      "kind": "file",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L1-L201",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "84cb5a992e2ddf56bd21e4ce95a5edcadaef6da31074f372f227b418afe4fb07",
      "chars": 5622,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L115-L145",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "448b94f738a9a2ebee3ca6b1217e748cb1d891ef1f768b54f9fbd622bda973bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L25-L29",
      "signature": "def finite_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "03cf69718a8047ba8e8c863aca31343d84bea3281afdadd6d188fb435ab11b66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L178-L196",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7b6f3ecc5f1c2388816a5b4a2fe92709dc20eb833830091183760d1fbd1c36d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#positive_bounded_shots",
      "name": "positive_bounded_shots",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L16-L22",
      "signature": "def positive_bounded_shots(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2403470ee9e07f57c73387d1d35043929c60a32ed2701f6632a2912259888da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#print_human",
      "name": "print_human",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L148-L175",
      "signature": "def print_human(result: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3c8d512f61234267eee90e17df592d0eb87ca800a6858c7d5b86d95061c8d56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#qiskit_version",
      "name": "qiskit_version",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L32-L36",
      "signature": "def qiskit_version() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b18e3a7b7b4c4e3f8442a7605fadee012b51478b726d23caed2a21c76488adf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qiskit/scripts/run_local_primitives.py#run_workflow",
      "name": "run_workflow",
      "kind": "function",
      "path": "skills/qiskit/scripts/run_local_primitives.py",
      "span": "L39-L112",
      "signature": "def run_workflow( shots: int, seed: int, theta_value: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "96633dcc5fb5a0cce47beebd4ea19813dc2c8f9eceeb436d46d1f1eef9ecc968",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L1-L371",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8519b7f7041f30e2548c3396431c556bfb7517ff148911927ee79451066e1dfb",
      "chars": 12072,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L61-L62",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d7454d72174c168c7a9ea73fd4d567bca97c876ff8aa87c919949c1298a5c043",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L65-L71",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d6b2d3f65bce4a282c445f59ccdcb0a550ef6f61049759891cad87ab19062a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#add_output_arguments",
      "name": "add_output_arguments",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L348-L359",
      "signature": "def add_output_arguments(parser: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54b87e79df805b9b64cfb5328a0333d25dffaeb74eaab975351b6307830e3a2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#bounded_dimensions",
      "name": "bounded_dimensions",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L208-L224",
      "signature": "def bounded_dimensions(value: Any, *, name: str = \"dims\") -> list[int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e2b9ac7544da1495e021c4bbb0b13425959e75fa2d251a634e5c2cb4ed2940b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L167-L180",
      "signature": "def bounded_int( value: Any, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c56d3d6545f878ab317ab1550341764802a2bab44e7f304fd4f348270148f9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L74-L99",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, suffixes: Iterable[str] = (\".json\",), max_bytes: int = MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "9651dffca997fc6e0cc38702d19e3b315b16272430b9c44728574d3f7806bd5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L102-L125",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "17d559246e09bff1a7ef78be9fd1e97b8cf819263826587e3cf188a6774b5d0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L36-L37",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "801b4cf3664d676198e2644b6c506b0fd2487fba4b21f7851a437a45486e99ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L316-L345",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2142e27852fa2ab66aa73bb014fd0bb2dcfe1d5517c2df37cd3f4dbd39518a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#ensure_strictly_increasing",
      "name": "ensure_strictly_increasing",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L255-L265",
      "signature": "def ensure_strictly_increasing(values: Sequence[float], *, name: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ff0c26e1e1366b8cb30c222a1d9a01f7f2fff6d7c226d3d43b09d1b07276b2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L183-L205",
      "signature": "def finite_float( value: Any, *, name: str, minimum: float | None = None, maximum: float | None = None, minimum_inclusive: bool = True, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "9da773be38af066f9c5b79e4bd23b2a2f1a48d22949288035cfffb04a886ae38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L128-L145",
      "signature": "def load_json_object(value: str | os.PathLike[str]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "85ddd5ce852229a0396ae36f6ce5a52f6955652685cd73cc58f16f2368243938",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#load_qutip",
      "name": "load_qutip",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L40-L58",
      "signature": "def load_qutip() -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "39a0b764718dd0206be869ba6198ac5c7c1149a72eb76b7100475ad363765285",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#parse_csv_ints",
      "name": "parse_csv_ints",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L227-L252",
      "signature": "def parse_csv_ints( value: str, *, name: str, minimum: int, maximum: int, max_items: int = MAX_SWEEP_RUNS, ) -> list[int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc34f6c018f2ccd272443813b3ff9a8bf4596047694b8d0c701956c255b03a4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L362-L370",
      "signature": "def run_cli(action: Callable[[], int | None]) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d561cc4e550dbca21ca7e88a5951478d865dde229f5886eb2460ecaaea27754b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#strict_json_bytes",
      "name": "strict_json_bytes",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L292-L313",
      "signature": "def strict_json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0bd0b9ec6764a3ecd5cf4c80e0a0093215228ea0cb04d06bb23eb35a3861cec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#to_jsonable",
      "name": "to_jsonable",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L268-L289",
      "signature": "def to_jsonable(value: Any) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "de7cffb52792c8b838bc49fdcd07bca90a07a4a09bd859e389ec8ec56194a2f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/qutip/scripts/_common.py",
      "span": "L148-L164",
      "signature": "def validate_keys( value: Mapping[str, Any], *, allowed: Iterable[str], required: Iterable[str] = (), context: str = \"object\", ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df1b8670f226587822b98f0db43244b87146f364259c9d8950a0081382b14f56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/convergence_sweep.py",
      "name": "convergence_sweep.py",
      "kind": "file",
      "path": "skills/qutip/scripts/convergence_sweep.py",
      "span": "L1-L359",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d341087e7d208b77e4b1ae180edf50401f0d11b1612a3e3598d5c51231cc8364",
      "chars": 12418,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/convergence_sweep.py#_base_config",
      "name": "_base_config",
      "kind": "function",
      "path": "skills/qutip/scripts/convergence_sweep.py",
      "span": "L51-L99",
      "signature": "def _base_config( *, solver: str, args: argparse.Namespace, time_points: int, trajectories: int, rtol: float, ) -> SimulationConfig",
      "exported": false,
      "origin": "ast",
      "body_hash": "277315fedae566b3b9837c2a8adf54c9cecab3e55a51f825ee9567c843df467e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/convergence_sweep.py#_parse_rtols",
      "name": "_parse_rtols",
      "kind": "function",
      "path": "skills/qutip/scripts/convergence_sweep.py",
      "span": "L27-L48",
      "signature": "def _parse_rtols(value: str) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "86e0b100267cc6371912df09d4baac683af6fc365e298d4b6615978beed7fdc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/convergence_sweep.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qutip/scripts/convergence_sweep.py",
      "span": "L309-L347",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1301998568d61a2cf81ab573266a536949f59517cb496c810cae266a965d28c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/convergence_sweep.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qutip/scripts/convergence_sweep.py",
      "span": "L350-L354",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e72e96ba4b7a601a61aaa0990963adf49648958264a8ccea90aa1b9898a18d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "name": "run_sweep",
      "kind": "function",
      "path": "skills/qutip/scripts/convergence_sweep.py",
      "span": "L102-L306",
      "signature": "def run_sweep( args: argparse.Namespace, qutip_module: Any | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "18ef226031b76fa6413554468c8a70131682cdb538b2fa98acb04a5b2319ca82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py",
      "name": "qobj_model_validator.py",
      "kind": "file",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L1-L328",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bc8a03260d1cf8b7a64d6b0ee7a9546acde24a01bc249a5fa501bffe9160ccfd",
      "chars": 10932,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#_complex_scalar",
      "name": "_complex_scalar",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L41-L56",
      "signature": "def _complex_scalar(value: Any, *, name: str) -> complex",
      "exported": false,
      "origin": "ast",
      "body_hash": "317b9f55a613689b20e5f7ad83ab3ed9eaf7d8a516637456e8f315ad9061521a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#_name",
      "name": "_name",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L33-L38",
      "signature": "def _name(value: Any, *, context: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f8e64d623468557b50e556a59973e1d41274983a87a640f0cae7b65c1541f5a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#_numeric_data",
      "name": "_numeric_data",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L59-L105",
      "signature": "def _numeric_data( value: Any, *, role: str, dimension: int, context: str, ) -> tuple[list[complex] | list[list[complex]], bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "38b5d80eee118d2f73b7fd313488afdfa5da534c1c521c1322f48ed1c7b8bf35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#_state_summary",
      "name": "_state_summary",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L108-L141",
      "signature": "def _state_summary(qobj: Any, *, tolerance: float) -> tuple[dict[str, Any], bool]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a87cea1cfbffb334c8088ffa3db07d394aff5b25d078e3e43f282ef40baf1e4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L306-L315",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "fedf777d12b399a3ae57be363ec6d48405ee60e800fe023b5f0b2567ac45a339",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L318-L323",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "afd25811979ebd5741dfd7cdf433ceb08aaaae685d186bbf5e962f2a0da1800d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "name": "validate_model",
      "kind": "function",
      "path": "skills/qutip/scripts/qobj_model_validator.py",
      "span": "L144-L303",
      "signature": "def validate_model(document: Mapping[str, Any], qutip_module: Any | None = None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "245d576574de3fe1cdbdd29c8bbec8bd903bcfba8062234b376128b48c9b544b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py",
      "name": "result_audit.py",
      "kind": "file",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L1-L396",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f886933613670c655e82f7635d586a1ca4a23d222464808649b7543a30283ed4",
      "chars": 12043,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#_audit_convergence",
      "name": "_audit_convergence",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L235-L315",
      "signature": "def _audit_convergence( document: Mapping[str, Any], *, tolerance: float, ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "73604422fb956f8f1d6aaab44612c2123277bf437f61d014e7a2130d5bcba747",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#_audit_simulation",
      "name": "_audit_simulation",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L57-L232",
      "signature": "def _audit_simulation( document: Mapping[str, Any], *, tolerance: float, ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ad776f187bcebbb993301f9f3a18c60f787059d2eb2ad75b37b954b6ed33d89f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#_check",
      "name": "_check",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L24-L39",
      "signature": "def _check( checks: list[dict[str, Any]], *, name: str, passed: bool, detail: str, severity: str = \"error\", ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "394c417412db12f67fbfc11c87c61c024595a5e8b10e1d6f7f14ae2f8d579619",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#_finite_sequence",
      "name": "_finite_sequence",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L42-L54",
      "signature": "def _finite_sequence( value: Any, *, name: str, maximum: int, ) -> list[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e91a38308e34c8f0d229c77de61d91c25c4e852a6e459c176f6a3d48ecb32395",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#audit_document",
      "name": "audit_document",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L318-L364",
      "signature": "def audit_document( document: Mapping[str, Any], *, tolerance: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "668726a728094882337457c7ed4a9ec10171812e2f2411544dd05fe015d41bb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L367-L377",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "212e30988f9e5113881f81eaabedbd20dfd6ea92ae9b1ffb7a88fa39177efd8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/result_audit.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qutip/scripts/result_audit.py",
      "span": "L380-L391",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d05ad8afff36a522cc3eed97a0aa12c5bd9a06ec9cf63663e3db02cb9dff060",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/solver_config_planner.py",
      "name": "solver_config_planner.py",
      "kind": "file",
      "path": "skills/qutip/scripts/solver_config_planner.py",
      "span": "L1-L298",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3c7b7fea5d43b8d94af15db5df809e36dc54133f4d3dd8859e806fed29bbc40b",
      "chars": 10090,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/solver_config_planner.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qutip/scripts/solver_config_planner.py",
      "span": "L262-L286",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "73dcd16af1ed14e37f1385e32f6f3f2d864de3f2e9cc26c2e9200a6922a8d48f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/solver_config_planner.py#create_plan",
      "name": "create_plan",
      "kind": "function",
      "path": "skills/qutip/scripts/solver_config_planner.py",
      "span": "L37-L259",
      "signature": "def create_plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "22ec7d3b183d75c923716feb58859cf993158a2da36fbe3073f87b5bd52935e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/solver_config_planner.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qutip/scripts/solver_config_planner.py",
      "span": "L289-L293",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b38bb9077bed09bc8acd72d8ed258454fc1575ae41f914e6de9f416ea7d42a5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "name": "steady_state_spectrum_planner.py",
      "kind": "file",
      "path": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "span": "L1-L246",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9fbc4016d1e636a49133d5a8ab585e70aef791a5390ef1e8e644ea9d9cd57cac",
      "chars": 7981,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/steady_state_spectrum_planner.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "span": "L203-L234",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9d4f9c0cd1f3784073bd083e23ed54365fc07550eb7e57f27bac0766e238a7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/steady_state_spectrum_planner.py#create_plan",
      "name": "create_plan",
      "kind": "function",
      "path": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "span": "L38-L200",
      "signature": "def create_plan(args: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "58e19b3039d9bca502b3a554f669f105bd2827aeeca75d76def570066cdbc509",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/steady_state_spectrum_planner.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "span": "L237-L241",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b38bb9077bed09bc8acd72d8ed258454fc1575ae41f914e6de9f416ea7d42a5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py",
      "name": "two_level_simulation.py",
      "kind": "file",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L1-L395",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e963c392215c7b2a471dd229d2dabf9e515f24fac2a0b124228a0bfd42651936",
      "chars": 12724,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#_initial_state",
      "name": "_initial_state",
      "kind": "function",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L140-L147",
      "signature": "def _initial_state(qutip: Any, label: str) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "6740fcbdda5950f463b534ad557031d1f970caaa12103a3b53359a52dc175985",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#_seed_manifest",
      "name": "_seed_manifest",
      "kind": "function",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L186-L200",
      "signature": "def _seed_manifest(seeds: Any) -> list[Any] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "262c850a6b112a8ddcdc94f1835c6b81338a9c3fe12499b7a349e48c75c7145a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#_state_audit",
      "name": "_state_audit",
      "kind": "function",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L150-L183",
      "signature": "def _state_audit(state: Any, tolerance: float) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a1942581b38b42198bc97971bb758b118a678de59646a39c63815a83137f0f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L353-L378",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "3397787525657e8b422f21eab63faef0457d5f10152ebf36fd2eed4f8957e7e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L381-L390",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "08379911e6ea406d129fe4a4fd5e77ffdbb3bfa98f2c47aecdfb3e4f7398bbd4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "name": "run_simulation",
      "kind": "function",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L203-L350",
      "signature": "def run_simulation( config: SimulationConfig, qutip_module: Any | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7e1a703a9baf8d01ab7f7d784fc377ca7735a7a2a683596797b6fcd693c28f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#SimulationConfig",
      "name": "SimulationConfig",
      "kind": "class",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L35-L137",
      "signature": "class SimulationConfig",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a4342d9c3d8e384aa80512ed5a3bd9b0aefce1691c2d946523377a72029fa18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/qutip/scripts/two_level_simulation.py#SimulationConfig.from_namespace",
      "name": "from_namespace",
      "kind": "method",
      "path": "skills/qutip/scripts/two_level_simulation.py",
      "span": "L51-L137",
      "signature": "def from_namespace(cls, args: argparse.Namespace) -> \"SimulationConfig\"",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfb586aed30a1844a97c3b726cd9c320ea3daf169a0ba60f65e94bf69e9898ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationConfig"
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py",
      "name": "molecular_properties.py",
      "kind": "file",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L1-L244",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ccedccdecfa1bb5290b41273bcb79e97cbca46dcfeec8bea7b344c654f923bdf",
      "chars": 7344,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py#calculate_properties",
      "name": "calculate_properties",
      "kind": "function",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L25-L89",
      "signature": "def calculate_properties(mol)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1dff69aa8319cfab6b5953b49aeb6273f0ebc9972d79a4a947f1572b090c45b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L205-L239",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d897d2bcb713a0bf8ece54bc6391b5715b533e8f5015982ca5cc0e34da4e4712",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py#print_properties",
      "name": "print_properties",
      "kind": "function",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L160-L202",
      "signature": "def print_properties(props)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2697c724aa6f9c7b4c82e4d2eeca5d37881c8d69dcef3b3b5bd129129fb8c3bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py#process_file",
      "name": "process_file",
      "kind": "function",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L103-L142",
      "signature": "def process_file(input_file, output_file=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0634e0a006bbea2351904ab2634dff4f707842c86b633799821b855cfe304aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py#process_single_molecule",
      "name": "process_single_molecule",
      "kind": "function",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L92-L100",
      "signature": "def process_single_molecule(smiles)",
      "exported": true,
      "origin": "ast",
      "body_hash": "79f8f3e765e57c2d48d6623f4e485015b994f9efb7aeccad1f199d3116c7b7dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/molecular_properties.py#write_csv",
      "name": "write_csv",
      "kind": "function",
      "path": "skills/rdkit/scripts/molecular_properties.py",
      "span": "L145-L157",
      "signature": "def write_csv(results, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a36c4322c74d0e1d1baee943093529529c319e66d20e45d06a7333f7d9dad72c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py",
      "name": "similarity_search.py",
      "kind": "file",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L1-L298",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ad10e99fb6ebd757d8025cf7c5e28cfb8f6094113e1438febf500c4af2cbac4a",
      "chars": 9529,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py#generate_fingerprint",
      "name": "generate_fingerprint",
      "kind": "function",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L35-L57",
      "signature": "def generate_fingerprint(mol, method='morgan', radius=2, n_bits=2048)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6cea53e94e52770dda8b0cd01947ec0658d40964be6239bc0ac749670d17e73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py#load_molecules",
      "name": "load_molecules",
      "kind": "function",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L60-L94",
      "signature": "def load_molecules(file_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c36db815f9665ca210453166cccc75828d45479015a20a77af6252a85dda6f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L198-L293",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "2882f0c98432eadd59d5d84ed4246eb68df9bf1d3a43c7cfd735cdc3ab2d64f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py#print_results",
      "name": "print_results",
      "kind": "function",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L176-L195",
      "signature": "def print_results(hits, max_display=20)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7cea8d547299405cb01c78a07370eb1e9d532936cf7b9445da88a43bc44c96e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py#similarity_search",
      "name": "similarity_search",
      "kind": "function",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L97-L154",
      "signature": "def similarity_search(query_mol, database, method='morgan', threshold=0.7, radius=2, n_bits=2048, metric='tanimoto')",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb1ff6f9be9fa0b1c7fee26e2ef862bd17459e1966c441d9198752a96f1aff31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/similarity_search.py#write_results",
      "name": "write_results",
      "kind": "function",
      "path": "skills/rdkit/scripts/similarity_search.py",
      "span": "L157-L173",
      "signature": "def write_results(hits, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f47b50577225500358806fc3cef453931f86ed8c10490359a25f2f083376f8f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py",
      "name": "substructure_filter.py",
      "kind": "file",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L1-L387",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fba23b8af4de411afca4eb2e59fd3206f27f1ab27c9ae0f6653a3574324b526f",
      "chars": 12337,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#create_pattern_query",
      "name": "create_pattern_query",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L95-L108",
      "signature": "def create_pattern_query(pattern_string)",
      "exported": true,
      "origin": "ast",
      "body_hash": "54a10634c522230b85e764a08c8ed5bce71cc6403e854f0cbe1d3030eb980921",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#filter_molecules",
      "name": "filter_molecules",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L111-L188",
      "signature": "def filter_molecules(molecules, include_patterns=None, exclude_patterns=None, match_all_include=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d9dac5130cbd2a7098341ba335e9fb57947b5deb6b5558a2d887a71174632a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#load_molecules",
      "name": "load_molecules",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L67-L92",
      "signature": "def load_molecules(file_path, keep_props=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1ae2a30e62c343c1c2d4e36ce237512065b6ed19479f9110a89f22a5ac337fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L254-L382",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ec6952056ee6674fce338a21c7d4acde883e118c449448147f43caa897a58cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#print_summary",
      "name": "print_summary",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L231-L251",
      "signature": "def print_summary(total, filtered, match_info)",
      "exported": true,
      "origin": "ast",
      "body_hash": "da7272da6d07ec4aa40fa0f2967ccabd50049f827aefa954e72817216ad23b67",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#write_molecules",
      "name": "write_molecules",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L191-L210",
      "signature": "def write_molecules(molecules, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c61dca37becc32e2268ef9d06893b2505b704cd9617c2eb699f04bd736e62866",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/rdkit/scripts/substructure_filter.py#write_report",
      "name": "write_report",
      "kind": "function",
      "path": "skills/rdkit/scripts/substructure_filter.py",
      "span": "L213-L228",
      "signature": "def write_report(match_info, output_file)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a76e5000ae8a23a70eea7f0578aa91b6cd55219711d9cf1f36b1aa6e9cfb5e4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L1-L288",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5b739935bb1428b40268adc1af8a20e567999d74b93adaf42e88bfb604432505",
      "chars": 11353,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#canonicalize",
      "name": "canonicalize",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L61-L93",
      "signature": "def canonicalize( frame: pd.DataFrame, id_col: str = ID_COL, time_col: str | None = None, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c84529c2686b77de86146be3c81342331ba32e08594befcfd87942432e8dcc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#forecast_metrics",
      "name": "forecast_metrics",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L253-L287",
      "signature": "def forecast_metrics( actual: Iterable[float], predicted: Iterable[float], lower: Iterable[float] | None = None, upper: Iterable[float] | None = None, ) -> ForecastMetrics",
      "exported": true,
      "origin": "ast",
      "body_hash": "93e8a7e7fb8bf41feb9dab6f0b81625d897a3c211de200bef148350b4bf717b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#ForecastMetrics",
      "name": "ForecastMetrics",
      "kind": "class",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L241-L250",
      "signature": "class ForecastMetrics",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbf3334b567f978c85c55ebe690321c98f50dc071882e19154cd61463d01e6d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#ForecastMetrics.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L249-L250",
      "signature": "def as_dict(self) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c71737df4e2a723781a22893093a9d6777d687eb1c0febebe1bd61dc897b2a59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastMetrics"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#parse_list",
      "name": "parse_list",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L230-L234",
      "signature": "def parse_list(value: str | None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec234922df94c5b4695df8e093f772930c6e8ecbe9f9a059bd4729467d0e8859",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#percent_of_baseline",
      "name": "percent_of_baseline",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L175-L227",
      "signature": "def percent_of_baseline( frame: pd.DataFrame, variables: Sequence[str], baseline_time: float | Sequence[float] | None = None, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "41eaf50a56e9fc37762ece70a78dfb4985e41ed236b4c1f935c57324ef17701f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#read_relsa_table",
      "name": "read_relsa_table",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L38-L58",
      "signature": "def read_relsa_table( path: str | Path, sep: str | None = None, id_col: str = ID_COL, time_col: str | None = None, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d4df4a7e029321abf92d90b4e58b762535280e44a4713841c29d0134ef67518",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "name": "RelsaDataError",
      "kind": "class",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L31-L32",
      "signature": "class RelsaDataError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8dba07eb4b600da2232f7cf6c5e4386cd97dce962de18f9eb463090fb52ff3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#score_to_percent",
      "name": "score_to_percent",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L144-L172",
      "signature": "def score_to_percent( values: Iterable[float], max_score: float, baseline_score: float = 0.0, ) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4007faf7b41f5d24881de293f35fa30afd823d344c62ccf1af578178177fec1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#validate",
      "name": "validate",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L105-L138",
      "signature": "def validate(frame: pd.DataFrame, variables: Sequence[str]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad82912baebe8e30c4c97d5b4a080e1386d19ec52ab486aa1e277ae67e099442",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/_common.py#variable_columns",
      "name": "variable_columns",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/_common.py",
      "span": "L96-L99",
      "signature": "def variable_columns(frame: pd.DataFrame) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d576c48a2192e229d0f81d5c8eab9375b207551dba97939521d01fec8d0f9be5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "name": "forecast_relsa.py",
      "kind": "file",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L1-L758",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "16867cb8f5de76e7a5b928babd06bc0d698dc6c21bf14db0fc0638f2d1e590e6",
      "chars": 29417,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_fit_one",
      "name": "_fit_one",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L119-L146",
      "signature": "def _fit_one( y: np.ndarray, order: tuple[int, int, int], drift: bool ) -> ArimaFit | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "535faaa77cd9794ba8eee4ab610cac032240e5dd2ccee3e34f2dec4298f45850",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_select_d",
      "name": "_select_d",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L99-L116",
      "signature": "def _select_d(y: np.ndarray, max_d: int) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "5a148f15a469ab10979aa3db0a72b28d42e3f0da325ef88e023c92a9b083bd9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit",
      "name": "ArimaFit",
      "kind": "class",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L84-L96",
      "signature": "class ArimaFit",
      "exported": true,
      "origin": "ast",
      "body_hash": "421cdec857c6dbb22c6e50c0102b17e132ac898c942242dcf6f0db0382a56e83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit.label",
      "name": "label",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L94-L96",
      "signature": "def label(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e24cb7526ed4184b1d6bde0d35078d3eb0ff4813d48b6b5ee89d17f20391ed3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArimaFit"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "name": "auto_arima",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L149-L235",
      "signature": "def auto_arima( y: Iterable[float], max_p: int = 5, max_q: int = 5, max_d: int = 2, d: int | None = None, allow_drift: bool = True, stepwise: bool = True, ) -> ArimaFit",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fec2c71cb18870c576d7b36dc71851bd012fe52f8c2bd86acf66ae9be7eff9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima.attempt",
      "name": "attempt",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L181-L187",
      "signature": "def attempt(order: tuple[int, int, int], drift: bool) -> ArimaFit | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "280fd42c55e51d88e4e62098f163916367ca20fee108be4c02f1f3b51f49ff2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L616-L651",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "10d6471554b6a6d6e33801ce3990783ebc17a963700aa151e7d3d5bae195e78d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast",
      "name": "Forecast",
      "kind": "class",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L242-L274",
      "signature": "class Forecast",
      "exported": true,
      "origin": "ast",
      "body_hash": "515ddd854095c2c72e3ffac4d8162de216b95f6a67da885a0fab000ae00d77aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "name": "forecast_animal",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L277-L372",
      "signature": "def forecast_animal( times: Iterable[float], values: Iterable[float], target_times: Iterable[float] | None = None, animal: str = \"\", interpolate_step: float | None = DEFAULT_STEP, alpha: float = 0.05, clip_at_zero: bool = True, **arima_kwargs, ) -> Forecast",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5a0a2f98082ed03802bcee41d30bb0d4e3d1ec8a7b17fb07969cb97799e6b0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_indirect",
      "name": "forecast_indirect",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L423-L470",
      "signature": "def forecast_indirect( prepared: pd.DataFrame, reference, target_time: float, animal: str = \"\", score_col: str = \"relsa\", **kwargs, ) -> dict[str, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa202c54a8bbd02e413a883178b54c58fbb86b040b44bcd7edde6b6370e6c3c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast.metrics",
      "name": "metrics",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L258-L261",
      "signature": "def metrics(self) -> ForecastMetrics",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a0042248c4ddcc952bc6732c4701082973a4f461490342a1495c6d850d2ae1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Forecast"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast.to_frame",
      "name": "to_frame",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L263-L274",
      "signature": "def to_frame(self) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "61594080052a7480d7a46b2bce8fb3ae8c0cd2223d3980bc21a1e3a6c83f1124",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Forecast"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#interpolate_series",
      "name": "interpolate_series",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L58-L77",
      "signature": "def interpolate_series( times: Iterable[float], values: Iterable[float], step: float = DEFAULT_STEP, ) -> tuple[np.ndarray, np.ndarray]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f56343339d65d94e2cc12d24ed2a253a47c0918632225de46c6fc20b3d0ec224",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L654-L753",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bca9866d7d598986b83483ba9c14b52f1c9d387e8b95bcdbd8a6f0429811dff0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#plot_forecast",
      "name": "plot_forecast",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L566-L610",
      "signature": "def plot_forecast( forecast: Forecast, path: str | Path, endpoint_threshold: float | None = None, zones: Sequence[float] = (), title: str | None = None, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0d9242373f15c706d0ce302835d583d68784c3601f9dd50477588369b3dacac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#predict_endpoint",
      "name": "predict_endpoint",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L378-L420",
      "signature": "def predict_endpoint( scores: pd.DataFrame, endpoints: dict[str, float] | None = None, score_col: str = \"relsa\", **kwargs, ) -> list[Forecast]",
      "exported": true,
      "origin": "ast",
      "body_hash": "805604442ccf20ca73f0efec59de62eeeed2cfc3a967fdba0ceaeb37e72592de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#rolling_forecast",
      "name": "rolling_forecast",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L473-L511",
      "signature": "def rolling_forecast( times: Iterable[float], values: Iterable[float], min_train: int = 3, animal: str = \"\", **kwargs, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "efdb6a7ea920ed4e363a576923abaea13fc4c7a22d7484a3586e121ff193d1b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "span": "L514-L563",
      "signature": "def summarize(forecasts: Sequence[Forecast], group: dict[str, str] | None = None) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "f918b2e43a8b8b84e9b0b5878ace0b7bfab6fe744f51b5acfd477419d0b832a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "name": "kde_thresholds.py",
      "kind": "file",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L1-L370",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5bbce63bb7d90aa2cdbdb68dbcdec41342e64ea2bab59e0b156b27fb65bfaee6",
      "chars": 14412,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_prune_thin_zones",
      "name": "_prune_thin_zones",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L156-L181",
      "signature": "def _prune_thin_zones( data: np.ndarray, minima: list[tuple[float, float]], min_zone_fraction: float, ) -> list[tuple[float, float]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ac9694825010a2826a8328868e52b366d102c0f19f77ff0f629dee860873d17b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_zone_counts",
      "name": "_zone_counts",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L148-L153",
      "signature": "def _zone_counts(data: np.ndarray, thresholds: Sequence[float]) -> list[int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9813de74735db7b6d634c558a0ba62bad5f453c9632878a0b3ceb32407828252",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L287-L319",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "973b029368765936f65f316c231dcccb2826fa192ff2126e474fd2614790dc14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#bw_nrd0",
      "name": "bw_nrd0",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L38-L54",
      "signature": "def bw_nrd0(values: np.ndarray) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fcc0888deb77535a3b5f06376c0eb2793972394503ca13b0da3954e9273f4d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#density_curve",
      "name": "density_curve",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L126-L145",
      "signature": "def density_curve( values: Iterable[float], bandwidth: float | None = None, grid_size: int = DEFAULT_GRID, cut: float = DEFAULT_CUT, ) -> tuple[np.ndarray, np.ndarray, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5221385e677e04a9534a78f173e1f7968ebf66f759dfec7d464bd1797c9d5d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "name": "find_thresholds",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L184-L237",
      "signature": "def find_thresholds( values: Iterable[float], bandwidth: float | None = None, grid_size: int = DEFAULT_GRID, cut: float = DEFAULT_CUT, n_thresholds: int | None = None, within_data: bool = True, min_zone_fraction: float = 0.02, ) -> ThresholdResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "e60484e318e7900076a07c694e2c210d186fcf563d0bcb3ce6c2317820d898fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L322-L365",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e91f24c213080ebaffbcd5398c04d445aa1cc99bf047c51bd5594ae15737d0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#plot_thresholds",
      "name": "plot_thresholds",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L240-L284",
      "signature": "def plot_thresholds( result: ThresholdResult, values: Iterable[float], path: str | Path, title: str = \"RELSA severity zones\", ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "7fe7f4766f31b25a0aebc71db6714e37ad2a0613c5535f7f5d62514277c2a642",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "name": "ThresholdResult",
      "kind": "class",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L58-L123",
      "signature": "class ThresholdResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa4bcf087fa939efb4f2569be04dfb2b24cc4c50c22e55f944184a426707d55b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L109-L123",
      "signature": "def as_dict(self) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ee456598d278328a4407498eaa206548f22cbd8400814570ea4c26a9e63b3e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdResult"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.assign",
      "name": "assign",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L83-L93",
      "signature": "def assign(self, values: Iterable[float]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "258cf848586ee57faca1e7f2e5dedff25ccf49836c5ffddb3d915194a763d75d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdResult"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.describe",
      "name": "describe",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L95-L107",
      "signature": "def describe(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "01f11bcb8ed2f8687ed6f2ff19e0bb5bf3eb87cce4c2f9d5d70ada11fa2051cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdResult"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_edges",
      "name": "zone_edges",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L69-L71",
      "signature": "def zone_edges(self) -> list[tuple[float, float]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5e4c183f2778d01050a625569ed11bbcb675b86aca7d90c9ae2dedd3811f102",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdResult"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_names",
      "name": "zone_names",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "span": "L73-L81",
      "signature": "def zone_names(self) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "029ac9790b2aa328db5ab52fc02c839d2a83301cf1fd1b3c036843db8f09f459",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdResult"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "name": "relsa_score.py",
      "kind": "file",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L1-L489",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a4016d59d810b78e0e82e12edbc35917a1d2761d2f726a3f61f815b6934fa9cd",
      "chars": 18869,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#_filter_group",
      "name": "_filter_group",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L328-L338",
      "signature": "def _filter_group(frame: pd.DataFrame, pairs: Sequence[str]) -> pd.DataFrame",
      "exported": false,
      "origin": "ast",
      "body_hash": "d6fbc155ae8bf79c393c20156a03e8c83d0a79ef30704e6e58431f9e60885ce6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#_parse_score_scale",
      "name": "_parse_score_scale",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L341-L354",
      "signature": "def _parse_score_scale(spec: str, frame: pd.DataFrame) -> tuple[str, tuple[float, float]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9b3fbdfc35f96e432628524ce13ddfa2d5ec6816fc5ddfc020f0bb721b3d8e55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#_warn_on_composition_change",
      "name": "_warn_on_composition_change",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L235-L264",
      "signature": "def _warn_on_composition_change(scored: pd.DataFrame, used: Sequence[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8d4272384e77d37d47c7f4fb148fa46d2985e9fc45bd4563e94bf121f2d4d50d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L357-L416",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "994ad3789523a3bdddd33d50696fee21fff15c133e734ef76b5209dbc6ab6084",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_reference",
      "name": "build_reference",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L125-L189",
      "signature": "def build_reference( frame: pd.DataFrame, variables: Sequence[str], turned: Sequence[str] = (), baseline_time: float | Sequence[float] | None = None, label: str = \"\", ) -> ReferenceModel",
      "exported": true,
      "origin": "ast",
      "body_hash": "39a9922b259bd045a50e139c0f370d8ae7ff9c6da8f530ffcc8ae9ab3f719230",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L419-L484",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd4a90f8970a2aa30ccec6c9e43aa777b17e3ccc4a999f585f5042c726c0f598",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#prepare",
      "name": "prepare",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L308-L322",
      "signature": "def prepare( frame: pd.DataFrame, normalize: Sequence[str] = (), baseline_time: float | Sequence[float] | None = None, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6741c9a4a50f929e42f657398eae122fa89cfbe98c7eca47c68c8240bb152b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "name": "ReferenceModel",
      "kind": "class",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L61-L122",
      "signature": "class ReferenceModel",
      "exported": true,
      "origin": "ast",
      "body_hash": "515cb70b7f4abc386cda3dff91c1aed7a8fcec5d3d8ae29b91cfe73240bf94e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel.describe",
      "name": "describe",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L110-L122",
      "signature": "def describe(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd2efc24f3a0b7f032c48070e149df534b417f1ff66636f173a53c5cd18029ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModel"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel.from_json",
      "name": "from_json",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L96-L108",
      "signature": "def from_json(cls, path: str | Path) -> \"ReferenceModel\"",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b596f6750503af080bfc2c7c5369aa6b9d7bac944418725720f3a8484b39206",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModel"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel.to_json",
      "name": "to_json",
      "kind": "method",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L81-L93",
      "signature": "def to_json(self, path: str | Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f97dd3e789ff3fa93c6dbba1ee2ac40ebb4671f5e7f8a96e1b0904fe7124348",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModel"
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_scores",
      "name": "relsa_scores",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L267-L305",
      "signature": "def relsa_scores( frame: pd.DataFrame, reference: ReferenceModel, drop: Sequence[str] = (), round_digits: int | None = 2, keep_meta: bool = True, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "72aa33692e737dd4e5663e4009953c064a721382aaa13cc48b3f8785536c19a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_weights",
      "name": "relsa_weights",
      "kind": "function",
      "path": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "span": "L195-L232",
      "signature": "def relsa_weights( frame: pd.DataFrame, reference: ReferenceModel, drop: Sequence[str] = (), round_digits: int | None = 2, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "54f5f8f94cab29ef4b7871ccfd6541c6493df3c0df10831564032a666193bce6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py",
      "name": "manuscript_packet.py",
      "kind": "file",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L1-L755",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8d7bbbdee631c9cb2d176b4dda9560c82ebf507ed453ad376c573f1498d323ba",
      "chars": 27047,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#_claim_map",
      "name": "_claim_map",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L416-L430",
      "signature": "def _claim_map(references: list[dict[str, Any]]) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "163835c2d578a5c1b8437bde5585715f1cf55ffc36d370921ae77a0895b5c9cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#_coverage",
      "name": "_coverage",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L512-L561",
      "signature": "def _coverage( references: list[dict[str, Any]], target_references: int ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e2eb69f4c9366071fd6a04904226d2e2026823a48021bf12e6121c022b645560",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#_host",
      "name": "_host",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L225-L226",
      "signature": "def _host(url: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b077f3247165b7884b7c19a67ddb4db3b0bff7e047ca15679cac173a55253416",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#_section_briefs",
      "name": "_section_briefs",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L475-L509",
      "signature": "def _section_briefs(references: list[dict[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a95944583cec1755d635717a9dfc152d08e7a1ce4386978b655fdc9777155554",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#_synthesis",
      "name": "_synthesis",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L433-L472",
      "signature": "def _synthesis(references: list[dict[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9534bbbb3fcc38b506683115fa6b0f1c22e652362d35d4674f5e81ef09ddf33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#bibtex_text",
      "name": "bibtex_text",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L688-L716",
      "signature": "def bibtex_text(references: list[dict[str, Any]]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "7394f1ad43cb81dd8418e0a0ade2565c41fa276d2cc3030cecd0cb00af932480",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "name": "build_manuscript_packet",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L564-L611",
      "signature": "def build_manuscript_packet( *, query: str, sources: list[dict[str, Any]], search_ledger: list[dict[str, Any]], target_references: int = 60, manuscript_context: dict[str, Any] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "21aa8cb7b0eb25422faa3719a9c1b87f1984380db56a5026a130a136875ae308",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "name": "canonicalize_url",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L99-L113",
      "signature": "def canonicalize_url(url: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c317ebc76eb0c36ab7af482981683d005d3aad1b0b73ad99a1faf5512ea0204",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#citation_text",
      "name": "citation_text",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L614-L627",
      "signature": "def citation_text(reference: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e425fb9b7a9cef8004fe684639fb8f4fa3f10c837e324920c867a9a202a5edf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#classify_publication",
      "name": "classify_publication",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L177-L183",
      "signature": "def classify_publication(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cb547df11ff5b194a43c84ebe3feef713d6b726a4b003977c65961ba493ed80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "name": "deduplicate_sources",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L239-L291",
      "signature": "def deduplicate_sources(sources: Iterable[dict[str, Any]]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1086fd4e7984036cabd1a20160fc33bb4766dc7c94e5998e8a47e528ae7f2d07",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#evidence_quality",
      "name": "evidence_quality",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L186-L201",
      "signature": "def evidence_quality( publication_type: str, *, preprint: bool, retracted: bool ) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "531318a8ebcfbd5be234db216779f5e81440076b0f79ac1df496ab740b2bef0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#extract_doi",
      "name": "extract_doi",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L133-L138",
      "signature": "def extract_doi(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6a3179d434496a5d6a6170bbef697a0ee97db1c7cfc7d3289574008ce2ac231",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#extract_label",
      "name": "extract_label",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L157-L165",
      "signature": "def extract_label(text: str, labels: Iterable[str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab32585022c227736810e23519789fc7edebfeef42b009f7b7e4778a67ab0eb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#extract_pmid",
      "name": "extract_pmid",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L141-L144",
      "signature": "def extract_pmid(text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "63db0a6cb0495d8aa7d6bba3be21abcb39258c92da9bf1c056a8cef817c8377d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#extract_year",
      "name": "extract_year",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L147-L154",
      "signature": "def extract_year(source: dict[str, Any], text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5caf1519965b6d97a988f8a95999fa45fc97d74c3e16b7723d80ec285bfe89c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#is_preprint_url",
      "name": "is_preprint_url",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L234-L236",
      "signature": "def is_preprint_url(url: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e489126a3817e48bae965f737aac19517342c9c464adbf3361fcb2eb7a93d0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#is_scholarly_url",
      "name": "is_scholarly_url",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L229-L231",
      "signature": "def is_scholarly_url(url: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "39aab8a4bb07870bba9b65f2d7b2d2738d745a1cd22c8de063abba3fd0c8b5ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "name": "normalize_reference",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L294-L387",
      "signature": "def normalize_reference(source: dict[str, Any], index: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7b272db651b3fad5d289b806b2faa6063bef83854be0324902f079bb0b36dff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#normalize_title",
      "name": "normalize_title",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L116-L118",
      "signature": "def normalize_title(title: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4a2aac2e90e66511888644964742a8257bb0e0143b176edd2d949b41620e920",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#packet_markdown",
      "name": "packet_markdown",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L630-L685",
      "signature": "def packet_markdown(packet: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "31d0cc45691f145675879ba74b56fb32a81d451f5d866ad98d1c22d5e38676d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#reference_score",
      "name": "reference_score",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L390-L413",
      "signature": "def reference_score(reference: dict[str, Any]) -> tuple[int, int, int, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "87f6f3023a185f78bf30aa220d67ed134ca811f804788ee3826b179d3652362e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#relevance_tags",
      "name": "relevance_tags",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L204-L222",
      "signature": "def relevance_tags(text: str, publication_type: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ad117294227c9fa20f4e21cf08f77c37bdd093c7d1bed615f0cf08d917bda8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#save_packet",
      "name": "save_packet",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L719-L754",
      "signature": "def save_packet(packet: dict[str, Any], directory: str | Path) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c71cbfe855f1ade7a50f06c7b3d8814940beae294e3c321da088d3416335ed60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#source_text",
      "name": "source_text",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L121-L130",
      "signature": "def source_text(source: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "288683edbdc94a1f19ad5f94ee4d08cee55fc3a76992e539e71d839bcdebb2e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/manuscript_packet.py#split_sentences",
      "name": "split_sentences",
      "kind": "function",
      "path": "skills/research-lookup/scripts/manuscript_packet.py",
      "span": "L168-L174",
      "signature": "def split_sentences(text: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bb738ffa511118f43dd3d3eb731de4eebf874ccb066658905baee2a1c8d4e1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py",
      "name": "research_lookup.py",
      "kind": "file",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L1-L1205",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "068f031b8aadb43e11c49b0eb15e2727bc34319ae5072f07bd5d5b15145a7b52",
      "chars": 45733,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#_load_context",
      "name": "_load_context",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L979-L985",
      "signature": "def _load_context(path: str | None) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5697eeeee616668e9522452dcdb2e00cb119e6e1bd0201d099c51b0407986f89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#_render_human_result",
      "name": "_render_human_result",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L999-L1025",
      "signature": "def _render_human_result(result: dict[str, Any], index: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "327f98fbbd380f16fea529870d42691bab3098d502ca604028a7c43c5e0aea06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#_slug",
      "name": "_slug",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L995-L996",
      "signature": "def _slug(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "df0725417d22d657ae92aeb6437eaf512867efb8039b2aa535e88bf39f7b01ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#_split_domains",
      "name": "_split_domains",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L988-L992",
      "signature": "def _split_domains(values: list[str] | None) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f962a20d99daa6c7cb1e09c69d31714c7fca8a76045e4cc20081b104fc185c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L1028-L1141",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fa9d523a81b4db4e59205b54905ff79b7073624b30c72d8e52e925cfee2d3b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L1144-L1200",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b976970b1fb83fe051fa2df1bfe50a2821c059e18415c8a60a4000a9b347e1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "name": "ResearchLookup",
      "kind": "class",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L133-L976",
      "signature": "class ResearchLookup",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bd527b862e0fa2517f77de09ec737014aede651a566954e632a961a111789f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L143-L236",
      "signature": "def __init__( self, force_backend: str | None = None, *, academic: bool | None = None, target_references: int = DEFAULT_TARGET_REFERENCES, search_mode: str = \"basic\", max_results: int = DEFAULT_MAX_RESULTS, include_domains: list[str] | None = None, after_date: str | None = None, extract_limit: int | None = None, extract_batch_size: int = DEFAULT_EXTRACT_BATCH_SIZE, processor: str = \"pro-fast\", chat_model: str = \"core\", previous_interaction_id: str | None = None, allow_perplexity_fallback: bool = False, manuscript_context: dict[str, Any] | None = None, cli_timeout: int = 300, research_timeout: int = 3600, )",
      "exported": false,
      "origin": "ast",
      "body_hash": "a6fe46e8c45d49a12cad98b59258d960095ccffe5a5bcbe2d0d900fa547c2f5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_api_citations",
      "name": "_extract_api_citations",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L832-L881",
      "signature": "def _extract_api_citations( response: dict[str, Any], choice: dict[str, Any] ) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f49e12482c3be39bf7b19d84f0c68c8eb1d9ce742f888717d1fd75d787e57a3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_citations_from_text",
      "name": "_extract_citations_from_text",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L884-L908",
      "signature": "def _extract_citations_from_text(text: str) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f76cb861e4efcd74b6caca1158c366650d1dfb7b3c89ef370d00f4b2cd916a00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "name": "_extract_sources",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L380-L447",
      "signature": "def _extract_sources( self, sources: list[dict[str, Any]], search_ledger: list[dict[str, Any]] ) -> tuple[list[dict[str, Any]], list[dict[str, Any]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "06b49c7f946273afa189eb2d6d940faca87b707d68a102977b92c8177132a0ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._failure_result",
      "name": "_failure_result",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L911-L919",
      "signature": "def _failure_result(query: str, backend: str, exc: Exception) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a2a205da507d99d1ae03f7544cb3c57a08d78b5138f4b8e1a2e1fbf6c83b669f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._find_report_text",
      "name": "_find_report_text",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L603-L622",
      "signature": "def _find_report_text(payload: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "c55985aa8c8435c308af7cfb42e2df11a51a5bc09b65dfe88f9858ade6433086",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._is_academic_query",
      "name": "_is_academic_query",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L249-L253",
      "signature": "def _is_academic_query(self, query: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "beedebd4345a9788154415736dfbc1791045918625b4814bc243729d2dd69a41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_chat",
      "name": "_parallel_chat",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L705-L759",
      "signature": "def _parallel_chat(self, query: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "fd42efb4bc8412f61a1b43bfb3f06f05a9d84545713b8d198be73652499bb6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "name": "_parallel_research",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L651-L703",
      "signature": "def _parallel_research(self, query: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ac67f7e698d20d7ada86944b432bc8f7a2761f2b601543814d5e4b68cdf6f1a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "name": "_parallel_search",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L449-L600",
      "signature": "def _parallel_search(self, query: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "339f9b90fb46f5cadde562dbeecb8ebb1d65f1803985cf8bb333caa049ea2ff2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._perplexity_lookup",
      "name": "_perplexity_lookup",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L761-L829",
      "signature": "def _perplexity_lookup(self, query: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90cf57adcadace1869e349d07ffe670351976e44e876a70c38fc7e21ea55ca67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._query_with_context",
      "name": "_query_with_context",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L255-L265",
      "signature": "def _query_with_context(self, query: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "a1039bd331ec2105186e9f6b5813c934ea6c4b48430dc5538e078831658801eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._rank_sources_for_extraction",
      "name": "_rank_sources_for_extraction",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L370-L378",
      "signature": "def _rank_sources_for_extraction( self, sources: list[dict[str, Any]] ) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6b3a789c9f25c44a0b6ebaa911b6b2d31a5c2c6198e4a4e7bf3aa53ace4772d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._run_parallel_cli",
      "name": "_run_parallel_cli",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L267-L297",
      "signature": "def _run_parallel_cli( self, args: list[str], *, timeout: int | None = None ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7e1cdbd076e62eab83204a6eff850560305a6f9571a7f294c0e931c9528eba1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._search_once",
      "name": "_search_once",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L308-L368",
      "signature": "def _search_once( self, *, objective: str, keyword_queries: tuple[str, ...], facet: str, academic_domains: bool, mode: str, session_id: str | None = None, apply_after_date: bool = True, ) -> tuple[dict[str, Any], dict[str, Any], list[dict[str, Any]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "db493ea1764199c6d0151a43e2351b2c2eaf2986e67dc79dd8a9b6b890771962",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._select_backend",
      "name": "_select_backend",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L238-L247",
      "signature": "def _select_backend(self, query: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "38bd0316479ad965f641f2dc6c217d84a4b57b111d80068379775abe1997b44d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload",
      "name": "_sources_from_payload",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L625-L649",
      "signature": "def _sources_from_payload(payload: Any) -> list[dict[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "081d9e0ac0e50fde22e50a90ca1d2647f0e3d5a388b2808262b42fe00cd9bd5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload.walk",
      "name": "walk",
      "kind": "function",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L628-L643",
      "signature": "def walk(value: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52e44dc22eb2f4d6a8b01e343e4d8096f3ebd87ffef0e92a24d763e03d9acf26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._usage_counts",
      "name": "_usage_counts",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L300-L306",
      "signature": "def _usage_counts(payloads: list[dict[str, Any]]) -> list[dict[str, Any]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "94e5f6146b63aa8426639035982af3d29b57e50e8c2d3783fb68af6a0c953c36",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.batch_lookup",
      "name": "batch_lookup",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L961-L976",
      "signature": "def batch_lookup( self, queries: list[str], delay: float = 1.0 ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee618dfd31305bde2fa28d58826ed570b3f8cfb7902e39a7281f4e08bdd898a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "name": "lookup",
      "kind": "method",
      "path": "skills/research-lookup/scripts/research_lookup.py",
      "span": "L921-L959",
      "signature": "def lookup(self, query: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "10dd04d623491268fa87fbca5bab8742368da4fc89d3a3f4bcf3fbbcddf400d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResearchLookup"
    },
    {
      "id": "skills/scanpy/assets/analysis_template.py",
      "name": "analysis_template.py",
      "kind": "file",
      "path": "skills/scanpy/assets/analysis_template.py",
      "span": "L1-L302",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "04738a59135964e9cede246a87d962a29f670aed2435c564af2b1b31128ea7a2",
      "chars": 9804,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L1-L128",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a5a5af5989b3d219ee9c729d9b19de3c4d9d50cf519557e1162a4c68b7f4ad07",
      "chars": 4459,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#_import_scanpy",
      "name": "_import_scanpy",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L27-L32",
      "signature": "def _import_scanpy()",
      "exported": false,
      "origin": "ast",
      "body_hash": "9b721c8326155d55b3e3ada8a4ba80781520fea5986b1db863bc6070241da5c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#_named_keys",
      "name": "_named_keys",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L107-L113",
      "signature": "def _named_keys(mapping)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5fd49bb4c9e152c19ed5a2bf695601f1fb9c85640e8ed39e3f3c53425997e7dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#add_io_args",
      "name": "add_io_args",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L96-L104",
      "signature": "def add_io_args(parser, default_output=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "61279cc97327b15162fe694c82da6331748585eb478ec6e6007c0ad6c3b4d7bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "name": "configure_scanpy",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L35-L50",
      "signature": "def configure_scanpy(figdir=\"figures\", dpi=120, verbosity=1, autosave=False, file_format=\"png\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a1c0629c65a3411a770360351ac254cf8cb2738c08bf19a1ada29aa00fb05e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#die",
      "name": "die",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L21-L24",
      "signature": "def die(msg, code=1)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e25145a6a143497640a1806845d425c0b60247fd78d272929b517f8c23f201ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#info",
      "name": "info",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L16-L18",
      "signature": "def info(msg)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4be519591d2b5d9ccd75133a5ecedb314ff412e15235e4bb20895ff73a7f7df5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#load_anndata",
      "name": "load_anndata",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L53-L85",
      "signature": "def load_anndata(path, var_names=\"gene_symbols\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "1dd90c90ee7f7178a6ead798ae6a6e1a4b5daba3cef7d1b2796d5647c1ebbbc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#save_anndata",
      "name": "save_anndata",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L88-L93",
      "signature": "def save_anndata(adata, path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f30d4d60e87f42629b2a5db5cfdb146f02482fa577c42d3d56a1a46eb8213c05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/_common.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/scanpy/scripts/_common.py",
      "span": "L116-L127",
      "signature": "def summarize(adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "199682e4d5d8a5bdddb5c2721402c322901e606661a7516f1d2a8ba109034e12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/annotate.py",
      "name": "annotate.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/annotate.py",
      "span": "L1-L85",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "618f2313c813d48ec89bc11f5b4d26b78b7087547e3d24bcbe30b1d1f06ab68b",
      "chars": 3604,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/annotate.py#load_mapping",
      "name": "load_mapping",
      "kind": "function",
      "path": "skills/scanpy/scripts/annotate.py",
      "span": "L29-L37",
      "signature": "def load_mapping(path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a9ca8633912247ed5c851855134412a7b21b0149d599815aac21509feea7c47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/annotate.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/annotate.py",
      "span": "L40-L80",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "5acf42d82e4e6af7ee3808ad1fb1771fc0433a43a9fb30ef6bd217a6bbf156b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/batch_correct.py",
      "name": "batch_correct.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/batch_correct.py",
      "span": "L1-L66",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "27b8d63dad8112d9b7b74f0e4266c589fdc677990894897ddd6c3333a7c980f3",
      "chars": 2745,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/batch_correct.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/batch_correct.py",
      "span": "L26-L61",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c458a54aa7cf77a7a2156a2515a7ffc0a2122f310d684f8b94bc475e31c3f1a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/cluster.py",
      "name": "cluster.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/cluster.py",
      "span": "L1-L64",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4b3e8d97351b22452d9898d14bda28759fc35bb885c85c7a99bca0e88b028c7f",
      "chars": 2523,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/cluster.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/cluster.py",
      "span": "L20-L59",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "41e840c590c377d7cb571e5affde2393ef489203a4c7260514dd839aef31bd79",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/convert.py",
      "name": "convert.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/convert.py",
      "span": "L1-L44",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "05e4ced7479b99ed2d98154da1b7c35f822f95ddf1ff25a27b4b6c821f2b9647",
      "chars": 1512,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/convert.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/convert.py",
      "span": "L21-L39",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f057b812b80d6bc2d59e5489b1a5267531b5339d93910bfaae07c3af74cff3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/find_markers.py",
      "name": "find_markers.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/find_markers.py",
      "span": "L1-L76",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bacc3b002db324f52923b2a563aec13be96d92be737024e5e5d629769cc976be",
      "chars": 3445,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/find_markers.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/find_markers.py",
      "span": "L25-L71",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2211f22d97e28c8714333cf448a6f6b2ec47e670b4b45b97063f16c51c93551",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/inspect_data.py",
      "name": "inspect_data.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/inspect_data.py",
      "span": "L1-L82",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "85b9c48683b7e0fd07dda63d34f7155e3f2aa4f74e1a856401931017297ec32f",
      "chars": 2886,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/inspect_data.py#_is_integer_matrix",
      "name": "_is_integer_matrix",
      "kind": "function",
      "path": "skills/scanpy/scripts/inspect_data.py",
      "span": "L22-L28",
      "signature": "def _is_integer_matrix(X, n=10000)",
      "exported": false,
      "origin": "ast",
      "body_hash": "87eaf9479df4d46c8aa0b3da16de96e692ddd0a5b5c6c78fc2d7e11809334b66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/inspect_data.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/inspect_data.py",
      "span": "L31-L77",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b00eeb72af431ba3ab4cf13a8f818f7a675723b2481303aa691cabc57ba666d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/plot.py",
      "name": "plot.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/plot.py",
      "span": "L1-L79",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e682e73f7701f52e2d254cec07368e27a7ff2520609bfa764ab68762c65fb38b",
      "chars": 3595,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/plot.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/plot.py",
      "span": "L25-L74",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "60ba93a932ba4af9302960fb7534b59477303d6e8413de354829224971c8795a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/preprocess.py",
      "name": "preprocess.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/preprocess.py",
      "span": "L1-L89",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dc0609c9395b66119d1ecff7a0ee7922ac9f4de5f789d370d545f49c4e79af53",
      "chars": 3801,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/preprocess.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/preprocess.py",
      "span": "L22-L84",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcc23c5bede24413d4af444cc14d250eb6a7aa7b9a9373db858256b2fcaa2f93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/pseudobulk.py",
      "name": "pseudobulk.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/pseudobulk.py",
      "span": "L1-L75",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9a236d391772a606aef7268ee85f85fd089a322c0a442d22723244135334f0ec",
      "chars": 2970,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/pseudobulk.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/pseudobulk.py",
      "span": "L22-L70",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0686311dbb782b05b005b96d5c8a54815a22bd58284596daa9b118c1832fdf4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/qc_analysis.py",
      "name": "qc_analysis.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/qc_analysis.py",
      "span": "L1-L105",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ef19d4e14eaacf74e18779c79e27bd91a0026a08d5afb9076b2b8a457aef53ee",
      "chars": 4645,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/qc_analysis.py#annotate_gene_classes",
      "name": "annotate_gene_classes",
      "kind": "function",
      "path": "skills/scanpy/scripts/qc_analysis.py",
      "span": "L22-L28",
      "signature": "def annotate_gene_classes(adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b0c9902cd19613539d0a9fc4f37f02996db78e7fd7c2ace6301c7244a4cb692",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/qc_analysis.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/qc_analysis.py",
      "span": "L43-L100",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a83135bd4a3c8be507cbe7544fe5096f7027a65ce22ac5122f498e754629cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/qc_analysis.py#make_qc_plots",
      "name": "make_qc_plots",
      "kind": "function",
      "path": "skills/scanpy/scripts/qc_analysis.py",
      "span": "L31-L40",
      "signature": "def make_qc_plots(sc, adata, prefix)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bcbe1dc7ddaf6e14d12ac3923db0848dcdb35f26aeae5736abf775889bd510ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/reduce_dimensions.py",
      "name": "reduce_dimensions.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/reduce_dimensions.py",
      "span": "L1-L65",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "da2ac60c74b7f37454a4cd7ecd3468760e7b42eaec0663cd14f476ece0775c9f",
      "chars": 2684,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/reduce_dimensions.py",
      "span": "L20-L60",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fb5c9c9ab33061e3ef07640f0d090796349e902c8181729b83527ecdc95fe5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/run_pipeline.py",
      "name": "run_pipeline.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/run_pipeline.py",
      "span": "L1-L183",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4b29a7103d94e9d74a7374ce521f962f2c1f9b33ad03980a9334c2f4d4cab564",
      "chars": 8112,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/run_pipeline.py#apply_config",
      "name": "apply_config",
      "kind": "function",
      "path": "skills/scanpy/scripts/run_pipeline.py",
      "span": "L62-L68",
      "signature": "def apply_config(args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e9bada8cfb08943b55e71b18377fc728c7dd8ae8fe86e7bab162919a7f926e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/run_pipeline.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scanpy/scripts/run_pipeline.py",
      "span": "L29-L59",
      "signature": "def build_parser()",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3fa008a5e7723486defedf379923c24821a22c773a7ebb461c88118f64d627a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/run_pipeline.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/run_pipeline.py",
      "span": "L71-L178",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b5e9d6f93fe5e39f4ead046566ef475bc5100794219b17e83c4a277bd8ae717",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/score_genes.py",
      "name": "score_genes.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/score_genes.py",
      "span": "L1-L83",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "aeae41cc21cbb4aa3c01f2d147a5d57e4dc91f2def0c713c25f649f4046ff3e4",
      "chars": 3743,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/score_genes.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/score_genes.py",
      "span": "L38-L78",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8a452aed353120d2fc703073add1984fc315df5265e2c8d77441348f2a81ac5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/subset.py",
      "name": "subset.py",
      "kind": "file",
      "path": "skills/scanpy/scripts/subset.py",
      "span": "L1-L65",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0ced74ab825beb7c12fb085a20334f3b454ddb2e84660aaf81dc6ba60a8fe004",
      "chars": 2533,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scanpy/scripts/subset.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scanpy/scripts/subset.py",
      "span": "L19-L60",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ec202c63c881da7ec147b25f99d28e023c9ac27c7fa0a7577d90a1fcf3ce6be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L1-L987",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "77f2c1776edf1ac4d464d00bd634e275da3c1125009bb6971b72a385e7dee177",
      "chars": 35586,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#_check_local_file",
      "name": "_check_local_file",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L115-L125",
      "signature": "def _check_local_file(path: Path, suffix: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "62e7ccf18513b8cd1601be270466373f95653461d376b6d273e47ad6b1915eb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#_pairs_no_duplicates",
      "name": "_pairs_no_duplicates",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L106-L112",
      "signature": "def _pairs_no_duplicates(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c74aba2a64897c507aee382a1db881786c458bf4a47e8ae77519b23aa87f49f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#_scan_structure",
      "name": "_scan_structure",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L128-L160",
      "signature": "def _scan_structure(value: Any, path: str = \"$\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6f31fd41004fd425e26390a710e4f6e727903e8f2ded3aac7ef6845e3aefcf2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#_validate_proxy_absence",
      "name": "_validate_proxy_absence",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L366-L379",
      "signature": "def _validate_proxy_absence(value: Any, path: str, issues: list[Issue]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "9000e93796a57767aa12162f01cddbdf72fe7ba0361718f0b7670cbf8f49b929",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "name": "_validate_scale",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L324-L363",
      "signature": "def _validate_scale(scale: Any, issues: list[Issue]) -> tuple[float, float, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "91ffa0e02424a9b083904ac8065e60082ac3a0c9d5c8cfb207783ea2c22836d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#error_issues",
      "name": "error_issues",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L855-L856",
      "signature": "def error_issues(issues: Iterable[Issue]) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d01b480bec9850d3262b63422fb002d9c6db0895d6dd3494890ce3904f885a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#exact_keys",
      "name": "exact_keys",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L255-L270",
      "signature": "def exact_keys( value: Any, expected: Iterable[str], path: str, issues: list[Issue], ) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4edf7512e5255ce08c5abb33f23bb424fd618fe6fce061748d10082b708985b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#failure_report",
      "name": "failure_report",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L214-L219",
      "signature": "def failure_report(error: ValidationError) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b475a4d66317d935f4bee3d3c60565d59d59bc0be726e5ca1c8075e046e7b30",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#is_date",
      "name": "is_date",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L245-L252",
      "signature": "def is_date(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "9998c57d5cc197dcbccc64478082385631b11edae8268e30eab83b74df7bae87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#is_identifier",
      "name": "is_identifier",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L226-L227",
      "signature": "def is_identifier(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "945651ffea4a8ba9d413d1c716fa07e357bae23f40b7168534d5d5200db4f8c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#is_nonempty_text",
      "name": "is_nonempty_text",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L230-L231",
      "signature": "def is_nonempty_text(value: Any, maximum: int = MAX_TEXT_CHARS) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b82a6c85789ccbd6810328543ac61b6e9b26a0febbe616b73378f97b83c2af4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#is_number",
      "name": "is_number",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L222-L223",
      "signature": "def is_number(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "71c7454a9c097193f06df0a4022e1b454731bfd30ee28bf99bda69c03bb862f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#is_reference",
      "name": "is_reference",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L234-L242",
      "signature": "def is_reference(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7072af3a149303588d545996a3aa3466a35f4b2f83fd423cbc3c0cea13387f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "name": "Issue",
      "kind": "class",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L95-L103",
      "signature": "class Issue",
      "exported": true,
      "origin": "ast",
      "body_hash": "87ebf33232cfd0ca47b89069e03471e97a6979a6678354ee2cc3769f6e4d6b6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#Issue.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L102-L103",
      "signature": "def as_dict(self) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "690a05ee04fd18784913ec7ceff37e32eec963dfd0b43d697b6bbc489c5bd1b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Issue"
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#read_csv_text",
      "name": "read_csv_text",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L181-L189",
      "signature": "def read_csv_text(path: Path | str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "55ea33be53ef2292b3d0f80564ce9f4568a956d047305fb7f66a7d1e5b4c70ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L163-L178",
      "signature": "def read_json(path: Path | str) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "273b4443441c10e995c056a577af9aca9708a57ee47ba7e0fd81b14f7ee68ff1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#require_valid",
      "name": "require_valid",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L859-L862",
      "signature": "def require_valid(issues: Iterable[Issue]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdf7f7316e37fe747a89938acf63d6af27979275e71af3fd75cebdcbeb1169b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#rounded",
      "name": "rounded",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L865-L868",
      "signature": "def rounded(value: float | None) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2507b4b935c6973084f935a3dbc3af35185d2792463f0a795a04d436c4ae1db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#scale_values",
      "name": "scale_values",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L728-L733",
      "signature": "def scale_values(rubric: dict[str, Any]) -> set[float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc3a49aa367983f08d4a5c11873befc406106a9ce11548c3bd71c1b97a11cee6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#score_evaluation",
      "name": "score_evaluation",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L878-L986",
      "signature": "def score_evaluation( rubric: dict[str, Any], evaluation: dict[str, Any], *, weights: dict[str, float] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7800b29c9d87d6e9590e024c5f6844e69b3ffa381b3eff34c6257c1cc75fe308",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_bool",
      "name": "validate_bool",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L298-L300",
      "signature": "def validate_bool(value: Any, path: str, issues: list[Issue]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "826913e458c1e8447286de2e5b3271c60f3f05e0f88e817791e122181bfe02df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "name": "validate_evaluation",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L736-L852",
      "signature": "def validate_evaluation( evaluation: Any, rubric: dict[str, Any] ) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb8a7b97503055d33182ef5359e593b6b71c5e6381accc7b060de458551b7cfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_identifier",
      "name": "validate_identifier",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L273-L277",
      "signature": "def validate_identifier( value: Any, path: str, issues: list[Issue], code: str = \"IDENTIFIER_INVALID\" ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba613f69f19ffed438b0f6f592715fa86fd107747a8ec637173d38057f43eb12",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "name": "validate_reference",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L280-L286",
      "signature": "def validate_reference( value: Any, path: str, issues: list[Issue], *, allow_empty: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c305d2599f8603c10ba0d4d113492545f2ce071245613dc5e4c79a72f6ea3177",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "name": "validate_rubric",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L382-L725",
      "signature": "def validate_rubric(rubric: Any) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "706b2b626673b8c0cf60c3e8147309a8e4de955f6c5520a2062e4dcb0ed5dcc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "name": "validate_text",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L289-L295",
      "signature": "def validate_text( value: Any, path: str, issues: list[Issue], *, allow_empty: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "309286d36e7b36084b0afbbd25c058e038a95a7beb76bd372f53ef9f80591dd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#validate_text_list",
      "name": "validate_text_list",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L303-L321",
      "signature": "def validate_text_list( value: Any, path: str, issues: list[Issue], *, minimum: int = 0, maximum: int = 100, references: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0a9de7c844ed5f7581ad187eabd77f8dea908355120e9271c23ff40040420ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L85-L91",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c505cc6678c76bd5d898c4ff7dfbb2fc7e5b8c78c8500cb8065597ccdde6cf5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#ValidationError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L88-L91",
      "signature": "def __init__(self, code: str, path: str = \"$\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e9d3cfa4b2fd5f59b8ca496f2a8346dfd6e43f562a1f0cee88f64824a1433d90",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationError"
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#weights_by_criterion",
      "name": "weights_by_criterion",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L871-L875",
      "signature": "def weights_by_criterion(rubric: dict[str, Any]) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3d2b323fee9a3e4f0291617cdd8740593e0781911d7f11cdd2211b7fb255040",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/_common.py#write_json",
      "name": "write_json",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/_common.py",
      "span": "L192-L211",
      "signature": "def write_json( value: dict[str, Any], output: Path | None, *, force: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "faf3a2c5dba873afae8d1c85cc358bc1ae170a3408ee2212747fbc8e10771c0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "name": "calculate_scores.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "span": "L1-L58",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "07a1cd73cca097edd15acebe65531d9254e6e9f316b4a30e1eca5fd252cb697b",
      "chars": 1885,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/calculate_scores.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "span": "L24-L40",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ab8f4c99820c2f7bbba66f39394872f8398ac12e808f469dc91522bc44627b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/calculate_scores.py#calculate",
      "name": "calculate",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "span": "L12-L21",
      "signature": "def calculate(rubric: dict, evaluation: dict) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "53ff42ca2ec719875c753e2ffb46927478a45cea91a2c18f503154b83b2903b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/calculate_scores.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "span": "L43-L53",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8922069891a5312b62c5a3bf39f5bab592f2ca28acabd256064de70dedf16f7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_process.py",
      "name": "check_process.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/check_process.py",
      "span": "L1-L232",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a296cf1eeb3e1df2fa4d26e399e3c4d350ac1e83846c849cdea7e8e43e528ecb",
      "chars": 8289,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_process.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_process.py",
      "span": "L201-L216",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "db82e31098efb989c0e31278a24147644a5573c3d7334a41aed2aadb6890b0f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_process.py#check_process",
      "name": "check_process",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_process.py",
      "span": "L139-L198",
      "signature": "def check_process(record: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b6ad79f455e88765aae32ea45f6ccfb5637b132b75a733869a2d7d07bd9d961",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_process.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_process.py",
      "span": "L219-L227",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "62342595b83cd5e95b1f03c43b74798624892c9c03639111a0ecfe3fda12141b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_process.py#validate_process",
      "name": "validate_process",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_process.py",
      "span": "L89-L136",
      "signature": "def validate_process(record: Any) -> list[_common.Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "06ad39cdf3404f5671d451fa9e3947454594e479baa705debb91b1caf19d5bc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_traceability.py",
      "name": "check_traceability.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/check_traceability.py",
      "span": "L1-L234",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "29f68f2f842981b3ade8ebbe1c83c73cbcb2c8a23c68653b2114e8336ba7b88a",
      "chars": 9071,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_traceability.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_traceability.py",
      "span": "L196-L214",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bd59997de1fec9f1a0a6f10abd8ead12de260a851794320cca5e7b95a08b076",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_traceability.py#check_traceability",
      "name": "check_traceability",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_traceability.py",
      "span": "L141-L193",
      "signature": "def check_traceability(rubric: dict, evaluation: dict, manifest: dict) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "a794e790673da7658871fdafbd0026c2646405e0eb4d0a914007485f22b5d9c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_traceability.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_traceability.py",
      "span": "L217-L229",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "772f5aae2d72c464e766cd772a496e2e89c4cf045962e682b02dfc834a7a5e02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/check_traceability.py#validate_manifest",
      "name": "validate_manifest",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/check_traceability.py",
      "span": "L26-L138",
      "signature": "def validate_manifest( manifest: Any, rubric: dict, evaluation: dict ) -> tuple[list[_common.Issue], dict[str, dict]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd8827e83977ad0063ed8c829a08f7850d1b9e1fc6cec9980634c9c31bde160a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "name": "generate_report_scaffold.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "span": "L1-L232",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4231b29d4b71968e2d62704c4323a563ece0c7615b618afa2acf4b98ccb8328e",
      "chars": 8986,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#_load_companion",
      "name": "_load_companion",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "span": "L13-L33",
      "signature": "def _load_companion( report: dict[str, Any] | None, *, report_type: str, rubric_id: str | None = None, evaluation_id: str | None = None, work_id: str | None = None, ) -> dict[str, Any] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6c6dd5dd785d8c48e6abdb87350c664fab1efea3b1bd3493a81dafb0950ccdae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "span": "L174-L202",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c24ed15aca806f29d612c3904f6f12aa6556168929fd4b0c0e80494075dcb6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "name": "generate_scaffold",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "span": "L36-L171",
      "signature": "def generate_scaffold( rubric: dict[str, Any], evaluation: dict[str, Any], *, traceability: dict[str, Any] | None = None, agreement: dict[str, Any] | None = None, sensitivity: dict[str, Any] | None = None, process: dict[str, Any] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "47779d3578bb5e8a683c2bbfff6ea0e02149fa7a398455e2e67458d3fb49a0d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "span": "L205-L227",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd6126014c8ce870be57b970ca7a493430a369d8bae6521f468f6fe17633f282",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "name": "summarize_agreement.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "span": "L1-L236",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "82e0e36c78758357aabf3dd35d4c4a5475147e169b47bb6b3fae5b6ca6f5b5a0",
      "chars": 8916,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/summarize_agreement.py#_summary",
      "name": "_summary",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "span": "L90-L111",
      "signature": "def _summary(differences: list[float], step: float) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "180ec4e85867e2631644762065b1a7706f9d3423ccb92484becf7b9fb6a31f9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/summarize_agreement.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "span": "L203-L218",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad189ac24442f369ecf84496a7d7402a9748ccb64853234a289505fc546d2320",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/summarize_agreement.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "span": "L221-L231",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2c82a2a3322ca7c5925443b018d2b3ccbf6d60935d6c3df04b876e1a86622b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/summarize_agreement.py#read_rows",
      "name": "read_rows",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "span": "L27-L87",
      "signature": "def read_rows(path: Path, rubric: dict[str, Any]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9e33b35bc642b4b76ac6902bfc3c4b59bd8851732453f00eb1efaaacc2bd2e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/summarize_agreement.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "span": "L114-L200",
      "signature": "def summarize(rubric: dict[str, Any], rows: list[dict[str, Any]]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "251339921f637092bb26f22b518637fa86555d311992f0226608efef3532036b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "name": "validate_rubric.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "span": "L1-L55",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "843244f4728b93b07e1c7d51ca2f22e7a6d9215af0f83247afe181920e120821",
      "chars": 1729,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/validate_rubric.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "span": "L27-L39",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f960cbb57c296573f7f1c1f346636439d2015db2ace478f17c144b13a15b954e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/validate_rubric.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "span": "L42-L50",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "17eb6eec4db8c0698a4ad1514f232ed2fdfda1264f4804c8da12d543534dbba7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/validate_rubric.py#validate_file",
      "name": "validate_file",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "span": "L12-L24",
      "signature": "def validate_file(path: Path) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "d563a810e270f7daf0048da51c610df11bd51764c39665942a45ab167107da50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "name": "weight_sensitivity.py",
      "kind": "file",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L1-L252",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4a5ecd515e6a296ab32830d86290dde79f0a02f67d1da081e618fe8ddb82d9a9",
      "chars": 9231,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_direction",
      "name": "_direction",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L38-L44",
      "signature": "def _direction(first: float | None, second: float | None) -> int | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "bdbacdc9e7f72639873bd8dbf101f3210ed7846b0f2551495a101cffafd90d97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_normalized",
      "name": "_normalized",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L14-L16",
      "signature": "def _normalized(weights: dict[str, float]) -> dict[str, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "00b2dcce4e94f71eba70c166b8e7f04af94079c2cf673884d39c6255622b1abf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_scenarios",
      "name": "_scenarios",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L19-L35",
      "signature": "def _scenarios( base_weights: dict[str, float], delta: float ) -> list[tuple[str, str | None, float, dict[str, float]]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "23ff3bb56458b7d4d3b96d68dde183e0e3e8b180602970407bbac5044e8e6511",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py#analyze",
      "name": "analyze",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L47-L204",
      "signature": "def analyze( rubric: dict[str, Any], evaluations: list[dict[str, Any]], delta: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c07de81de435f953d302e98078454c00e17c48350c701f0cc864fe246be67456",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L207-L232",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe6d14bbb1e2aede05f71133e908512ad1b28c45c7d0ef0b72c9f5a9e50176ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scholar-evaluation/scripts/weight_sensitivity.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "span": "L235-L247",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b7c87353a691309fab1cc36f2ad8e1acf769fbfcfbf7b484a59cb6bd8e6d1eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L1-L308",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a78ef369fe2613871e8026420b9c78a368f61aeab670947482517fd49711060d",
      "chars": 9560,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#_safe_output_target",
      "name": "_safe_output_target",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L183-L204",
      "signature": "def _safe_output_target(raw_path: str, suffix: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "39edfc2e716345daaf75c2671c246519e2f38faf7012f5431e150bc69e4c2e55",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#bounded_float",
      "name": "bounded_float",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L28-L42",
      "signature": "def bounded_float(minimum: float, maximum: float)",
      "exported": true,
      "origin": "ast",
      "body_hash": "da687d3c1eba8c1bf37b41c474722e6cd3d09ae1f79aada03afaa1e667336563",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#bounded_float.convert",
      "name": "convert",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L31-L40",
      "signature": "def convert(raw: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "384c5808c648323214d51b12769a3cad4be452dca1a32446b5c5c1326e6bb250",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#bounded_strings",
      "name": "bounded_strings",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L75-L94",
      "signature": "def bounded_strings( values: Iterable[str], label: str, *, maximum_items: int = 100, maximum_length: int = MAX_SHORT_TEXT_CHARS, ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4621ad6d66dc642897afe1c3bfa7c4d28e74ca70f875c57438de70d1a669b04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L24-L25",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8015b298e33be7108dbd3318ba2d8c8ce5cce3c285b35026ea282733d55175d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L282-L301",
      "signature": "def emit_json( payload: Any, output: str | None, *, force: bool = False, ) -> Path | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93656a1567f77499b8c7b43ce133c3471a913caefb7e3d81db531ee005515d31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L107-L118",
      "signature": "def finite_number(value: Any, label: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "1cd4f399f2c858f8693572f0f6cd0fae3abc9b1bfa8be51d8cc9a3b1c5737576",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#read_bounded_text",
      "name": "read_bounded_text",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L121-L162",
      "signature": "def read_bounded_text( raw_path: str, *, label: str, suffixes: set[str], encoding: str = \"utf-8\", ) -> tuple[Path, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "454aedff9b39e95d1c6800ac5e55bcb6a028f416566e23e6f8671b05c9f75b5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L165-L180",
      "signature": "def read_json(raw_path: str, *, label: str = \"JSON input\") -> tuple[Path, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "12a6f96ac520a65828015d72612969115e4ea89ef8a26f085bf733f7177bf871",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#read_json.reject_constant",
      "name": "reject_constant",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L174-L175",
      "signature": "def reject_constant(value: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "78a359dcffe4c72eb9960c2126ab01d89943520420873a44c498d9dcbbaed698",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#require_identifier",
      "name": "require_identifier",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L45-L53",
      "signature": "def require_identifier(value: Any, label: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d8a78c1d2af1e331890290bc9025490d3ab5928461ddbec5484dc9d03e9930b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#require_iso_date",
      "name": "require_iso_date",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L97-L104",
      "signature": "def require_iso_date(value: str, label: str = \"date\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "78e76461e46467d38833b70a548f0e0b4151d4e38b2d9b999c0cea718f738021",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#require_text",
      "name": "require_text",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L56-L72",
      "signature": "def require_text( value: Any, label: str, *, maximum: int = MAX_TEXT_CHARS, allow_empty: bool = False, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc03a3bca3666de86a2d29ef0d931fc82026524106652fa0f265ced7fb4e4152",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#rounded",
      "name": "rounded",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L304-L307",
      "signature": "def rounded(value: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "91f7c9130dc413801ba50f6e3c13399d9a3aa178251f1b9c344b4f7e63f57210",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/_common.py#write_json",
      "name": "write_json",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/_common.py",
      "span": "L207-L279",
      "signature": "def write_json( raw_path: str, payload: Any, *, force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0a0683e993df9f429c1bef74249c0545ca4179f7e9e1dfe3df53b799fc91dd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "name": "evaluate_matrix.py",
      "kind": "file",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L1-L519",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9056a5356c72d638277cc24f8e02f043c6bdb35d2b50e13fca3ac6ef860a1014",
      "chars": 18463,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_normalized_weights",
      "name": "_normalized_weights",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L258-L272",
      "signature": "def _normalized_weights( criteria: Sequence[Criterion], *, override: Mapping[str, float] | None = None, ) -> dict[str, float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8adcb9e34239a5248086fda19ac590836d8eb0102d757cb3fbbc2ee156c3f8c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_parse_bounded_score",
      "name": "_parse_bounded_score",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L122-L135",
      "signature": "def _parse_bounded_score( raw: str | None, *, label: str, criterion: Criterion, ) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f8a807e3df63e2329acee87414f0d22a876af1fd505199cbb397f694fabb6d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_ranks",
      "name": "_ranks",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L286-L290",
      "signature": "def _ranks(scores: Mapping[str, float]) -> dict[str, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d3b5ae0807865b222b0572782a91ac503e8245335a5bdbd491e7d9deeb3116ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_score",
      "name": "_score",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L275-L283",
      "signature": "def _score( row: IdeaRow, criteria: Sequence[Criterion], weights: Mapping[str, float], ) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "99d21cfe9a11bc158c37deec34e6288cce66e25aab23d8fd2c8d095b8b9d9f40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L461-L495",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "635abc30bfa0d14af292a8767b72496a5b22f9e153649f2dcf64cfad776ccd95",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#calculate_matrix",
      "name": "calculate_matrix",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L293-L458",
      "signature": "def calculate_matrix( criteria: Sequence[Criterion], rows: Sequence[IdeaRow], *, weight_delta: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef022b44ca553a845c4c91f257ae1655e62df5442fd7d0a6b52bbf6e110f3ee2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Criterion",
      "name": "Criterion",
      "kind": "class",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L32-L47",
      "signature": "class Criterion",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9cbdf5e509c24007462b6f528f794373a5f472aa1b90d255a2b37ff0246bf31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Criterion.normalize",
      "name": "normalize",
      "kind": "method",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L42-L47",
      "signature": "def normalize(self, value: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "d474d28c28b26230fc8ba7ea8c05ab91143eb13c3b5868f0b5146bd491186259",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Criterion"
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#IdeaRow",
      "name": "IdeaRow",
      "kind": "class",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L60-L65",
      "signature": "class IdeaRow",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1fd8afe318a2d5a3cdba2383484b21f0ec3f80b3c4343af23f8341acced5977",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_criteria",
      "name": "load_criteria",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L68-L119",
      "signature": "def load_criteria(raw_path: str) -> list[Criterion]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c3806c32f271d7ac2da5dfeeffd771a0ba4aec96866749d5faeccd68c01cbdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "name": "load_scores",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L138-L255",
      "signature": "def load_scores(raw_path: str, criteria: Sequence[Criterion]) -> list[IdeaRow]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7085a2b036b037f133d27067e5b3b0de731d76e499456109342114e1b2d8fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L498-L514",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a114a4d837d85f73dff5eaba9df171034fbef2757f9f4df8285288c7f2769b24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Rating",
      "name": "Rating",
      "kind": "class",
      "path": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "span": "L51-L56",
      "signature": "class Rating",
      "exported": true,
      "origin": "ast",
      "body_hash": "f166f37b730c6a72f24a5922fca613c215d80a424af4aa92c4e0c752d7451ae0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "name": "session_scaffold.py",
      "kind": "file",
      "path": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "span": "L1-L249",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0af7b297a8f92f1c7456b7e14c717a017315b4a71b603ca5402434dee98db5ba",
      "chars": 7930,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "span": "L163-L221",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0571588a7b0d170d3b288e9871263dba02ba04b5fed47bd891df59185477433",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_scaffold",
      "name": "build_scaffold",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "span": "L33-L160",
      "signature": "def build_scaffold( *, session_id: str, title: str, question: str, participant_ids: Sequence[str], session_date: str | None = None, in_scope: Sequence[str] = (), out_of_scope: Sequence[str] = (), constraints: Sequence[str] = (), perspectives: Sequence[str] = (), ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6da10d50288a92e6c6bccf4be7cb4dc4c69a1febae3e9587f42932d635bc7f0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/session_scaffold.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "span": "L224-L244",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fa126b734ed970ea938f40b2735faf72b6694cf756c6a9f1bb02dcacca4ba9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py",
      "name": "validate_register.py",
      "kind": "file",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L1-L655",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "9a28c5abc16c48babdf6e5f3ded1672eb272d2569283c53a3e1f09beed43197a",
      "chars": 21169,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#_check_id",
      "name": "_check_id",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L118-L127",
      "signature": "def _check_id( value: Any, path: str, errors: list[dict[str, str]], ) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3771a425be7e5c1d4e214d8c5cd7891a28ee2ac7874a9b024e7ed745f1c489d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#_check_string_list",
      "name": "_check_string_list",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L130-L147",
      "signature": "def _check_string_list( values: list[Any], path: str, errors: list[dict[str, str]], *, identifiers: bool = False, ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "cf4b774c9b4d98e03b1534f2ce83922e8f3a6caaaa4eb562455cc140b823b8ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#_check_text",
      "name": "_check_text",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L98-L115",
      "signature": "def _check_text( value: Any, path: str, errors: list[dict[str, str]], *, maximum: int = 10_000, allow_empty: bool = False, ) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "9dad65a405cdc16f79a9ce89c3f86c99d8d0a99001261a58df3d9346b168d160",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#_issue",
      "name": "_issue",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L62-L63",
      "signature": "def _issue(path: str, message: str) -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d2845fb71c6a16c92509183f0e30f00f78666e215835574bb29444baec0812d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#_list_field",
      "name": "_list_field",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L73-L95",
      "signature": "def _list_field( record: dict[str, Any], field: str, path: str, errors: list[dict[str, str]], *, required: bool = True, ) -> list[Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "87415371f4ddd6436c4e53958115efe8e25844349b68c6225a9d37473ead179d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#_normalized_statement",
      "name": "_normalized_statement",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L66-L70",
      "signature": "def _normalized_statement(value: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6f304669a31cd8a4877470ad41a3f728da56280ca03bc73dafb728ded9939338",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L610-L634",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fb85ce4df884b706d39ac808ee0912f6ac99460480c06857f0aaa1f1683c00f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L637-L650",
      "signature": "def main(argv: Sequence[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9085e07ddee246597cf5a27d1662d40d3803c1d0aa3b90dc6f9ef0a1de43a5bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "name": "validate_register",
      "kind": "function",
      "path": "skills/scientific-brainstorming/scripts/validate_register.py",
      "span": "L150-L607",
      "signature": "def validate_register(document: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "abad5bb4b109b347b5b3182800435ca6677db503e8943b172c4f93a7c4c05d46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "name": "generate_schematic_ai.py",
      "kind": "file",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L1-L951",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "af055204033d446cd8e4501de0a0d0aaa952bad7c365e559f2e3a80698704ce9",
      "chars": 38484,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_normalize_review_text",
      "name": "_normalize_review_text",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L76-L78",
      "signature": "def _normalize_review_text(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "62855a0e5992253011491e3418cf171dbd2d60518fe9e2e529db6f16c6a98148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_score",
      "name": "_parse_score",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L81-L95",
      "signature": "def _parse_score(text: str) -> Optional[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9925f80d919436a6f3f99135cc4e85097a314af0140b901edce3b2138e274d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_verdict",
      "name": "_parse_verdict",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L98-L110",
      "signature": "def _parse_verdict(text: str) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c41464342c92a566e7e5c39fc6ba54f9dfbddf56bb6ae3ec6bc7234716c651cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_resolve_api_key",
      "name": "_resolve_api_key",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L113-L148",
      "signature": "def _resolve_api_key(explicit: Optional[str] = None) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90dac6c45e351a84c79664d0fc82b3b7a3a7dfa57364f4efd0c39df023062a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L852-L945",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0299589c478d99371db30359a7a461cf5bbac8f5fc4b5b0647561b06d81a63e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ReviewResult",
      "name": "ReviewResult",
      "kind": "class",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L38-L56",
      "signature": "class ReviewResult(NamedTuple)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfba0211a60ce31f77d081647933ce80e6124277256be9141343cf510f04926",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "name": "ScientificSchematicGenerator",
      "kind": "class",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L151-L849",
      "signature": "class ScientificSchematicGenerator",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc49a8162ef005d0dd673c65adc8d2438f0e403192c753340fd84971748d6ded",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L218-L247",
      "signature": "def __init__(self, api_key: Optional[str] = None, verbose: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c86c9be6d9ba6121db8d4266da8c2abb981536f987df258c7d8a3890f568d5f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "name": "_extract_image_from_response",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L310-L388",
      "signature": "def _extract_image_from_response(self, response: Dict[str, Any]) -> Optional[bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "67b79bf2797167a84c7dbf71193ae07a2a0db3bc4be4be56cca9fcd7b41307cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "name": "_image_to_base64",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L390-L414",
      "signature": "def _image_to_base64(self, image_path: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "851a5129363c29ebb3700f0727f1247ad7b4372d66e6565cd99c6bcbbc8e5525",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "name": "_log",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L249-L252",
      "signature": "def _log(self, message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0274134fa48606c79307bbc087ca49ac5ef90c7c8a175dd59bfe4ebe38e31b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "name": "_make_request",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L254-L308",
      "signature": "def _make_request(self, model: str, messages: List[Dict[str, Any]], modalities: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "949c5b53aebbb25a209d790ad60e00e331dd5469ad3083fc5c5d248ce5ae7018",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "name": "generate_image",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L416-L492",
      "signature": "def generate_image(self, prompt: str) -> Optional[bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f814e19ade3e7f01e6ea32a5de8ad41e8c726995934ca28948997bacb53ac315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "name": "generate_iterative",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L682-L849",
      "signature": "def generate_iterative(self, user_prompt: str, output_path: str, iterations: int = 2, doc_type: str = \"default\") -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8160369796bdf45dd9aa70fc61774b594f793c7f6432e4b9c4655d318d1fd453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "name": "improve_prompt",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L658-L680",
      "signature": "def improve_prompt(self, original_prompt: str, critique: str, iteration: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "661b56f6ef713f345e35230fefaafa2330cef0c71d96083a1a380353fb4099f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "name": "review_image",
      "kind": "method",
      "path": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "span": "L494-L656",
      "signature": "def review_image(self, image_path: str, original_prompt: str, iteration: int, doc_type: str = \"default\", max_iterations: int = 2) -> ReviewResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e2cecd3f61b97f416a90769dfc795f99cb26544ce610b4ce78679a60fa3dea4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic.py",
      "name": "generate_schematic.py",
      "kind": "file",
      "path": "skills/scientific-schematics/scripts/generate_schematic.py",
      "span": "L1-L199",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cec9c14d164c9ea9ccf6425f2010c40f1b077dd0c9e30395564cdc793c334b2",
      "chars": 7596,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic.py#build_subprocess_env",
      "name": "build_subprocess_env",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic.py",
      "span": "L80-L85",
      "signature": "def build_subprocess_env(api_key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0298eaa3da87d0fe144c9eed421c66d9a4f82fffd51312af3176b74c36e6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic.py",
      "span": "L88-L193",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3f6b2e36ebdd35e59bdf20801af3632d3565790d6a041a4c5705a07ee5bc253",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-schematics/scripts/generate_schematic.py#resolve_api_key",
      "name": "resolve_api_key",
      "kind": "function",
      "path": "skills/scientific-schematics/scripts/generate_schematic.py",
      "span": "L43-L77",
      "signature": "def resolve_api_key(explicit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "293410fa124c40980c02dffbfeb3e5c2a2d12f3f782ce3440b997e4a16a56520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "name": "generate_schematic_ai.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L1-L951",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "af055204033d446cd8e4501de0a0d0aaa952bad7c365e559f2e3a80698704ce9",
      "chars": 38484,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#_normalize_review_text",
      "name": "_normalize_review_text",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L76-L78",
      "signature": "def _normalize_review_text(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "62855a0e5992253011491e3418cf171dbd2d60518fe9e2e529db6f16c6a98148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_score",
      "name": "_parse_score",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L81-L95",
      "signature": "def _parse_score(text: str) -> Optional[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "9925f80d919436a6f3f99135cc4e85097a314af0140b901edce3b2138e274d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_verdict",
      "name": "_parse_verdict",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L98-L110",
      "signature": "def _parse_verdict(text: str) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c41464342c92a566e7e5c39fc6ba54f9dfbddf56bb6ae3ec6bc7234716c651cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#_resolve_api_key",
      "name": "_resolve_api_key",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L113-L148",
      "signature": "def _resolve_api_key(explicit: Optional[str] = None) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90dac6c45e351a84c79664d0fc82b3b7a3a7dfa57364f4efd0c39df023062a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L852-L945",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0299589c478d99371db30359a7a461cf5bbac8f5fc4b5b0647561b06d81a63e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ReviewResult",
      "name": "ReviewResult",
      "kind": "class",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L38-L56",
      "signature": "class ReviewResult(NamedTuple)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfba0211a60ce31f77d081647933ce80e6124277256be9141343cf510f04926",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "name": "ScientificSchematicGenerator",
      "kind": "class",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L151-L849",
      "signature": "class ScientificSchematicGenerator",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc49a8162ef005d0dd673c65adc8d2438f0e403192c753340fd84971748d6ded",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L218-L247",
      "signature": "def __init__(self, api_key: Optional[str] = None, verbose: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c86c9be6d9ba6121db8d4266da8c2abb981536f987df258c7d8a3890f568d5f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "name": "_extract_image_from_response",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L310-L388",
      "signature": "def _extract_image_from_response(self, response: Dict[str, Any]) -> Optional[bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "67b79bf2797167a84c7dbf71193ae07a2a0db3bc4be4be56cca9fcd7b41307cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "name": "_image_to_base64",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L390-L414",
      "signature": "def _image_to_base64(self, image_path: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "851a5129363c29ebb3700f0727f1247ad7b4372d66e6565cd99c6bcbbc8e5525",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "name": "_log",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L249-L252",
      "signature": "def _log(self, message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0274134fa48606c79307bbc087ca49ac5ef90c7c8a175dd59bfe4ebe38e31b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "name": "_make_request",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L254-L308",
      "signature": "def _make_request(self, model: str, messages: List[Dict[str, Any]], modalities: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "949c5b53aebbb25a209d790ad60e00e331dd5469ad3083fc5c5d248ce5ae7018",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "name": "generate_image",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L416-L492",
      "signature": "def generate_image(self, prompt: str) -> Optional[bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f814e19ade3e7f01e6ea32a5de8ad41e8c726995934ca28948997bacb53ac315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "name": "generate_iterative",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L682-L849",
      "signature": "def generate_iterative(self, user_prompt: str, output_path: str, iterations: int = 2, doc_type: str = \"default\") -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8160369796bdf45dd9aa70fc61774b594f793c7f6432e4b9c4655d318d1fd453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "name": "improve_prompt",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L658-L680",
      "signature": "def improve_prompt(self, original_prompt: str, critique: str, iteration: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "661b56f6ef713f345e35230fefaafa2330cef0c71d96083a1a380353fb4099f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "name": "review_image",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "span": "L494-L656",
      "signature": "def review_image(self, image_path: str, original_prompt: str, iteration: int, doc_type: str = \"default\", max_iterations: int = 2) -> ReviewResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e2cecd3f61b97f416a90769dfc795f99cb26544ce610b4ce78679a60fa3dea4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScientificSchematicGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic.py",
      "name": "generate_schematic.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/generate_schematic.py",
      "span": "L1-L199",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cec9c14d164c9ea9ccf6425f2010c40f1b077dd0c9e30395564cdc793c334b2",
      "chars": 7596,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic.py#build_subprocess_env",
      "name": "build_subprocess_env",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic.py",
      "span": "L80-L85",
      "signature": "def build_subprocess_env(api_key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0298eaa3da87d0fe144c9eed421c66d9a4f82fffd51312af3176b74c36e6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic.py",
      "span": "L88-L193",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3f6b2e36ebdd35e59bdf20801af3632d3565790d6a041a4c5705a07ee5bc253",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_schematic.py#resolve_api_key",
      "name": "resolve_api_key",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_schematic.py",
      "span": "L43-L77",
      "signature": "def resolve_api_key(explicit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "293410fa124c40980c02dffbfeb3e5c2a2d12f3f782ce3440b997e4a16a56520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "name": "generate_slide_image_ai.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L1-L878",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c5e4724641e0e11980034110974727699277e0a9240a4231d7179193f7c3579d",
      "chars": 34459,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_normalize_review_text",
      "name": "_normalize_review_text",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L88-L90",
      "signature": "def _normalize_review_text(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "62855a0e5992253011491e3418cf171dbd2d60518fe9e2e529db6f16c6a98148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_score",
      "name": "_parse_score",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L93-L107",
      "signature": "def _parse_score(text: str) -> Optional[float]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e5ceb93034432c818c4dc3036b57a55a7e828eb7a64e32b702b363a74ffe1024",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_verdict",
      "name": "_parse_verdict",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L110-L122",
      "signature": "def _parse_verdict(text: str) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "62505bebf0ee069b1051cc5804e44ff026cc29cf7a4bd4a59bcc2a9de88036a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_resolve_api_key",
      "name": "_resolve_api_key",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L125-L160",
      "signature": "def _resolve_api_key(explicit: Optional[str] = None) -> Optional[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "90dac6c45e351a84c79664d0fc82b3b7a3a7dfa57364f4efd0c39df023062a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L793-L873",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "a45d5df4df27f761ea580412e1c781de24844366ff1cb9d2881896cd921cef87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#ReviewResult",
      "name": "ReviewResult",
      "kind": "class",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L50-L68",
      "signature": "class ReviewResult(NamedTuple)",
      "exported": true,
      "origin": "ast",
      "body_hash": "62c37b8d5a65e3bb19dd5a3eb9486edda316b3093171fd6b6a3a904fe11f1197",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "name": "SlideImageGenerator",
      "kind": "class",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L163-L790",
      "signature": "class SlideImageGenerator",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e9d228bad0b72b5d3710b10c2ef8979c416641c780a8fa15f8357dab9e06f32",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L246-L274",
      "signature": "def __init__(self, api_key: Optional[str] = None, verbose: bool = False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f5f7fee85ec79a9533c7ff9d6c4eb1732deb6ae6004de7d3549b0506c25c6f43",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._extract_image_from_response",
      "name": "_extract_image_from_response",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L325-L381",
      "signature": "def _extract_image_from_response(self, response: Dict[str, Any]) -> Optional[bytes]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6b6b5b48d5001b231c7f422cbe1328a38018eb06bf7ada6d64ce25d438d27952",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._image_to_base64",
      "name": "_image_to_base64",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L383-L398",
      "signature": "def _image_to_base64(self, image_path: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "c0e9961effb84f71d66c0f3f363f43a62e88d64b6314b99e7cbca3fcde227b49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._log",
      "name": "_log",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L276-L279",
      "signature": "def _log(self, message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0274134fa48606c79307bbc087ca49ac5ef90c7c8a175dd59bfe4ebe38e31b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._make_request",
      "name": "_make_request",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L281-L323",
      "signature": "def _make_request(self, model: str, messages: List[Dict[str, Any]], modalities: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c1a94284fa9237103514eb4373ad11d2a31d75a1bf1711c8711ae280bfb2f83b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "name": "generate_image",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L400-L477",
      "signature": "def generate_image(self, prompt: str, attachments: Optional[List[str]] = None) -> Optional[bytes]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5eea4fc26a4c33e13babd908ecac0e19a4a6bc7c9c892ce6588dec139b9d632c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_slide",
      "name": "generate_slide",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L625-L790",
      "signature": "def generate_slide(self, user_prompt: str, output_path: str, visual_only: bool = False, iterations: int = 2, attachments: Optional[List[str]] = None) -> Dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3ffcfe9c05d37365e97ff7b2b3592480b00184066b975a0ecf3e0bd038fba41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.improve_prompt",
      "name": "improve_prompt",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L611-L623",
      "signature": "def improve_prompt(self, original_prompt: str, critique: str, iteration: int, visual_only: bool = False) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4317a78cebb42d0f299da0c62d656a27d6ee6d4725d7dd8881b85b8095cbe8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "name": "review_image",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "span": "L479-L609",
      "signature": "def review_image(self, image_path: str, original_prompt: str, iteration: int, visual_only: bool = False, max_iterations: int = 2) -> ReviewResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "031d11886cda19788f5017391d99e470723ea0e7b64eacc4dda1bd4b0621f1e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageGenerator"
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image.py",
      "name": "generate_slide_image.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/generate_slide_image.py",
      "span": "L1-L198",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d85733018dfd71cc82c2f6472fe4ee06d66e970d135aeb72345fa35ea99224dd",
      "chars": 7750,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image.py#build_subprocess_env",
      "name": "build_subprocess_env",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image.py",
      "span": "L83-L88",
      "signature": "def build_subprocess_env(api_key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d0298eaa3da87d0fe144c9eed421c66d9a4f82fffd51312af3176b74c36e6ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image.py",
      "span": "L91-L193",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc216dd5f5e518838b2719c50a6daee912f89516703fb8d61969f6f1ca9a1546",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/generate_slide_image.py#resolve_api_key",
      "name": "resolve_api_key",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/generate_slide_image.py",
      "span": "L46-L80",
      "signature": "def resolve_api_key(explicit=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "293410fa124c40980c02dffbfeb3e5c2a2d12f3f782ce3440b997e4a16a56520",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/pdf_to_images.py",
      "name": "pdf_to_images.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/pdf_to_images.py",
      "span": "L1-L222",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b572150da57890311e5dc55ed19f751c7b0f1f998cbda1e6392070f783dbd261",
      "chars": 6640,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/pdf_to_images.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/pdf_to_images.py",
      "span": "L108-L217",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "8483d76d9e3d09d8220cb1a2aade2ad78b361a8ef99e1d5c29aad6dc1cfa8a83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter",
      "name": "PDFToImagesConverter",
      "kind": "class",
      "path": "skills/scientific-slides/scripts/pdf_to_images.py",
      "span": "L25-L105",
      "signature": "class PDFToImagesConverter",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e799f38201a63149f452d025ac83a01c364bc7147ad1fe38b6224c5ff503ea6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/pdf_to_images.py",
      "span": "L28-L46",
      "signature": "def __init__( self, pdf_path: str, output_prefix: str, dpi: int = 150, format: str = 'jpg', first_page: Optional[int] = None, last_page: Optional[int] = None )",
      "exported": false,
      "origin": "ast",
      "body_hash": "739b8c1767f6ec76f2a3b58196405fd705c6c047bd9d6cdadce05b6a0ab80dd4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PDFToImagesConverter"
    },
    {
      "id": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter._convert_with_pymupdf",
      "name": "_convert_with_pymupdf",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/pdf_to_images.py",
      "span": "L67-L105",
      "signature": "def _convert_with_pymupdf(self) -> List[Path]",
      "exported": false,
      "origin": "ast",
      "body_hash": "12f71cd26eb8807f9d4df91b26087ea4ed4e647ad59028aea4b19494986c9d5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PDFToImagesConverter"
    },
    {
      "id": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter.convert",
      "name": "convert",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/pdf_to_images.py",
      "span": "L48-L65",
      "signature": "def convert(self) -> List[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a7c47eb18a7e91a4585063700415ec63e17e80d286e9955ce32518af8d2045b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PDFToImagesConverter"
    },
    {
      "id": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "name": "slides_to_pdf.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "span": "L1-L236",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "265da6e1d722f6efb3dfd8a4acef260a54b3774a56471e73b31d771ad8a8420d",
      "chars": 7420,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/slides_to_pdf.py#combine_images_to_pdf",
      "name": "combine_images_to_pdf",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "span": "L74-L159",
      "signature": "def combine_images_to_pdf(image_paths: List[Path], output_path: Path, dpi: int = 150, verbose: bool = False) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "70b27845176a9ded653c4b4e7beec1d5e3b4e5b2d65156333bfbfcbd2db090e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/slides_to_pdf.py#get_image_files",
      "name": "get_image_files",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "span": "L31-L71",
      "signature": "def get_image_files(paths: List[str]) -> List[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "65f03dfef774b8fc862de36080668c96a335773aa895fdbf34c4633add3770c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/slides_to_pdf.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "span": "L162-L231",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cb1aa36a3ca735ed84fbb8999656f8cc7f87060a9d5f0f3baf3fa59240d988e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py",
      "name": "validate_presentation.py",
      "kind": "file",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L1-L409",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b30aacfd6fcbfb11ea8783577dc4b969786ac7dc56f1ab6f0ca0c1ce37b7b9b1",
      "chars": 13345,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L345-L403",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd1615bc9e48a8936c6a39636e9605ac3ab85ad219907bebd190423c4793b96a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "name": "PresentationValidator",
      "kind": "class",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L39-L305",
      "signature": "class PresentationValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5b631694e493556d5bf2968b6c8b9eff79481499c0a1f05b63ef961a1953411",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L53-L59",
      "signature": "def __init__(self, filepath: str, duration: Optional[int] = None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "420cd01b19a8544dd6095f486b9c8c6205b241e00851cc1ed137a14b5b408688",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_file_size",
      "name": "_check_file_size",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L87-L101",
      "signature": "def _check_file_size(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "61fbf1efeeef3a0bdb0b754f4d78ca8294db1ad7895efe3850a54bf82edb8d52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_pptx_content",
      "name": "_check_pptx_content",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L186-L223",
      "signature": "def _check_pptx_content(self, prs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0024647fef28503cfe8bac17e83ba987e893a3217c51edaca57d514867bc5ee4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_slide_count",
      "name": "_check_slide_count",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L262-L294",
      "signature": "def _check_slide_count(self, num_slides: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "684a576e1a7b06ced1acf9ac93550a3edfb4dd958e029031d727d8cc93907f58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._format_results",
      "name": "_format_results",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L296-L305",
      "signature": "def _format_results(self) -> Dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "8b984ab9899432951a045447ac96ff5bf3c13f4a1bf6472839f10eec12e94019",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._try_compile_latex",
      "name": "_try_compile_latex",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L248-L260",
      "signature": "def _try_compile_latex(self) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "40c6a39e4d98c5ca865b16454aecfabab2ab9927d9299f805cb46f135d078c5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_latex",
      "name": "_validate_latex",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L225-L246",
      "signature": "def _validate_latex(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "52058364da6065917353404a53cd0e2386a96ede8db18cbc152ef7445352276c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pdf",
      "name": "_validate_pdf",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L103-L150",
      "signature": "def _validate_pdf(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "394e09d437d07729c510c75970d94be1df0bf9e7b78b0626f680731d741e237c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pptx",
      "name": "_validate_pptx",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L152-L184",
      "signature": "def _validate_pptx(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "239e87731880dbb25673c4cd2801ad250a3efc89064bcb636e84f87ed2185fb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L61-L85",
      "signature": "def validate(self) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "04636663e885f57fdd219bfa39fd7d083f23d880230d313800dd608108fb655d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresentationValidator"
    },
    {
      "id": "skills/scientific-slides/scripts/validate_presentation.py#print_results",
      "name": "print_results",
      "kind": "function",
      "path": "skills/scientific-slides/scripts/validate_presentation.py",
      "span": "L308-L342",
      "signature": "def print_results(results: Dict)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2effef319c89a8d1e88bf6d85ba2d9823632e2f2007ef70a1e20be1aae2323c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/assets/color_palettes.py",
      "name": "color_palettes.py",
      "kind": "file",
      "path": "skills/scientific-visualization/assets/color_palettes.py",
      "span": "L1-L264",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "173d95887be654867db3602430ade84f6362ae80477c5373de0b44ce40375f57",
      "chars": 6756,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/assets/color_palettes.py#apply_palette",
      "name": "apply_palette",
      "kind": "function",
      "path": "skills/scientific-visualization/assets/color_palettes.py",
      "span": "L247-L258",
      "signature": "def apply_palette(palette_name: str = \"okabe_ito_on_white\") -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c24210291a28a6bf7fdae7302ecdcc29cbc0a13595e9227a2f6682258c9481ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/assets/color_palettes.py#get_palette",
      "name": "get_palette",
      "kind": "function",
      "path": "skills/scientific-visualization/assets/color_palettes.py",
      "span": "L236-L244",
      "signature": "def get_palette(palette_name: str = \"okabe_ito_on_white\") -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bcf14e04305a14ee303ef68b9cce24f78ea52ac56eae05bca51d4c80d3df360",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L1-L137",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1bbbfb48500af7dd6df98076584085b2b2a24aee3024a7d9ce91dcb27ebd4b15",
      "chars": 4351,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L72-L94",
      "signature": "def atomic_write_bytes(path: Path, payload: bytes, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6509b6b61c3e3f59a83030cdf09fb333dcaa8c237f6af0c3654c1c53f7c30aa6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L21-L40",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, max_bytes: int = MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "93d7a1a1df26cf36d3dcf24ad20659e86e82fbcf8f0aa06209bd2e72372b2ebe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L43-L69",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, force: bool = False, mkdir: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c59a0fc86428dc5083a75597aa7dd6b2e324c74e0458948bc90b9f947b7866e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L17-L18",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bae2dcdcef010efd981c6efe736793f5ed43285a4cd9df0297add060bed56ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L97-L114",
      "signature": "def emit_json( document: dict[str, Any], *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c930d001927e8f15f51fa30952b1d54c7a41aa9279ad1283457dad858d950d8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#positive_float",
      "name": "positive_float",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L128-L136",
      "signature": "def positive_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dd02fe3c8df67ba6cf52ff813e4fcbf9011d87a34d1f927117512d730dabd6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/_common.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/_common.py",
      "span": "L117-L125",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "77b0e694c4222759340fc05ce672916b84156c3f412f91e2243b86a60a60aa46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py",
      "name": "export_plan.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L1-L494",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "29e33fbb4a8a4f558e0a190afda50721f7bcb0fabf39a4f2b8f465152d9f20bf",
      "chars": 16700,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#_effective_dimensions",
      "name": "_effective_dimensions",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L121-L146",
      "signature": "def _effective_dimensions( metadata: dict[str, Any], target_width_mm: float | None ) -> tuple[float | None, float | None, float | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ccb468c7f846785e61be62b59261c17a5c078db568d47cbccf6c34cfc2e2b36b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#_finding",
      "name": "_finding",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L94-L108",
      "signature": "def _finding( name: str, status: str, *, actual: Any, expected: Any, detail: str, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b04248da272ca9c326cbe757e0313165143056123368a61116d4df3ebe5b78fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#_normalized_mode",
      "name": "_normalized_mode",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L111-L118",
      "signature": "def _normalized_mode(mode: str | None) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "188e74f66cd0e21042e5cea3ff99959e931efcec8b305931d9e36b89f7dd1da5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L412-L439",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "18522ee92c05e5d4ec8568ed1904ec891643ff3f767bb55bcff25a78c15f1647",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#build_plan",
      "name": "build_plan",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L29-L91",
      "signature": "def build_plan( publisher: str, *, figure_type: str, width: str | None = None, phase: str | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad2cc5ddcb8c51460cb1e0252e888fc700d027a15746464d09ceb23d89bd4f52",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#load_profiles",
      "name": "load_profiles",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L19-L26",
      "signature": "def load_profiles() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "826cecfeef4c85576e8a208980ffbb9eac3b78bd9303d32433ef33ffaca21533",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L442-L489",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7fe962df1eb939b60aff925eebeccb54ecc545a70362eada0997e2c64cb8c514",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/export_plan.py#validate_against_plan",
      "name": "validate_against_plan",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/export_plan.py",
      "span": "L149-L409",
      "signature": "def validate_against_plan( plan: dict[str, Any], input_path: str | Path, *, width_tolerance_mm: float = 1.0, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "574f53a72788c61413c2691211d82bcde317ad757a77624b7d718f7db86c7669",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py",
      "name": "figure_export.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L1-L643",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5fc7dd947621b861b12fad2c053f80f465f686b92258c9a7991db618d62b8627",
      "chars": 22256,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_atomic_savefig",
      "name": "_atomic_savefig",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L97-L132",
      "signature": "def _atomic_savefig( fig: Any, destination: Path, *, format_name: str, save_kwargs: dict[str, Any], overwrite: bool, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2684020b3bf7fb07e9cbb0f8351219e32b7569108252d5555e83730871c89c7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_base_output_path",
      "name": "_base_output_path",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L62-L68",
      "signature": "def _base_output_path(value: str | os.PathLike[str]) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "362adf9afc2220905b5c1fd1f8b97b230a37e99f0b27718b31c2d4fc7130a44f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_demo_figure",
      "name": "_demo_figure",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L535-L559",
      "signature": "def _demo_figure() -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "4b2a115f93a8401f6dace1f1088bd37d9b5e793989ed1714c9d9f5c47aecf45f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_font_rc",
      "name": "_font_rc",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L71-L87",
      "signature": "def _font_rc(font_mode: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e589a57cdfdc9a2e1bc5c0980f96ffaf99a081b4f3ef4c87c61792f6fd7e63ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_load_profiles",
      "name": "_load_profiles",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L362-L370",
      "signature": "def _load_profiles() -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "0fa1fa3b6f577fcd96577b224cc840c7f33ecd7d6253d301975e0d82f45ae7cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_normalize_formats",
      "name": "_normalize_formats",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L40-L59",
      "signature": "def _normalize_formats(formats: Iterable[str]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8ed2f9372f9c1942e42306a62acb8c0d594f5836662af19d56f5f4ed39fd5988",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_package_version",
      "name": "_package_version",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L90-L94",
      "signature": "def _package_version(distribution: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "62e801493fd09e4c81a5d9c0594cc0a4d0ba8c658c8d17ce509c02dd719fe59d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#_validate_provenance",
      "name": "_validate_provenance",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L135-L146",
      "signature": "def _validate_provenance(provenance: dict[str, Any] | None) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "fd1df07c973fcb5048137feb9acc229cc809f23a269fdd9dcaabb9a9f782b4ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L562-L599",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "25b7ea3dbe720e56ae0d925a9236e632222008e7a61a5391afe0349ccb96a931",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#check_figure_size",
      "name": "check_figure_size",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L373-L436",
      "signature": "def check_figure_size( fig: Any, journal: str = \"nature\", *, tolerance_mm: float = 1.0, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "afb0b3ca1fa81a8b346651797d1a387dde3a49fd69198b035ac14dcea535489d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "name": "export_figure",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L149-L320",
      "signature": "def export_figure( fig: Any, filename: str | os.PathLike[str], *, formats: Iterable[str] = (\"pdf\", \"png\"), dpi: float = 300, transparent: bool = False, bbox_inches: str | None = None, pad_inches: float = 0.1, facecolor: str = \"white\", edgecolor: str = \"none\", font_mode: str = \"truetype\", overwrite: bool = False, mkdir: bool = False, metadata: dict[str, Any] | None = None, provenance: dict[str, Any] | None = None, write_manifest: bool = False, savefig_kwargs: dict[str, Any] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f0800e3450cd28da18e50b0da5b36598ee7104753282b75a17659369ff7e152",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L602-L638",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b9c9a6821bb717f5a0f5cebab2f6c6f1f6213d74f612c7a1302e1a2f56f03d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#save_for_journal",
      "name": "save_for_journal",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L439-L513",
      "signature": "def save_for_journal( fig: Any, filename: str | os.PathLike[str], journal: str, figure_type: str = \"combination\", *, confirm_profile: bool = False, format_name: str | None = None, dpi: float | None = None, overwrite: bool = False, ) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "23c3d0a336962adbbf0258b9f087f7835411868e1012126e86d8ab93e94a4aaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#save_publication_figure",
      "name": "save_publication_figure",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L323-L359",
      "signature": "def save_publication_figure( fig: Any, filename: str | os.PathLike[str], formats: Iterable[str] = (\"pdf\", \"png\"), dpi: float = 300, transparent: bool = False, bbox_inches: str | None = None, pad_inches: float = 0.1, facecolor: str = \"white\", *, overwrite: bool = False, provenance: dict[str, Any] | None = None, write_manifest: bool = False, **kwargs: Any, ) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f50a6c6fdf1dd8486276dbaac1f7ba15f0fd0bdb5201b43b185a73c9b9cf3262",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/figure_export.py#verify_font_embedding",
      "name": "verify_font_embedding",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/figure_export.py",
      "span": "L516-L532",
      "signature": "def verify_font_embedding(pdf_path: str | os.PathLike[str]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d66a7307950d153f808a7242b1ab8f6ec12b15dcee54e7deb72d8ba728de6cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py",
      "name": "image_metadata.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L1-L732",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bd8df685ae0a31f92ab10ac5e5ac7472275d06a62e1543adb94a4de6bfe78693",
      "chars": 25029,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_base_metadata",
      "name": "_base_metadata",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L89-L96",
      "signature": "def _base_metadata(path: Path) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b93e9c1782263f62b9223bdff7e970b9287182be295e0c589e9a5d938e72a301",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_check",
      "name": "_check",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L451-L465",
      "signature": "def _check( name: str, status: str, *, actual: Any, expected: Any, detail: str, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "44c1bbd2a7d7e7f4a19dbd53a38b80337610a3d6c3b34f3e42db0094b938fd00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_dpi_pair",
      "name": "_dpi_pair",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L61-L66",
      "signature": "def _dpi_pair(value: Any) -> tuple[float | None, float | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "59ff2fa0ac6f64a1627fd263f01af70b8da4673801c4e61abc06991e206a1ed2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_finite_number",
      "name": "_finite_number",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L52-L58",
      "signature": "def _finite_number(value: Any) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f72bcca50863fa979dc8cdaa27d9ea4b7ee07308414d10ba22fba681042db0c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_length_to_inches",
      "name": "_length_to_inches",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L69-L86",
      "signature": "def _length_to_inches(value: str | None) -> tuple[float | None, str | None]",
      "exported": false,
      "origin": "ast",
      "body_hash": "48a2e188b208fe52aed88e8446674ee1fb6ff52acfaebd8bb6a21cbe27920879",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_normalize_formats",
      "name": "_normalize_formats",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L440-L448",
      "signature": "def _normalize_formats(values: Iterable[str]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "354524ac6640c07013d4855c1c899ce5704e6c4cd5602cd004c458a3dbabb736",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report",
      "name": "_pdf_font_report",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L236-L318",
      "signature": "def _pdf_font_report(page: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "cf9fe4f43bdb14acc680091e378cb4ed49f8af0bbce3618d563f64877c7ed476",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report.embedded_status",
      "name": "embedded_status",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L255-L280",
      "signature": "def embedded_status(font: Any) -> bool | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "854984f4fb29a2208d39fe4aa87dd6a58b0e08951b66698ea56291b1c087ce43",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L643-L698",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "435b439e114270146deee7e3776553d70a71384b40b128e5570b661f08523ea3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#inspect_eps",
      "name": "inspect_eps",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L381-L413",
      "signature": "def inspect_eps(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "738d89555dd074965700f3ad86a2837510dfede5e11d6409c1ca51807e624e4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "name": "inspect_file",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L416-L437",
      "signature": "def inspect_file( value: str | Path, *, max_bytes: int = MAX_INPUT_BYTES, max_pixels: int = DEFAULT_MAX_PIXELS, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee17ac783d778df562898947354038201d6971e82f44cc14302ada7c80e43b21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#inspect_pdf",
      "name": "inspect_pdf",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L321-L378",
      "signature": "def inspect_pdf(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9e5cd15222a425f6135200aca5a92fdcee4b40462dadcc1668de3b44a20603a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#inspect_raster",
      "name": "inspect_raster",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L99-L156",
      "signature": "def inspect_raster(path: Path, *, max_pixels: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f2d0e6d68be19926791c8150d6c2c935de1f70dc458e0c5def2e63a84ccb327",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#inspect_svg",
      "name": "inspect_svg",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L159-L233",
      "signature": "def inspect_svg(path: Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a32dd294b07bd4082143e22c8a56fd5858be89bd0033fe5f98727e5bfa2b13d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L701-L727",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "01a73b20700a7a58c15434128b25c8d9b9f1980373fdf4e2b01a6e93a68b3c38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/image_metadata.py#screen_metadata",
      "name": "screen_metadata",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/image_metadata.py",
      "span": "L468-L640",
      "signature": "def screen_metadata( report: dict[str, Any], *, expected_formats: Iterable[str] = (), expected_modes: Iterable[str] = (), min_dpi: float | None = None, max_dpi: float | None = None, min_width_px: int | None = None, max_width_px: int | None = None, min_height_px: int | None = None, max_height_px: int | None = None, max_file_bytes: int | None = None, target_width_mm: float | None = None, alpha_policy: str | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e41415f74d5079add087d41da17d8e8c93d5750aa27da2a0cb90276576b795b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py",
      "name": "palette_audit.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L1-L328",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3a90b3c9a4a39dde6a341dc3de7b99cd2bca4773c66564fc90cdc2706a5a8165",
      "chars": 11654,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#_linear_channel",
      "name": "_linear_channel",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L49-L51",
      "signature": "def _linear_channel(channel: int) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "28b79d9ca8a603bb6049e19f058c990f1b725e975e333c34218b9cd21dd2ee98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#_load_palette_asset",
      "name": "_load_palette_asset",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L82-L91",
      "signature": "def _load_palette_asset() -> ModuleType",
      "exported": false,
      "origin": "ast",
      "body_hash": "ce94db6cd17447ea704cb85bb3af5a01b1b722fdb1ba9761e7e49ec81af107bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "name": "audit_palette",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L107-L215",
      "signature": "def audit_palette( colors: Iterable[str], *, background: str = DEFAULT_BACKGROUND, role: str = \"graphical\", contrast_threshold: float | None = None, grayscale_min_delta: float = DEFAULT_GRAYSCALE_DELTA, name: str | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b6b85b85e896d84ef4fca1542805c7df9e71ae88160d6c0e2575f1343ff9e21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L218-L271",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcd1895a4f3eee6c9230ffbe814aa0fd75fc5f50b8e7a39f551732a4319f2c77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#bundled_palettes",
      "name": "bundled_palettes",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L94-L104",
      "signature": "def bundled_palettes() -> dict[str, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "26174f0feb68dab48e8a6518f6fb0c189cd88d43f9e5015c63c6280aad8be599",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#canonical_hex",
      "name": "canonical_hex",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L45-L46",
      "signature": "def canonical_hex(rgb: tuple[int, int, int]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ce845d8eed2850867bae696f3c4626d30a966e52c87ba6b491034f1feb2256d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#cie_lstar",
      "name": "cie_lstar",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L71-L79",
      "signature": "def cie_lstar(rgb: tuple[int, int, int]) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "82bdbb548e2d21a21d65f6dfd40e8bf73211451e18bedfb9d4f3c388173d78e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#contrast_ratio",
      "name": "contrast_ratio",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L60-L68",
      "signature": "def contrast_ratio( first: tuple[int, int, int], second: tuple[int, int, int] ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "90e3a92ff06bc024dc1215c28c1139f2db1ad7ef797488c0f5959e11df3f2c32",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L274-L323",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "4243c31f26aee8c2de70f28dbc895b8c06e08a0cb5b3e39d96cfc24c6d57f634",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#parse_hex_color",
      "name": "parse_hex_color",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L33-L42",
      "signature": "def parse_hex_color(value: str) -> tuple[int, int, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "adb2dc52f584c0c45ba876950bc736b33ee32372c2dbda866b8ada7be1b0ec00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/palette_audit.py#relative_luminance",
      "name": "relative_luminance",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/palette_audit.py",
      "span": "L54-L57",
      "signature": "def relative_luminance(rgb: tuple[int, int, int]) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "69be9b00742cafe5900172f58cf283cf11f7120dc4fbaf0cdb2c731af81d1967",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py",
      "name": "style_presets.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L1-L502",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3c811ecb16c012691b69e9f27993ef096977754c3a6e73d247e816a674efff21",
      "chars": 16123,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#_load_palette_asset",
      "name": "_load_palette_asset",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L143-L152",
      "signature": "def _load_palette_asset() -> ModuleType",
      "exported": false,
      "origin": "ast",
      "body_hash": "ac42585d728e0ce91e7897affc57b7230c6b99732005a0466c1974892b1bc10d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#_matplotlib_style",
      "name": "_matplotlib_style",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L186-L200",
      "signature": "def _matplotlib_style(style: dict[str, Any]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8035bd0000ecb9c4b04c2e976770e436ee6580c8903abb6f674fde1246c6464a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#_mplstyle_value",
      "name": "_mplstyle_value",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L369-L374",
      "signature": "def _mplstyle_value(key: str, value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "1e1182478eec47cc68202b7d28078fee011ad7516fe710fc8a043eb0868b94eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#_serializable_style",
      "name": "_serializable_style",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L415-L428",
      "signature": "def _serializable_style(style_name: str, palette_name: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "54ed292fe50edc2cf8e5276cda046a66ee1a4c2d00fd13c53a579700aac05fa3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#apply_publication_style",
      "name": "apply_publication_style",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L203-L228",
      "signature": "def apply_publication_style( style_name: str = \"default\", *, palette_name: str = \"okabe_ito_on_white\", reset: bool = False, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed99a250de6e1c0362d609ae78dfc4d629275a987b3380a480b0e3a7020509ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "name": "available_palettes",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L155-L159",
      "signature": "def available_palettes() -> dict[str, list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9acc1c1a2cfa24d73101b9bd1a627913dfbd47b832d23150b1e683766aec655",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L431-L453",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7be45314129b6b9b0f5e00fa0b7ecbd4903fbb83568d6c024ec96199520d462",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#configure_for_journal",
      "name": "configure_for_journal",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L317-L366",
      "signature": "def configure_for_journal( journal: str, figure_width: str = \"single\", *, aspect: float = 0.75, palette_name: str = \"okabe_ito_on_white\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd8744cf32626c81dd9e8e22a1f847496a6c797df272d7e896b5f664a8dbc23b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#create_style_template",
      "name": "create_style_template",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L377-L403",
      "signature": "def create_style_template( output_file: str | Path, *, style_name: str = \"default\", palette_name: str = \"okabe_ito_on_white\", force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad4a2192956f5fa77b4a907e70c9f2b1ea69ae4aa2ccd67a9ef52a4ea75b2101",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#figure_size_for_profile",
      "name": "figure_size_for_profile",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L286-L310",
      "signature": "def figure_size_for_profile( publisher: str, width: str, *, aspect: float = 0.75, ) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c6bcb2935d6f99958eb3852d91a5fb222f16edbb293a6f342bd01b997985c66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "name": "get_style",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L162-L183",
      "signature": "def get_style( style_name: str = \"default\", *, palette_name: str = \"okabe_ito_on_white\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f5384595bf3a03d1f64bd90af276fc0517b617fd53970eaf4bbd4cec4e55a9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#load_publisher_profiles",
      "name": "load_publisher_profiles",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L274-L283",
      "signature": "def load_publisher_profiles() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb8b09b8b253f426925d013dbecd8768465967f7dce3c6efe53c5726f019fd03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L456-L497",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccc90044fd3d9f03348b801d3f9cf6e25aebb519cb4cadcbd2f8de86d8389efa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#math_is_finite_positive",
      "name": "math_is_finite_positive",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L313-L314",
      "signature": "def math_is_finite_positive(value: float) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "0831ab1b7771407a994765f0af8df8541f2070e56d89504807193569d1371054",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#reset_to_default",
      "name": "reset_to_default",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L406-L412",
      "signature": "def reset_to_default() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c04c7109ef08e790da66f8880ef419d4e6ef6041a17807b2e06c13b1931855b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#set_color_palette",
      "name": "set_color_palette",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L254-L271",
      "signature": "def set_color_palette(palette_name: str = \"okabe_ito_on_white\") -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e5b008a446d9288725653a7c476c1f7fa93152079c094f257b61179f9b7ba36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_presets.py#style_context",
      "name": "style_context",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_presets.py",
      "span": "L232-L251",
      "signature": "def style_context( style_name: str = \"default\", *, palette_name: str = \"okabe_ito_on_white\", ) -> Iterator[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2850bcde74096ca0215e9e8e565b110563058e76190d0e65973ec0c336f405d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_preview.py",
      "name": "style_preview.py",
      "kind": "file",
      "path": "skills/scientific-visualization/scripts/style_preview.py",
      "span": "L1-L233",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f96f2ec01b86423418446eebdd2ed887da83f0a1b54f499d920191d56a3542c0",
      "chars": 7762,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_preview.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_preview.py",
      "span": "L158-L178",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "15cf15f18994fbb19d7a9eaab190af758c13d8b39411b497b3592a774a15b8bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_preview.py#build_preview",
      "name": "build_preview",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_preview.py",
      "span": "L14-L155",
      "signature": "def build_preview(style_name: str, palette_name: str) -> tuple[Any, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "241205f1e9f55a1b7c0c696ced6d46f5c80af9284d3d2fec37c4ccec773f4ade",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-visualization/scripts/style_preview.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scientific-visualization/scripts/style_preview.py",
      "span": "L181-L228",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bca164c9c2d7f3dcbfdab7e813c91fde416f1718caa3e4683571f1ef52198a51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L1-L241",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ef5f301a8bd71e8ca170299d44bf37f083ba4e1be88a8c193b75b30e74c3bc3d",
      "chars": 7670,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#_check_json_bounds",
      "name": "_check_json_bounds",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L73-L87",
      "signature": "def _check_json_bounds(value: Any, depth: int = 0) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "59fe190281b033891fa3afd52acbade8a75b2a1b945635f75b4f971dc6eb8db8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#_checked_file",
      "name": "_checked_file",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L36-L49",
      "signature": "def _checked_file(path_value: str | Path, suffixes: Iterable[str]) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "307a8236879f228e4c1fc468591b29825c6875c34395c63d7476b0e3ff120788",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#_reject_duplicate_keys",
      "name": "_reject_duplicate_keys",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L60-L66",
      "signature": "def _reject_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "63eef23a4665d5a0c8cf17b5467e9b83183f8239fbed1593ea88857f9a012b78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#_reject_nonfinite_json",
      "name": "_reject_nonfinite_json",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L69-L70",
      "signature": "def _reject_nonfinite_json(_value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a03990241b528923bcf8498fc5f78d9f5f679c11cd04e861d69f0fb27c53bd26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#emit_input_error",
      "name": "emit_input_error",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L169-L173",
      "signature": "def emit_input_error(tool: str, exc: Exception) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "df4cce37b7f75325501e3f92fe967b9d830807506a96e5c20f592cb1733bd371",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#emit_report",
      "name": "emit_report",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L138-L166",
      "signature": "def emit_report( tool: str, issues: Iterable[Issue], *, summary: dict[str, Any] | None = None, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e17de94f843051271f0017fc692073e2da9027a7df572450efe0d3c429b628ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#InputError",
      "name": "InputError",
      "kind": "class",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L21-L22",
      "signature": "class InputError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7132f097e55a72f49071bfc8a5da4f3636c231dcac76baea508de871fa8075c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "name": "is_nonempty_string",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L190-L191",
      "signature": "def is_nonempty_string(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "749953ea0414fc0e907fffb8f31d5fd7ef95f872661e2f37bb2484e8a635cb0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#is_placeholder",
      "name": "is_placeholder",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L194-L202",
      "signature": "def is_placeholder(value: Any) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd7871568c39a3c19178ef1cbb827241c9bc5d88a70d263a9356870e3a5b02af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#issue",
      "name": "issue",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L126-L135",
      "signature": "def issue( severity: str, code: str, *, location: str | None = None, item_id: str | None = None, ) -> Issue",
      "exported": true,
      "origin": "ast",
      "body_hash": "b06c8f04995778f31f9f83c618ce8267181d3e0302c4dd1613a873047ef54fd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#Issue",
      "name": "Issue",
      "kind": "class",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L26-L33",
      "signature": "class Issue",
      "exported": true,
      "origin": "ast",
      "body_hash": "011c00075229e9967af9cee7e2f0fbed26953a311484c63bbe46c8dc005371c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#Issue.to_dict",
      "name": "to_dict",
      "kind": "method",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L32-L33",
      "signature": "def to_dict(self) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb1a617ce1c3dc303555d873dd2e1c04291b0cfab3ab7965fcd12dd0e0f1dc21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Issue"
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#main_guard",
      "name": "main_guard",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L227-L231",
      "signature": "def main_guard(tool: str, callback: Any) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "407d23b27b4b19a55e782ee0c7fb423d05ca23df074422a3fc8211508a5cc85f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#read_csv",
      "name": "read_csv",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L104-L123",
      "signature": "def read_csv(path_value: str | Path) -> tuple[list[str], list[dict[str, str]]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c7211f628f986393c6e75a77acb1b8b4e2fa212d200cc4ab5b8b1d308d91c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L90-L101",
      "signature": "def read_json(path_value: str | Path) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f1207e1411b37d988f05445250c99841b29486ee4576b865b02b93d03cd1cf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#read_text",
      "name": "read_text",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L52-L57",
      "signature": "def read_text(path_value: str | Path, suffixes: Iterable[str]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "75bf50321d77670f985a9c965e384c6a2481ea6eb9549bc8bebf9694430c2a30",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#require_list",
      "name": "require_list",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L182-L187",
      "signature": "def require_list(value: Any, label: str) -> list[Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c91c1524332d2453deaf9d696c3e82c94457f94d1845c591bf4c24eabd79827",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#require_object",
      "name": "require_object",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L176-L179",
      "signature": "def require_object(value: Any, label: str = \"root\") -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "32ea7b82c32c6caeae48adb3fda413ab5be156f140e29cb16d5d0dac8cfbe50f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L234-L235",
      "signature": "def run(tool: str, callback: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6247ae9a06f75c27c5532acf900fd4670480b703bff3af0f62e5194ddfba37b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/_common.py#write_new_text",
      "name": "write_new_text",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/_common.py",
      "span": "L205-L224",
      "signature": "def write_new_text( path_value: str | Path, content: str, suffixes: Iterable[str] ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cc96cce9869a05aff925bdd9f27a6aaff22edc468e5b2da3f00c34bcb9557b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py",
      "name": "audit_claims.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L1-L242",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6457413cfdc12317852f35cecaacb3e11e821d25d5925125f1a9af886eeb6d9a",
      "chars": 8834,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py#_split_evidence_ids",
      "name": "_split_evidence_ids",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L48-L49",
      "signature": "def _split_evidence_ids(value: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "707d6533f8bddeda0c17c907c7cb6dfd17a708889fe9cf2a692f927d65d59e61",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py#audit_markdown",
      "name": "audit_markdown",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L130-L202",
      "signature": "def audit_markdown( text: str, claims: dict[str, dict[str, Any]], sources: dict[str, bool], ) -> tuple[list[Issue], set[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "62d9b34e06b8621e55c01db2a2d35edaebcdd3dc48f2aa3f4d6fe8ae38b88294",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L205-L215",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "24eaf95be49926cef1abda8c3175166d27d3263ae9bd394f2c92a9f11cb67deb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L218-L237",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a253346e0df816c7dafbe805405f1c2987f5b836b3b8cb76e06796c17b57658a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py#load_claims",
      "name": "load_claims",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L72-L127",
      "signature": "def load_claims( path: str, sources: dict[str, bool], ) -> tuple[dict[str, dict[str, Any]], list[Issue]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "98b540cf3050a0e44fc9860f5750b40fee466543a667b3fccab781bf6829c4ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/audit_claims.py#load_sources",
      "name": "load_sources",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/audit_claims.py",
      "span": "L52-L69",
      "signature": "def load_sources(path: str) -> dict[str, bool]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf186e15d223a146aca976d6a0a534f44d465fcf6dbdfd20c50401c4ea67bb62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py",
      "name": "check_consistency.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L1-L409",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5bd1f0dcbcccdac31e422b5a7b220d1ab1272a7eed906a62c0a5f2518e495d87",
      "chars": 14209,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#_check_fields",
      "name": "_check_fields",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L75-L89",
      "signature": "def _check_fields( value: dict[str, Any], expected: set[str], *, location: str, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3d47e706f699d119aa3d313927059fccff7a51e92fc2956c8aabe273bd4a2a18",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#_is_number",
      "name": "_is_number",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L67-L72",
      "signature": "def _is_number(value: Any) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "e556ce17104ee726e794eb146c26990d9e97d8c126a418c3782fba2665d72610",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#_validate_ids",
      "name": "_validate_ids",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L92-L107",
      "signature": "def _validate_ids( values: Any, *, pattern: re.Pattern[str], location: str, code: str, issues: list[Issue], ) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "257bac0aeaace44bf06edb58ec3c5e0ec12deb38677ccc05f63503c3c5ee163c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L374-L382",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "14c5a114ced99dcc2bd3a47463a40a26c081ec4f0f59e019bdefdb5573281618",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L385-L404",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "724bdac3451a5a03ca9a7d04360340e15dc2aef798f8b304b4e3010b32d23aca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#validate_methods_results",
      "name": "validate_methods_results",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L240-L371",
      "signature": "def validate_methods_results(data: dict[str, Any]) -> tuple[list[Issue], int, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "490c0d6305f23b5341b0f1ed14e45a9c75bce6b8008eefad4cc6abb78756279c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "name": "validate_numeric_facts",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_consistency.py",
      "span": "L110-L237",
      "signature": "def validate_numeric_facts(data: dict[str, Any]) -> tuple[list[Issue], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "160cca491ad5d6ccf7c649dfde511c5fbcc16943d5c46a2a72a2ecdc1a3f57d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py",
      "name": "check_references.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L1-L220",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a262d6e935e69ec1c1f25a36b8a12b6905b3f3dee0a11d94557d3f69857c5f07",
      "chars": 7075,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#_record_duplicate",
      "name": "_record_duplicate",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L68-L88",
      "signature": "def _record_duplicate( seen: dict[str, str], normalized: str, evidence_id: str, code: str, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "40ca2094a8911c4d8d18fa37f1f4898500de348e744611d4cf9fa5ae60005843",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L196-L204",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "1827fe7060e8e96a52f48e723063c75443aac53574e447d2008d2bcb081f21fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "name": "check_sources",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L91-L193",
      "signature": "def check_sources(data: dict[str, Any]) -> tuple[list[Issue], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7aeed9449e838264c6ef5a5c3502daa45ac7e2c1b730fb98793e0e6f25247f76",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L207-L215",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "74ee486b5cbc27b510e1ec4ddb95225e63f490533a3df0f52db7a02ac72590b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#normalize_doi",
      "name": "normalize_doi",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L31-L37",
      "signature": "def normalize_doi(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b3c6d957bfe8b33d7bfc555e53ee2001fb5a2417befc425950f2f4a8972ed8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#normalize_isbn",
      "name": "normalize_isbn",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L45-L46",
      "signature": "def normalize_isbn(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ee52bb4689a92c605f8ea82ecdc8d3d49f4fba0e12a0a3184570496c1ecbf57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#normalize_title",
      "name": "normalize_title",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L40-L42",
      "signature": "def normalize_title(value: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d98462bd857a67f59319254d0ae1fbfb4c26754caf9841655c880bef44b7b866",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/check_references.py#valid_isbn",
      "name": "valid_isbn",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/check_references.py",
      "span": "L49-L65",
      "signature": "def valid_isbn(value: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ed54935a9b8157ea3a785d341f00319ad4f6b8bd155d278e59e9f764b93e7d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/lint_manuscript.py",
      "name": "lint_manuscript.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/lint_manuscript.py",
      "span": "L1-L172",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "08ff45315c4dadd1c91104e3639b6bec7a6086c000830dc9d0b2b965895b3398",
      "chars": 5881,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/lint_manuscript.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/lint_manuscript.py",
      "span": "L142-L155",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "9831658a8fa12e829e9c6801de9fcc394df4113f72be8fb48127f3f85818f705",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/lint_manuscript.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/lint_manuscript.py",
      "span": "L158-L167",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bb97dbb3ed7410c9fe87f1e5cae6c0098b1e59507ab140b7407990983db6186",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/lint_manuscript.py#lint_text",
      "name": "lint_text",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/lint_manuscript.py",
      "span": "L88-L139",
      "signature": "def lint_text(text: str, manifest: dict[str, Any] | None) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1946a12238b265380438c3906ae6a9894841cb1f2401570d34fce341978ed407",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/lint_manuscript.py#load_manifest",
      "name": "load_manifest",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/lint_manuscript.py",
      "span": "L65-L85",
      "signature": "def load_manifest(path: str | None) -> tuple[dict[str, Any] | None, list[Issue]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc58ffe83eabcdb771310c1742615f1228675e0c6775951212b75ba840fc91d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "name": "scaffold_manuscript.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L1-L144",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "69e9a82c7d0608646872c0f4ad08b538f0c67175b48601d9d52ea527334ce4ae",
      "chars": 4328,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py#_json_text",
      "name": "_json_text",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L34-L35",
      "signature": "def _json_text(value: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "db00c89ba6d85ee8098ebaf6b8e3273ad556e8bf625453f735bbf4ecf03b2eec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_coverage",
      "name": "_prepare_coverage",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L54-L60",
      "signature": "def _prepare_coverage(guidelines: list[str]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "54e7d8164803a32af0dcae5c0b360c22d6c12c9fd51980d5e7b8b8f32c4b87ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_manifest",
      "name": "_prepare_manifest",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L38-L51",
      "signature": "def _prepare_manifest( *, document_id: str, study_design: str, guidelines: list[str], ) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "db3e0a37e825d02736a87f09d30843205500337cf59fed94ee684eaf34f2e425",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L97-L113",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "764fb968d2d599b18b742e88de7985b1655fed46b31db29310cfddb191802f4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L116-L139",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb05a65652446efe600ee1c44965bc758f19e04ad594b015c11f61a07b191857",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/scaffold_manuscript.py#generate",
      "name": "generate",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "span": "L63-L94",
      "signature": "def generate( output_dir: Path, *, document_id: str, study_design: str, guidelines: list[str], ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1658e2722dd1a52d9568f85c606df61b0e50176aecb86c25ee900540ff9f9efb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "name": "select_reporting_guidelines.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L1-L215",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d130036ab1df6486cb54431a168207af03a52c626459ba7471041b0ee5aab567",
      "chars": 7580,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py#_condition_matches",
      "name": "_condition_matches",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L47-L53",
      "signature": "def _condition_matches(item: dict[str, Any], args: argparse.Namespace) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "e1ebbf3b2ce4da7195e4811885f2a33862dab8589f2fa98ac5050355b1a72435",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L169-L194",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a848bc508a3e7ad44f7975bb5e53380d5668276cb9ac4b9069d6bcdabf79fcb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py#check_coverage",
      "name": "check_coverage",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L87-L166",
      "signature": "def check_coverage( registry: dict[str, dict[str, Any]], coverage_path: str, ) -> tuple[list[Issue], dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8d087cd9e4098b4222ab59c576dd01683947c2579e6dbe30f1e3e0c47a273d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L197-L210",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0a6cf665fa1d13cbc34604d83909f28a436cb4d8d3697559a4910b96f709533",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py#load_registry",
      "name": "load_registry",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L32-L44",
      "signature": "def load_registry() -> dict[str, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc81beb08059f4da7cbeda43b97885665f37e186d7cfaae8d3224e9417cd36a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/select_reporting_guidelines.py#select_guidelines",
      "name": "select_guidelines",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "span": "L56-L84",
      "signature": "def select_guidelines( registry: dict[str, dict[str, Any]], args: argparse.Namespace, ) -> tuple[list[str], list[str], list[Issue]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ba3f58232664326fc1f8c79fa41e849e24c3c18bd9aadb3d59c50686eead704",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py",
      "name": "validate_authorship.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L1-L323",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7e1f44ac8ad7c232cf1c34f4c51d54190ffb24230a6a0b9ceeddf6d58a2ff89d",
      "chars": 11494,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#_validate_roles",
      "name": "_validate_roles",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L63-L79",
      "signature": "def _validate_roles( roles_value: Any, *, item_id: str, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7532a5245f3a35efd7ddbd32cb64d4361665145dac3136ae5722fbddc31650b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L287-L297",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f17670b3c08864e57298cc0417287d3b824b55309dcb93a612b576c4589058e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L300-L318",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "04674227782585939145f63642a8a131f53e354778811859726599a3390ef985",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#validate_accountability",
      "name": "validate_accountability",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L156-L181",
      "signature": "def validate_accountability( data: dict[str, Any], author_ids: set[str], ) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "223fd0ddf1ae37fa5191e18316e3de562663de2ab27dac11aaf1f865721af815",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#validate_ai_disclosure",
      "name": "validate_ai_disclosure",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L184-L252",
      "signature": "def validate_ai_disclosure(data: dict[str, Any]) -> tuple[list[Issue], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f14d95ad6b5475158d5a532cd643878a0f4467ad04cadb518940f38419f737b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#validate_declarations",
      "name": "validate_declarations",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L255-L284",
      "signature": "def validate_declarations(data: dict[str, Any]) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "97142ca8ffe6986beddbee35568217f207a6685dc64f3305781827b00286eadc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_authorship.py#validate_people",
      "name": "validate_people",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_authorship.py",
      "span": "L82-L153",
      "signature": "def validate_people(data: dict[str, Any]) -> tuple[list[Issue], set[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d6d9ef6557c7c7c1e5ed1a0c4e84292a76e0bfdb2389d7d46db5db950964638",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py",
      "name": "validate_manifest.py",
      "kind": "file",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L1-L461",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "06c827653a095455cbf7d8a80a7a818018ed55076d3421863cff3dcb5e031750",
      "chars": 14514,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#_check_unknown_fields",
      "name": "_check_unknown_fields",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L71-L81",
      "signature": "def _check_unknown_fields( obj: dict[str, Any], allowed: set[str], *, location: str, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "bf3a97fdf27c84a78a51dd70aa8d3479e69f631404f01f02da866f24deffe527",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#_missing_or_placeholder",
      "name": "_missing_or_placeholder",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L84-L95",
      "signature": "def _missing_or_placeholder( obj: dict[str, Any], key: str, *, location: str, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "05ccf02a31133377b650b7be0dd428434425b2895f9d77df326638d257df2ca4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#_validate_human_gate",
      "name": "_validate_human_gate",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L98-L118",
      "signature": "def _validate_human_gate( value: Any, *, location: str, submission_ready: bool, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "25b72228020dc9bffa9ecf838aee7a5b3d7dc630d26e0e5179eebc96c9878c80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L424-L443",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "44728734fb9f66a8cd63eaee09ceb137b4f5d5202a082df05cdcd50889a24c28",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#cli",
      "name": "cli",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L446-L456",
      "signature": "def cli() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "47a630a0a996e758a245562094e3a309fbcd028fd4ed1da02e6c8afb3aeb8f7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#detect_kind",
      "name": "detect_kind",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L416-L421",
      "signature": "def detect_kind(data: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1eea2cede02da71ac7cf04f0e5517775bbc9872e8036dc9ed50e235ec11b699d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#validate_manuscript_manifest",
      "name": "validate_manuscript_manifest",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L121-L233",
      "signature": "def validate_manuscript_manifest(data: dict[str, Any]) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "11b46a67e5c2ebcfe8b458fa9d53345b0d8f57a7222bc3c043acb2d9d3bad4b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "name": "validate_source_manifest",
      "kind": "function",
      "path": "skills/scientific-writing/scripts/validate_manifest.py",
      "span": "L236-L413",
      "signature": "def validate_source_manifest( data: dict[str, Any], *, require_verified: bool, ) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8a89834419af53663ecf89515d8d9b9bf62a614bbf375d5a6a3c7a09d771c87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/classification_pipeline.py",
      "name": "classification_pipeline.py",
      "kind": "file",
      "path": "skills/scikit-learn/scripts/classification_pipeline.py",
      "span": "L1-L258",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0879a3643690c4e8245a9e57ebac631751a1178d0b4c31b0bde87ce0c38992d0",
      "chars": 8044,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/classification_pipeline.py#create_preprocessing_pipeline",
      "name": "create_preprocessing_pipeline",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/classification_pipeline.py",
      "span": "L23-L59",
      "signature": "def create_preprocessing_pipeline(numeric_features, categorical_features)",
      "exported": true,
      "origin": "ast",
      "body_hash": "19b4f78faac8f5f6e4639b000173479ff6b4a360f42746effaadf7eae6785595",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/classification_pipeline.py#train_and_evaluate_model",
      "name": "train_and_evaluate_model",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/classification_pipeline.py",
      "span": "L62-L227",
      "signature": "def train_and_evaluate_model(X, y, numeric_features, categorical_features, test_size=0.2, random_state=42)",
      "exported": true,
      "origin": "ast",
      "body_hash": "47c3e17c22c0de493fbcc512b53c601fe351cdf7ba98062cb71372878ad35c06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/clustering_analysis.py",
      "name": "clustering_analysis.py",
      "kind": "file",
      "path": "skills/scikit-learn/scripts/clustering_analysis.py",
      "span": "L1-L387",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "aec71c7f1abfbc218eaa7ce000a85a726bef4d7b777038179aa4b44e96ca4d78",
      "chars": 11396,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/clustering_analysis.py#compare_clustering_algorithms",
      "name": "compare_clustering_algorithms",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/clustering_analysis.py",
      "span": "L111-L198",
      "signature": "def compare_clustering_algorithms(X, n_clusters=3)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd10a5150813577a57614bf8aab683f038c86298b76959a5d829a727a7a8e79e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "name": "complete_clustering_analysis",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/clustering_analysis.py",
      "span": "L277-L335",
      "signature": "def complete_clustering_analysis(X, true_labels=None, scale=True, find_k=True, k_range=range(2, 11), n_clusters=3)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8737c1b2f662f0dc31610ce83aa21186dcbd187422eb1337603740ecc414c942",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/clustering_analysis.py#find_optimal_k_kmeans",
      "name": "find_optimal_k_kmeans",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/clustering_analysis.py",
      "span": "L51-L108",
      "signature": "def find_optimal_k_kmeans(X, k_range=range(2, 11))",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ef26ce320e3ed65c8a8bc5503a08f5817b4faefc252c4b3fb678233621d5960",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/clustering_analysis.py#preprocess_for_clustering",
      "name": "preprocess_for_clustering",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/clustering_analysis.py",
      "span": "L19-L48",
      "signature": "def preprocess_for_clustering(X, scale=True, pca_components=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c47325ed8e56f443c46e6ac200809c03e688bd4e84878332217cbc22b389554d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-learn/scripts/clustering_analysis.py#visualize_clusters",
      "name": "visualize_clusters",
      "kind": "function",
      "path": "skills/scikit-learn/scripts/clustering_analysis.py",
      "span": "L201-L274",
      "signature": "def visualize_clusters(X, results, true_labels=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "569dca0b8e3c1d68b2904891227e44a21fd6d691c399270d79b99a400c2adecb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L1-L457",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "51066edf03bb949254c22374328534f6998a1a37775c0a2c84aded58eef58ca9",
      "chars": 15360,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#_json_bytes",
      "name": "_json_bytes",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L187-L207",
      "signature": "def _json_bytes(document: Any) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "53716e64aab30964537f615c36e6bfbf10c21e2c8fe6c2a277b0030f5c9da5cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#atomic_save_npy",
      "name": "atomic_save_npy",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L374-L388",
      "signature": "def atomic_save_npy( value: Any, output: str | os.PathLike[str], *, force: bool = False ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bac0ca045306550c00b74633ad05ccec1306ee56088b72813de113f2f2a90f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "name": "atomic_save_npz",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L391-L414",
      "signature": "def atomic_save_npz( arrays: dict[str, Any], output: str | os.PathLike[str], *, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c124dd9246f297a26fe3d563ac11f00def10a5d9f61e37a7a7fc97cddbb4e52f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L166-L184",
      "signature": "def atomic_write_bytes(path: Path, payload: bytes, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "95e5ddad90150231a3dcb818f82cc178d85be6207db59f29883927cfbd0995af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L32-L46",
      "signature": "def bounded_int(minimum: int, maximum: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3d664c412c2d8144ea7618ed510cacab93b6c0201c952d7fe5df3f8580166ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#bounded_int.convert",
      "name": "convert",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L35-L44",
      "signature": "def convert(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe2bbbaf442abe8e6a9398736630e38fcef26a910f9af231c80db681da854bba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L108-L133",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, suffixes: Iterable[str], max_bytes: int = MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f9ed70751e42cabbbf8e3e1140b0d1d44ff984a8ec16ba91796c1597522c87c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L136-L163",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "df6dd9062db615b3f9cef6e4fe2eca8bfc6b4249dea5f9b118d0d30ec5ef4fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L28-L29",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bae2dcdcef010efd981c6efe736793f5ed43285a4cd9df0297add060bed56ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L210-L223",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b90a9ab41610e87974509916cf7ea7ee1c3b59378437432feddb75fd56d1425",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#emit_text",
      "name": "emit_text",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L226-L243",
      "signature": "def emit_text( text: str, *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f61637d8c5927bf708b70a0652270d6fb058d4cab4b2aa83daa117957a3d28e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L49-L58",
      "signature": "def finite_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "6234f24e4c06364680a7841d4692e961d09166bdae36677a977daec5125ebece",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L246-L258",
      "signature": "def load_json(value: str | os.PathLike[str]) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "659e8beea32412ebca21c97363ecef1d2ad401949511c7ad9f7c97f6c653ecfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#load_json.reject_constant",
      "name": "reject_constant",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L251-L252",
      "signature": "def reject_constant(constant: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5e1d4bbeff611c7ce4129892135842ccb16d13da1aba0b28d1c5e4995cbe51c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#normalize_binary_event",
      "name": "normalize_binary_event",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L293-L323",
      "signature": "def normalize_binary_event(values: Any)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ecb37f85d7d4bf8dfd98cc45401202ef34e367eed83d375bd2f5be2f9fcfbe4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#normalize_positive_times",
      "name": "normalize_positive_times",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L326-L346",
      "signature": "def normalize_positive_times(values: Any, *, label: str = \"time\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "e601cd9b140dcf8aa40659b68b002c6d29ff76b2e575473cf98cc66e335e31fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#parse_floats",
      "name": "parse_floats",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L94-L105",
      "signature": "def parse_floats(value: str | None) -> list[float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "31c94193dd73117b9e2a67d94331eb696533536a4bc094d6cac3f2b75d81a050",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#parse_names",
      "name": "parse_names",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L79-L91",
      "signature": "def parse_names(value: str | None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f56567bcbd87ea255168ba4ab9d64ecba2a6c57df34cc0cd87da4156c3f7aeb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#positive_float",
      "name": "positive_float",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L61-L67",
      "signature": "def positive_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "691a8db15bf98641abd2f7d5dd49e52f1b50349f304735945ad5f2a870ec5156",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#probability",
      "name": "probability",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L70-L76",
      "signature": "def probability(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "eee6724a099dd656e3794efdf5f88a773ed2eda29768c5a0e0377239963059b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#read_csv",
      "name": "read_csv",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L261-L276",
      "signature": "def read_csv(value: str | os.PathLike[str])",
      "exported": true,
      "origin": "ast",
      "body_hash": "2eb28241c35558bc8c8a8a7d55afbefc9c641ca60fe8c9b1638cb700da0bcc3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "name": "structured_survival",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L349-L371",
      "signature": "def structured_survival( event: Any, time: Any, *, event_name: str = \"event\", time_name: str = \"time\", )",
      "exported": true,
      "origin": "ast",
      "body_hash": "338898180316637e139f59e792ef74155e07b37e454b496b4e56dbf195e0b054",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#synthetic_survival_frame",
      "name": "synthetic_survival_frame",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L417-L456",
      "signature": "def synthetic_survival_frame( *, rows: int = 240, seed: int = DEFAULT_SEED ) -> tuple[Any, list[str], list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d2e072bc5d7d38900dc60bd0e2f40cad6c5d400162dc576c0fa7e0cccbc47c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/_common.py#validate_frame_bounds",
      "name": "validate_frame_bounds",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/_common.py",
      "span": "L279-L290",
      "signature": "def validate_frame_bounds(frame: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "280d230119bd1c8053c76abc83af3085fcfa94f60b9665e74ba7a7931bb65f68",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "name": "competing_risk_cif.py",
      "kind": "file",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L1-L287",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cdfe5088108ca9c3a06e4270fd2afbaf66e3ca27f0ce32894bfc45a18b082f3f",
      "chars": 10334,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L222-L244",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbf20f4a6be4d86d48642e6ff8606b80cedb92ed0b7886d6febfc05f96c7faee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#estimate_cif",
      "name": "estimate_cif",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L130-L219",
      "signature": "def estimate_cif( event: Any, time: Any, *, horizons: list[float] | None = None, confidence: bool = False, confidence_level: float = 0.95, variance_type: str = \"Aalen\", time_min: float | None = None, ) -> tuple[dict[str, Any], dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a97231c62b039a761c63eed0473f188d28f4e21e2e12dda1b1739e373ff0395a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#horizon_values",
      "name": "horizon_values",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L98-L127",
      "signature": "def horizon_values( unique_times: Any, cumulative_incidence: Any, horizons: list[float], ) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "920474ce43fd020eab7fd5e8e315417341f38ec6832194a0220499242b29eee3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L247-L282",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "277a59a25c1a987a1bc777b18ef8840dad538f68c3370b07218f18a43d4fb7e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_competing_event",
      "name": "normalize_competing_event",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L57-L87",
      "signature": "def normalize_competing_event(values: Any)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bdf68e8b34cee6331f80fe0ed0887d52a25df162e35dba001397194b3862b81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_times",
      "name": "normalize_times",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L90-L95",
      "signature": "def normalize_times(values: Any)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27717fe239465a070f336071e0e60c5a714097440b395c13177e77fa59d922f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/competing_risk_cif.py#synthetic_competing_risks",
      "name": "synthetic_competing_risks",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "span": "L26-L54",
      "signature": "def synthetic_competing_risks( *, rows: int = 300, seed: int = DEFAULT_SEED ) -> tuple[Any, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "03aea8b5a794fa556176275f14b9c6b1a585bfb4dccb2c5b1810d2531d24e9b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "name": "evaluate_survival_metrics.py",
      "kind": "file",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L1-L297",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ebb599c9e30a28ef14d97fb111a6903639b56787cdd837ba2625c4025bde88fd",
      "chars": 10672,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L259-L270",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "79a409cf95b748a59dad2143ad101737d9036938aed9365d169f2b867ad8c773",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#evaluate",
      "name": "evaluate",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L183-L256",
      "signature": "def evaluate(arrays: dict[str, Any]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c409017f163e28c497605ce710782f1f2048bc15c148106bd285fdeb0047dc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#load_prediction_archive",
      "name": "load_prediction_archive",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L67-L92",
      "signature": "def load_prediction_archive(value: str) -> tuple[dict[str, Any], str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c32017c8d2613919801ba889cd6cc3f3b6d84679fce3de7e031922819106ff32",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L273-L292",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "498daa5ac52180e2003ae0043cd8f29f0726b2c99c811c1e48b349204acea61a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs",
      "name": "synthetic_metric_inputs",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L30-L64",
      "signature": "def synthetic_metric_inputs(seed: int = DEFAULT_SEED) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "22d30acca095964a63274a5717d2c14f145e135119719b2a22b9c457ad91c4d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs.observed",
      "name": "observed",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L39-L45",
      "signature": "def observed(rows: int) -> tuple[Any, Any, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed89c6a3fc173f414c89d6359732a97b3a1e1d5e3e0e6a035bd305144fdd954f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_predictions",
      "name": "validate_predictions",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L143-L180",
      "signature": "def validate_predictions( arrays: dict[str, Any], ) -> tuple[Any, Any | None, Any, Any, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "45e279bc30f57d0afe76e32ab9b02d16bdb1161595527dd6c5048ca1d98d4358",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_time_grid",
      "name": "validate_time_grid",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "span": "L95-L140",
      "signature": "def validate_time_grid( times: Any, y_train: Any, y_test: Any, ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "4096c0bda5af4cb440ea305cda508990031f5c51cdd7f34c5b0fa562f8b87a72",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py",
      "name": "model_report.py",
      "kind": "file",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L1-L298",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1a7a30114b87c2ac448a0d1efb12a9c1d62f8fc42a833ccae6c172fa97bf8444",
      "chars": 11156,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#_feature_list",
      "name": "_feature_list",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L117-L123",
      "signature": "def _feature_list(schema: dict[str, Any], key: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "d06d47425f8fefc5e08e0c2a6ba31377a34d1c02a7a741a1da61854734970551",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#_mapping",
      "name": "_mapping",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L16-L19",
      "signature": "def _mapping(value: Any, label: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5611d7d2bc144d5de799cb6e9b28195a47b0792d1dc71d0e00df59da94a4668a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#_scalar",
      "name": "_scalar",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L22-L40",
      "signature": "def _scalar(value: Any, default: str = \"not supplied\") -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "6ad949f4eb507da4a6ffc167bb6c2bfcc88b4b6ae5702e7dc582e2084283262c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L245-L262",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "13205220379957da48987cd41ec7ac79829b0ff30a809c6485b086e7a936d336",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L265-L293",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "84fce8bd033f5bde132d7667ab87ac263b9f3ca9b6b253e38fd33b64bc0a656c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#render_report",
      "name": "render_report",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L126-L242",
      "signature": "def render_report( training: dict[str, Any], metrics: dict[str, Any], *, competing_risks: str, title: str, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "574263ae69b4d3a9f42fed9cf0d9c22c751ad2fddc24d8d5c8fd0001679879e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#synthetic_metric_summary",
      "name": "synthetic_metric_summary",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L93-L114",
      "signature": "def synthetic_metric_summary() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5faa3932e6678ec55baf5806ca7c6ff439014eac7ffc271a7044ee2280ca50a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/model_report.py#synthetic_training_summary",
      "name": "synthetic_training_summary",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/model_report.py",
      "span": "L43-L90",
      "signature": "def synthetic_training_summary() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1889146d9cd5529c877fa5d04ae5d23d61a8c823bd398f8637fadc0f6ea98121",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py",
      "name": "train_survival_model.py",
      "kind": "file",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L1-L584",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "adc52a41d2ff935d70f08548e034cf28fe336c58cd97bbfbaa2685c218109a5a",
      "chars": 19335,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#_event_field",
      "name": "_event_field",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L194-L195",
      "signature": "def _event_field(y: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "b19a7d802073a514ef0a406df0ddea075aeeb6b7865efac34d2dee6419b1de47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#_time_field",
      "name": "_time_field",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L198-L199",
      "signature": "def _time_field(y: Any) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "92f8967884decba1d6e40c795399ac68ab48940e9a40cf0817b51c2d5f2f5a16",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L493-L528",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a187a1a10a5e67fe08e6ec6e0acbaeb1b41f89878a0ce318a16b9f2d80121bb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#build_pipeline",
      "name": "build_pipeline",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L82-L174",
      "signature": "def build_pipeline( model_name: str, numeric_columns: list[str], categorical_columns: list[str], *, seed: int, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "927530cd4f6c07eaf5f7752d48d4aa8c4b3894be158a87d485fd3d0f752aabe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L531-L579",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "28522f21c28095a3f48631fba274b51bada269363e52f3ce0d45295fd7af4d4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "name": "nested_tune",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L248-L324",
      "signature": "def nested_tune( X: Any, y: Any, *, model_name: str, numeric_columns: list[str], categorical_columns: list[str], outer_folds: int, inner_folds: int, seed: int, ) -> tuple[list[dict[str, Any]], dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6db1953e287b6a44d7efe37782bae76df0e12834d6a619c28f192fd447b8343",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#parameter_grid",
      "name": "parameter_grid",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L177-L191",
      "signature": "def parameter_grid(model_name: str) -> dict[str, list[Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e650c84b50171858c172b7219040a39aabeac3c4c6103a7274e8a5fd9b845b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#prediction_archive",
      "name": "prediction_archive",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L327-L364",
      "signature": "def prediction_archive( estimator: Any, X_test: Any, y_train: Any, y_test: Any, risk: Any, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5367e03bac30988ea3276b146724efcd6d9c75c8a0eae3a54a976dda1e3986f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#resolve_schema",
      "name": "resolve_schema",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L34-L79",
      "signature": "def resolve_schema( frame: Any, *, event_column: str, time_column: str, numeric_columns: list[str], categorical_columns: list[str], ) -> tuple[Any, Any, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d53d2ba47a497ab45192cab6fc8c5f8dad2c25aaea5f47be17be294e10419d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#stratified_splits",
      "name": "stratified_splits",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L202-L217",
      "signature": "def stratified_splits(y: Any, folds: int, *, seed: int) -> list[tuple[Any, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "89f8bf6aaf8d9a9f7a8f5a0820ffbb7b543a3b58b175df9ea731f900bf8fd6e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "name": "train_and_report",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L367-L490",
      "signature": "def train_and_report( frame: Any, *, event_column: str, time_column: str, numeric_columns: list[str], categorical_columns: list[str], model_name: str, test_fraction: float, seed: int, tune: bool, outer_folds: int, inner_folds: int, ) -> tuple[Any, Any, Any, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "932e803617ad8ce6b7a784901b8c3c5ebddf5cad88a9f78a56b753f98471de6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/train_survival_model.py#uno_concordance",
      "name": "uno_concordance",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/train_survival_model.py",
      "span": "L220-L245",
      "signature": "def uno_concordance(y_train: Any, y_test: Any, risk: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "651acf25ed3449d5dcf7fabd5865f0b92d241c8a65ae9db8f4ff258253eea5c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "name": "validate_survival_csv.py",
      "kind": "file",
      "path": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "span": "L1-L173",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "10534388dcf7f7b7560dd4354f61b0c7061b17a3716215dffb643c2364f34f51",
      "chars": 5721,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/validate_survival_csv.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "span": "L100-L129",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "063b281b1c90aaaa74314f496a0e7878371d624b815c6203175dfff19f3073af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "span": "L132-L168",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3bae51af0943f74f91e1549961ae16e1260f37600a09702a183d5eff4dcfb90",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scikit-survival/scripts/validate_survival_csv.py#validate_and_convert",
      "name": "validate_and_convert",
      "kind": "function",
      "path": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "span": "L23-L97",
      "signature": "def validate_and_convert( frame: Any, *, event_column: str, time_column: str, feature_columns: list[str] | None = None, ) -> tuple[Any, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9776959bf4580664136fab47fa9cac7ce8576345a32db7b597291ebb832046c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "name": "rna_velocity_workflow.py",
      "kind": "file",
      "path": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "span": "L1-L241",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0efec71373af908aa8a6912575a2d2390a148d57a5740cf6244c1b240c740bf7",
      "chars": 7711,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scvelo/scripts/rna_velocity_workflow.py#load_from_loom",
      "name": "load_from_loom",
      "kind": "function",
      "path": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "span": "L187-L212",
      "signature": "def load_from_loom(loom_path, processed_h5ad=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "130c2f1dcb4512a51e2092c9b69c91a1e45c055dcf6f01a144d592e49fedd9b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/scvelo/scripts/rna_velocity_workflow.py#run_velocity_analysis",
      "name": "run_velocity_analysis",
      "kind": "function",
      "path": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "span": "L21-L184",
      "signature": "def run_velocity_analysis( adata, groupby=\"leiden\", n_top_genes=2000, n_neighbors=30, mode=\"dynamical\", n_jobs=4, output_dir=\"velocity_results\", )",
      "exported": true,
      "origin": "ast",
      "body_hash": "adcfe036637061ff92171195245671a3caaa1a75a88838304e4ca0e6054eb6b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py",
      "name": "tabular_report.py",
      "kind": "file",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L1-L327",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1faf1c554207d8cb0561dc7ea96cd143df6ce5ddfc2322af89f25f38e3bad8a2",
      "chars": 9918,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L165-L322",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "53ece256865aa87178b0df67958e41d8461998ed57fe9fc3e944a6a47bdd82c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#nonnegative_int",
      "name": "nonnegative_int",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L40-L45",
      "signature": "def nonnegative_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "336746790443d462815ab7083e4602409196faaf5cc40b5514b56fe3d800a48b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#output_name",
      "name": "output_name",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L153-L162",
      "signature": "def output_name(explanation: shap.Explanation, class_index: int) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "81611fb8b9025a1b9e14e6fe2f0a291d9e39c886f02d9660f03f8b695c294e35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#parse_args",
      "name": "parse_args",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L56-L112",
      "signature": "def parse_args() -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "d509be035dacab604c7d2bdf39e0f0cb5517352ebb9e79a15a87d106b88ac769",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#positive_float",
      "name": "positive_float",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L48-L53",
      "signature": "def positive_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "9abeb9e9058ceea98a9507dbf2394271a3fd645a0acc2791478e7d223992aace",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#positive_int",
      "name": "positive_int",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L32-L37",
      "signature": "def positive_int(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "a08009319f6bfd358e01633d95a432d47cb7ad90fca7af7580e3e04dfc1ad3af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#save_axis",
      "name": "save_axis",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L145-L150",
      "signature": "def save_axis(axis: Any, path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "188cccf5d43041331c1587912c15d35d0b4e85cfb27ab0b165389b637aa99c3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/shap/scripts/tabular_report.py#select_output",
      "name": "select_output",
      "kind": "function",
      "path": "skills/shap/scripts/tabular_report.py",
      "span": "L115-L142",
      "signature": "def select_output( explanation: shap.Explanation, class_index: int, ) -> shap.Explanation",
      "exported": true,
      "origin": "ast",
      "body_hash": "89443980bacd8e55eb0e11eadeb469a029e5527af5029441cb8e8bbe1039da09",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L1-L474",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "076d0d9a36f9bb58dd8b1e5058ef12008cb02fb281bffe1fa25c205cf1e6bf62",
      "chars": 15134,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#_beta_continued_fraction",
      "name": "_beta_continued_fraction",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L319-L367",
      "signature": "def _beta_continued_fraction(a: float, b: float, x: float) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "fc2a829f8c5f4bcb49f888ffbb6e5e301aea5215334841477bff0ba0c1f27924",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#_regularized_incomplete_beta",
      "name": "_regularized_incomplete_beta",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L370-L385",
      "signature": "def _regularized_incomplete_beta(a: float, b: float, x: float) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "8420fd37245ad18c1a267fd0807cd5900613e59ce9334075b3bdd03daf80185f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L53-L54",
      "signature": "def _reject_constant(value: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d7454d72174c168c7a9ea73fd4d567bca97c876ff8aa87c919949c1298a5c043",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#_unique_object",
      "name": "_unique_object",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L57-L63",
      "signature": "def _unique_object(pairs: list[tuple[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d6b2d3f65bce4a282c445f59ccdcb0a550ef6f61049759891cad87ab19062a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L124-L142",
      "signature": "def atomic_write_bytes(path: Path, payload: bytes, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18fca7a7dd0424ad94a08dbf4a24cc2b70478b1ce22a99a72d4f398ce8375a46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L66-L91",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, suffixes: Iterable[str], max_bytes: int = MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "e70cc04af883543ff02581911cbf4e7071b787a701379526d1674c16dad473c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L94-L121",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "df6dd9062db615b3f9cef6e4fe2eca8bfc6b4249dea5f9b118d0d30ec5ef4fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L32-L33",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7175984e2a726e54bcde2c2de782dba89122975cfdd34af036857ca8b2b37658",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#derive_seed",
      "name": "derive_seed",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L303-L316",
      "signature": "def derive_seed(base_seed: int, replication: int, stream: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1bdae5e7197f5e2462c487567efc72abeb5ea54ac6ee65f37ffada7887abeb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L168-L181",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f182f919a63aedde20098587a0f55a1ca2b0b119070a71e8391040405f35f13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#emit_text",
      "name": "emit_text",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L184-L200",
      "signature": "def emit_text( text: str, *, output: str | os.PathLike[str], suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "d65bb13a0eb2e4619874ee720c3bb286c9401b959c504ebd5fa4dec6337e7fac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#finite_number",
      "name": "finite_number",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L278-L300",
      "signature": "def finite_number( value: Any, *, name: str, minimum: float | None = None, maximum: float | None = None, minimum_inclusive: bool = True, ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "03e5f3ba767c9077fcbfc36c8b1da4f2310320f1464247b8ecd6f21c98bbe7ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#integer",
      "name": "integer",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L262-L275",
      "signature": "def integer( value: Any, *, name: str, minimum: int, maximum: int, ) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd0766acb2dca556f6b363874ff8859d9a947b1f9f3b70c1e414fad79f51850d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#load_json_object",
      "name": "load_json_object",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L203-L222",
      "signature": "def load_json_object(value: str | os.PathLike[str]) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ee53804d4b22f885b206fa4a0e4b11d7b6484a461ffc51c73dac907b34b9671",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#load_simpy",
      "name": "load_simpy",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L36-L50",
      "signature": "def load_simpy(*, required: bool = True) -> Any | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7754f9f7ec4b308dcab211ae9459bc207d1ca835ba274bbc3724448e5c1fd945",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#mean_confidence_interval",
      "name": "mean_confidence_interval",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L434-L473",
      "signature": "def mean_confidence_interval( values: Iterable[float], *, confidence: float = 0.95 ) -> dict[str, float | int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "52832f3571a39cea7278a69f11bb42353c6ec352216124274043ac7e03d72b8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#parse_json_line",
      "name": "parse_json_line",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L225-L240",
      "signature": "def parse_json_line(line: str, *, line_number: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b54159944aab3c630416db05ad85168136c913c027a8a9ce0bd8ab93c528c16a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#strict_json_bytes",
      "name": "strict_json_bytes",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L145-L165",
      "signature": "def strict_json_bytes(document: Any) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "8954224504a762b484853ccea441d05faa127bfa41074fa0e78abd452e2b8fb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#student_t_cdf",
      "name": "student_t_cdf",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L388-L405",
      "signature": "def student_t_cdf(value: float, degrees_of_freedom: int) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0678ebd8d848a98e9104c4ad969a8b6d5f0b8cb2e9a6ba83c71c2c7d693399b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#student_t_quantile",
      "name": "student_t_quantile",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L408-L431",
      "signature": "def student_t_quantile(probability: float, degrees_of_freedom: int) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b562c81ff2a4675c2a562f4c5d4f67abbd2caf41837d2d02f696c825d49a13db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/_common.py#validate_keys",
      "name": "validate_keys",
      "kind": "function",
      "path": "skills/simpy/scripts/_common.py",
      "span": "L243-L259",
      "signature": "def validate_keys( value: Mapping[str, Any], *, allowed: Iterable[str], required: Iterable[str] = (), context: str = \"configuration\", ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "971510505a020da1f75d4164d9a470ba1bfa12d20146695dcafbb7b260e37691",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py",
      "name": "basic_simulation_template.py",
      "kind": "file",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L1-L416",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cb1ffb974a74669e0596dbaa54e392483e2f74ea8cb757ab181ae0b64f19e66",
      "chars": 13197,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#_arrivals",
      "name": "_arrivals",
      "kind": "function",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L223-L256",
      "signature": "def _arrivals( env: BoundedEnvironment, *, resource: simpy.Resource, config: QueueConfig, stats: QueueStatistics, arrival_rng: random.Random, service_rng: random.Random, ) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "cc1e756b0008a402ec7b6a3a4918129df2363e7b34a7ebba367111ab1eddbfba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#_customer",
      "name": "_customer",
      "kind": "function",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L199-L221",
      "signature": "def _customer( env: BoundedEnvironment, *, resource: simpy.Resource, stats: QueueStatistics, service_rng: random.Random, mean_service: float, arrival_time: float, warm_up: float, ) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "7c57d7c602f3922dddeb2d995e556d510ee1e6db89b31c60fba78976ceea990a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#_optional_mean",
      "name": "_optional_mean",
      "kind": "function",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L195-L196",
      "signature": "def _optional_mean(values: list[float]) -> float | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "0be77d5324e87850bef1f3c4dbfed6fda92bd0ec6ac3d2329b75070cf5162b24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment",
      "name": "BoundedEnvironment",
      "kind": "class",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L56-L70",
      "signature": "class BoundedEnvironment(_SIMPY.Environment)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b548bc52490b0b3c652553f281690984acb63e695d0f869de217d616f63c3f80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L59-L62",
      "signature": "def __init__(self, *, max_events: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f8451b14adb2f33e1d7054ea930adac6b45d2a97c544c9762bcb43f9df6610e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundedEnvironment"
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.__init__~2",
      "name": "__init__",
      "kind": "method",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L77-L80",
      "signature": "def __init__(self, *, max_events: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e7c744cf59af2f6f5f261a2e9f320fe836670823f4bf67f4fc6422a2e9c20fc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundedEnvironment"
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.step",
      "name": "step",
      "kind": "method",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L64-L70",
      "signature": "def step(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e114c0f73c3497805b29da2ac92eca99e3110364ff449ffd9754cc738b815ea5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundedEnvironment"
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment~2",
      "name": "BoundedEnvironment",
      "kind": "class",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L74-L80",
      "signature": "class BoundedEnvironment",
      "exported": true,
      "origin": "ast",
      "body_hash": "859546e0eeacfa4932f5efb662d6ce1a0923f59314f69f56d6aa6b00a235cf06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L374-L393",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "763a71191adfce15cc5573e30be64d75999a77f272c21b5c52416933a231ebf1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#EventLimitExceeded",
      "name": "EventLimitExceeded",
      "kind": "class",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L50-L51",
      "signature": "class EventLimitExceeded(RuntimeError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef070b6c07208263cb059186502551c8ef03696d7fff08709b23cca1b2249fe6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L396-L411",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "07e673c0368645b5c2715b6f87180d2a93ccd95dda658c7abcc9811bc3e56e45",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#QueueConfig",
      "name": "QueueConfig",
      "kind": "class",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L84-L177",
      "signature": "class QueueConfig",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8994313b23dbb2b1f1ffeefaadc10e5a11102bbc63a1f5fe8c6c3696e0422a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#QueueConfig.from_mapping",
      "name": "from_mapping",
      "kind": "method",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L99-L177",
      "signature": "def from_mapping(cls, value: dict[str, Any] | None) -> \"QueueConfig\"",
      "exported": true,
      "origin": "ast",
      "body_hash": "f40a50699c9f7b58775929790fa156831af8eaf1362a0b99dc9282e9c3eb693c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueueConfig"
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#QueueStatistics",
      "name": "QueueStatistics",
      "kind": "class",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L181-L192",
      "signature": "class QueueStatistics",
      "exported": true,
      "origin": "ast",
      "body_hash": "daf2e1f97378f8b7b3f60cfb2a52a75a298f010c96592517ca393aa2df07f63d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "name": "run_simulation",
      "kind": "function",
      "path": "skills/simpy/scripts/basic_simulation_template.py",
      "span": "L259-L371",
      "signature": "def run_simulation( config: QueueConfig, *, replication: int = 0, trace_max_records: int | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb9e2145e7f1a14dcab5aeff8b9c5a83b527951cf3421e85c6d49ef6fc74352a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/bounded_queue_scenario.py",
      "name": "bounded_queue_scenario.py",
      "kind": "file",
      "path": "skills/simpy/scripts/bounded_queue_scenario.py",
      "span": "L1-L127",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8d8de80d5c241c8c677754810ce293d667498e618493a75418b35247e5613f0f",
      "chars": 3609,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/bounded_queue_scenario.py#_trace_text",
      "name": "_trace_text",
      "kind": "function",
      "path": "skills/simpy/scripts/bounded_queue_scenario.py",
      "span": "L22-L33",
      "signature": "def _trace_text(records: list[dict[str, Any]]) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a8fe07b332873c7ae576c45fe68da8c9646da505bcde1b8b5dfafb5c0be3c64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/bounded_queue_scenario.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/simpy/scripts/bounded_queue_scenario.py",
      "span": "L50-L74",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4cdb36206d85fabef9e2522eb6a334c9aee52919559f12dde59ebc3b15b0530",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/simpy/scripts/bounded_queue_scenario.py",
      "span": "L77-L122",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ca1ef50dcaba77ac35f6a9b37cff3c2bb767ec96df9bd875a237f820de2f806",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/bounded_queue_scenario.py#run_scenario",
      "name": "run_scenario",
      "kind": "function",
      "path": "skills/simpy/scripts/bounded_queue_scenario.py",
      "span": "L36-L47",
      "signature": "def run_scenario( config: QueueConfig, *, trace_max_records: int | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f905440a11f6a708265f837daca13f2fc4fb1de62063b262a4f88121167372de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py",
      "name": "event_trace_summary.py",
      "kind": "file",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L1-L297",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "03c3a6a5b619d816fbf3e32609b0cbffbbed70c3c8b77ed8025bd1b86612dc5e",
      "chars": 10769,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py#_csv_number",
      "name": "_csv_number",
      "kind": "function",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L40-L47",
      "signature": "def _csv_number(value: str | None, *, name: str) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "b5fe835775574469a733bf394741ae7a8c432caebe99e0e29561018c1125b716",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L253-L269",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dc1b93634234ca6d3b53d8236030a2213470d6b0158ba471172c4008907899f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L272-L292",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fabf52bfec56dba42bb779103bdf7e3f0f1802c3b168263bfde077aa87482deb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py#summarize",
      "name": "summarize",
      "kind": "function",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L236-L250",
      "signature": "def summarize(path: Path, *, max_records: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "97ac6f1ac48f96d30af672665be4a603b0af806999809a21f0d1579beac48dbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py#summarize_event_trace",
      "name": "summarize_event_trace",
      "kind": "function",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L50-L130",
      "signature": "def summarize_event_trace(path: Path, *, max_records: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "076a0ea106b534043c22e4e7eb8f68996b7c15a9c115b68be142ea5a603dfc02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/event_trace_summary.py#summarize_resource_csv",
      "name": "summarize_resource_csv",
      "kind": "function",
      "path": "skills/simpy/scripts/event_trace_summary.py",
      "span": "L133-L233",
      "signature": "def summarize_resource_csv(path: Path, *, max_records: int) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0002cac2c1d6ff1de1d49ab2e096fba556dcf4163d938228e55334bef15395a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py",
      "name": "replication_runner.py",
      "kind": "file",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L1-L195",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "99f0d16710a0dd472e3bdbb903b2ed38578c5a1523a7a87781a1053c8a34c23e",
      "chars": 6234,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py#_interval_or_unavailable",
      "name": "_interval_or_unavailable",
      "kind": "function",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L74-L90",
      "signature": "def _interval_or_unavailable( reports: list[dict[str, Any]], *, metric: str, confidence: float, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "297df886e7fd6564becd843e00a888e0f56f94f0b530a8702b1713ca975ae0f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L159-L173",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfd02dc68895364de1d32edf9aded6b5b6476b6235abe6982fe8cd67b41f2ad3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py#ExperimentConfig",
      "name": "ExperimentConfig",
      "kind": "class",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L29-L71",
      "signature": "class ExperimentConfig",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e6fbb786029aa91917c4bbd369b57d174e9d27ad9b05ef87bf890374b09b983",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py#ExperimentConfig.from_mapping",
      "name": "from_mapping",
      "kind": "method",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L35-L71",
      "signature": "def from_mapping(cls, value: dict[str, Any] | None) -> \"ExperimentConfig\"",
      "exported": true,
      "origin": "ast",
      "body_hash": "26edb6aaefa74cc4bc288895d4cac1af7bd5746f320d322891a09a1163f33ca8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExperimentConfig"
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L176-L190",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "14c7270bb68a780354975e023f780cf3b0d75279572fd5f564a7e886a29ce6a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/replication_runner.py#run_experiment",
      "name": "run_experiment",
      "kind": "function",
      "path": "skills/simpy/scripts/replication_runner.py",
      "span": "L93-L156",
      "signature": "def run_experiment(config: ExperimentConfig) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b2a7572ecf300e131793286763a1e8a20b846e9398678c1ee8e96487729a482",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py",
      "name": "resource_monitor.py",
      "kind": "file",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L1-L475",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dc04b5b66c3734deb03b4408b8b241f7b483195a4704b1eae2e963b8df582db0",
      "chars": 15945,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#_demo",
      "name": "_demo",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L420-L436",
      "signature": "def _demo() -> tuple[dict[str, Any], ResourceMonitor]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b54d81c96ee383b6f70c0f5c099d75637ef6d2269599754bf59f35516db62fc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#_demo.user",
      "name": "user",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L426-L430",
      "signature": "def user(identifier: int) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc0ccda939c15b2a7deccb982edeae8a896809b2faf87a494a556cc2564d4aae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L439-L449",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "eba1ade54d1ca5fbd9cb8311775520a41dd7c3a8dc5e85aebbc77fa0215c97cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "name": "ContainerMonitor",
      "kind": "class",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L274-L353",
      "signature": "class ContainerMonitor",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bc67f511750d3b2da0ec82e3d568ebcd17fbde53a7b829c5e20e33e39db962b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L277-L295",
      "signature": "def __init__( self, env: simpy.Environment, container: simpy.Container, name: str = \"container\", )",
      "exported": false,
      "origin": "ast",
      "body_hash": "9d4a524ec17711a4cde367a7237532fc93a6efb3764f5fd94f88ab837e9011a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch",
      "name": "_patch",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L318-L320",
      "signature": "def _patch(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c9dec33908c12e0f97e6b23b8ab27073d44cef2b8695a27a1a526ec41aa43b16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation",
      "name": "_patch_operation",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L306-L316",
      "signature": "def _patch_operation( self, operation: Callable[..., Any], event_name: str ) -> Callable[..., Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "ac8587de45030d3acb61ce46e9581f5f736d9b349d01f5bf9dbbd801eedef076",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation.wrapper",
      "name": "wrapper",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L310-L314",
      "signature": "def wrapper(*args: Any, **kwargs: Any) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d3c458f136faae9959e4c16c8e968865ef1e13b0b481b8fa3a96c19278b32dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._record",
      "name": "_record",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L297-L304",
      "signature": "def _record(self, event: str, *, at: float | None = None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f174bbee92d352b35daf723cf44d383977653c8f00f873bf185019305dcc5e83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.average_level",
      "name": "average_level",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L328-L353",
      "signature": "def average_level( self, *, start: float = 0.0, end: float | None = None ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd74cd0c9a80fc9f55cdac53f8052aac90cf2122fe2fe8a56953b7b53c581d00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.finalize",
      "name": "finalize",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L322-L326",
      "signature": "def finalize(self, *, at: float | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e6bee229c436bf592f756c7ab7598273914546454dfc019aedabaafc329d82d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "name": "EventTraceRecorder",
      "kind": "class",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L356-L417",
      "signature": "class EventTraceRecorder",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f97643205e4465a3990bc723d0cdf344230723264a39c3ccdd041dd07ab7b14",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L359-L376",
      "signature": "def __init__( self, env: simpy.Environment, *, max_records: int = 100_000, )",
      "exported": false,
      "origin": "ast",
      "body_hash": "300537123228e387decc04a6ad4a1767033bcde4e367f8d7bcffe980ce23fe3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EventTraceRecorder"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder._patch",
      "name": "_patch",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L378-L398",
      "signature": "def _patch(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f5f76354fdb58c5d9069aef4e2467eb82969cf765477dd0b35b5650ea5f0d9b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EventTraceRecorder"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder._patch.tracing_step",
      "name": "tracing_step",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L380-L396",
      "signature": "def tracing_step() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b98cd67b96b3ba6599b26616bb16e0b250ff3c5fe30d06cffb5ed40d20c040a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.detach",
      "name": "detach",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L400-L401",
      "signature": "def detach(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "87fa41a72025359643c4da3d94e66a8016ff8857ef0caf2f9c91543c2e61ac7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EventTraceRecorder"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.export_jsonl",
      "name": "export_jsonl",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L403-L417",
      "signature": "def export_jsonl(self, output: str, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbb89779a6f851255ffae3a1ceacd1f81da6103a9a33ae4c9dafde73bc8a4a3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EventTraceRecorder"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L452-L470",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "393c797c9e73ee6138e3eb256a84fbfb4dccf3786a6619ecbeca20c1cdc0d830",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor",
      "name": "MultiResourceMonitor",
      "kind": "class",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L244-L271",
      "signature": "class MultiResourceMonitor",
      "exported": true,
      "origin": "ast",
      "body_hash": "d92977361eb3a625fef2b27b17961869e7f59ccdf69275edbc1bc6bc1606aab9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L247-L250",
      "signature": "def __init__(self, env: simpy.Environment)",
      "exported": false,
      "origin": "ast",
      "body_hash": "994729dcc30b3c52cb35f4347cfad911782e38815f1bdf02a986174ffa872fe5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.add_resource",
      "name": "add_resource",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L252-L259",
      "signature": "def add_resource( self, resource: simpy.Resource, name: str ) -> ResourceMonitor",
      "exported": true,
      "origin": "ast",
      "body_hash": "934d1ab15e3adb57f64bca7df7e43dc28400c9527a9e734231307f5ee632f70e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.finalize",
      "name": "finalize",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L261-L263",
      "signature": "def finalize(self, *, at: float | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "024798a4d748557fb29e691175ed9a1b1c0de493f885cfac5a97f4e3e7761945",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.summaries",
      "name": "summaries",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L265-L271",
      "signature": "def summaries( self, *, start: float = 0.0, end: float | None = None ) -> dict[str, dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d774877a63fa73125ab101a8e3bc749f5334b1aeecc9a984f0d64a5437b7552",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "name": "ResourceMonitor",
      "kind": "class",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L38-L241",
      "signature": "class ResourceMonitor",
      "exported": true,
      "origin": "ast",
      "body_hash": "9da8eefc4bdd1805d8970f97333a81523396730c81f434a0a7be9eb474d44f8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L41-L69",
      "signature": "def __init__( self, env: simpy.Environment, resource: simpy.Resource, name: str = \"resource\", )",
      "exported": false,
      "origin": "ast",
      "body_hash": "f81ac757788bf41f0e0c9b5bcad1a734fe4865f3a3300e87f02a878e4f6e3b79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch",
      "name": "_patch",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L83-L124",
      "signature": "def _patch(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "00a30093c622a6040aad3c2a23437afedec482787bc0904823e3b8b3f96dc8a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_release",
      "name": "monitored_release",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L118-L121",
      "signature": "def monitored_release(*args: Any, **kwargs: Any) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "53409ccc2857942d0d8fbf829a24ddd3437047014a71e106252cc4346ddfabf4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request",
      "name": "monitored_request",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L85-L115",
      "signature": "def monitored_request(*args: Any, **kwargs: Any) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "abcedaf7a32a5e2c5f95b47c0daa343a95a74d1a219c001b19bf76c975140b19",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request.granted",
      "name": "granted",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L91-L95",
      "signature": "def granted(_: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "adc25bce9ebe83f18482cee32b3827b42ea4df7691ec39b41aabe8b534f87113",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request.monitored_cancel",
      "name": "monitored_cancel",
      "kind": "function",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L103-L106",
      "signature": "def monitored_cancel() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc13a38bee8796bd34ff15c613a9fcb907a9f483a68b9cfb24893872795535d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "name": "_record",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L71-L81",
      "signature": "def _record(self, event: str, *, at: float | None = None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1b31930bed43053013687421c49d8425c4a8614648bc27f66614ef4f85a83175",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._time_weighted",
      "name": "_time_weighted",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L141-L172",
      "signature": "def _time_weighted( self, attribute: str, *, start: float, end: float, ) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "1ecf74ed387f62ba6b76870dde8b7171fc75e5e435bd8e37780a6965b525bb69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_queue_length",
      "name": "average_queue_length",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L174-L182",
      "signature": "def average_queue_length( self, *, start: float = 0.0, end: float | None = None ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b01487ca968c4da57b78f5ef3d19b66d79c11de9f8f8748a9eacaaec60833e95",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_utilization",
      "name": "average_utilization",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L184-L190",
      "signature": "def average_utilization( self, *, start: float = 0.0, end: float | None = None ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "06bcd8987f5f832b7d878213a550f96d442169b215f7bf5df221330b51971fc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.detach",
      "name": "detach",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L126-L131",
      "signature": "def detach(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "931153130fb1679b8681a913291d3323605d483e9b78e33c357c9136297e5200",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.export_csv",
      "name": "export_csv",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L224-L241",
      "signature": "def export_csv(self, output: str, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eec5c404442b57e95dd0b0d5bcc2ccc6919fad05d2fb841c86c4172a9162ca5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.finalize",
      "name": "finalize",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L133-L139",
      "signature": "def finalize(self, *, at: float | None = None) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d83a8d896858274169d4747c8ad74c876443be3f4c8f97a0d5ec952df356e02",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.summary",
      "name": "summary",
      "kind": "method",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L192-L222",
      "signature": "def summary( self, *, start: float = 0.0, end: float | None = None ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "35ac3d9ba5094f4e4678055f7db08d0f83d082f0c8f9be339ccdee5f7256de4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResourceMonitor"
    },
    {
      "id": "skills/simpy/scripts/resource_monitor.py#ResourceSample",
      "name": "ResourceSample",
      "kind": "class",
      "path": "skills/simpy/scripts/resource_monitor.py",
      "span": "L28-L35",
      "signature": "class ResourceSample",
      "exported": true,
      "origin": "ast",
      "body_hash": "925039456e91e8a6431d6796f7605a894e773e62a9fad39a59772f67bcd7482d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/validate_simulation_config.py",
      "name": "validate_simulation_config.py",
      "kind": "file",
      "path": "skills/simpy/scripts/validate_simulation_config.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2482b5a7d8f389ed892d0e4edfcce13cbd4144e64490513194791f8d1f0e555e",
      "chars": 3679,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/validate_simulation_config.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/simpy/scripts/validate_simulation_config.py",
      "span": "L76-L92",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "f734aa082593135c9eddc8308468c60d3feb9e4757f5e0f075db5b41180b0222",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/validate_simulation_config.py#infer_schema",
      "name": "infer_schema",
      "kind": "function",
      "path": "skills/simpy/scripts/validate_simulation_config.py",
      "span": "L19-L23",
      "signature": "def infer_schema(document: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "1be46de7b7a346c6ca3542d2d0289678b044e703033f38d2a4a645ef618f0c4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/validate_simulation_config.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/simpy/scripts/validate_simulation_config.py",
      "span": "L95-L107",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "742623d7468a6a08536771980e0622767e10ce739868e46ec84160933b81eee9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/simpy/scripts/validate_simulation_config.py#validate_document",
      "name": "validate_document",
      "kind": "function",
      "path": "skills/simpy/scripts/validate_simulation_config.py",
      "span": "L26-L73",
      "signature": "def validate_document( document: dict[str, Any], *, schema: str = \"auto\" ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1cc3d5468124b70bdbd65f153b6221adcb648cdf7673edb92db9051fe383f705",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py",
      "name": "custom_env_template.py",
      "kind": "file",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L1-L315",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "10d4d2f55fef72b091d65faa409746484fa8ef9472578c6f96de551f2b37512d",
      "chars": 9350,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "name": "CustomEnv",
      "kind": "class",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L17-L220",
      "signature": "class CustomEnv(gym.Env)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfa0813df5da1b056bd7754098c3143be07842193ed85c3571cc51a01aba983d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L32-L76",
      "signature": "def __init__(self, grid_size=5, render_mode=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "b6c8c31807ba6b130896f29f510ea440bbe18f59a34ff62ea642796a4fb2abcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_info",
      "name": "_get_info",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L170-L183",
      "signature": "def _get_info(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a5d7dd95682a4b17ebc61d30910dbbe08de94f48888fe6103d265d6a7134c16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_obs",
      "name": "_get_obs",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L154-L168",
      "signature": "def _get_obs(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4bf5b6d5fb0210a8429228c4ac966172ca1858bdb2a30cc4f4da8662f978b35b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.close",
      "name": "close",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L216-L220",
      "signature": "def close(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cec8997f8baa5f1a4d704055ab884af3b277e9e322a1deec7ab7818d855be8ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.render",
      "name": "render",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L185-L214",
      "signature": "def render(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "daa0cd7a4c99aa5c82982690988a1edaafafa38a22ba3c5a1efee69e8f73ad4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.reset",
      "name": "reset",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L78-L104",
      "signature": "def reset(self, seed=None, options=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e211ce76af6825d914ede67f55acf0dec5fd7f773c27f13af6d6077c7897b488",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.step",
      "name": "step",
      "kind": "method",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L106-L152",
      "signature": "def step(self, action)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2cba84d6f331d3dbf4cc74f597831dbe50ca9689659e50340e3d8760ad21ed5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomEnv"
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "name": "test_environment",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L244-L272",
      "signature": "def test_environment()",
      "exported": true,
      "origin": "ast",
      "body_hash": "194e0e928b23d2cb3f5ef1d958092a11cbce597941f95bf06d1e58c89966a6ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#train_on_custom_env",
      "name": "train_on_custom_env",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L275-L303",
      "signature": "def train_on_custom_env()",
      "exported": true,
      "origin": "ast",
      "body_hash": "92ef11622fa078df7b6f19d921b41a047f21c6d363f15cf43a407f0c174180e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/custom_env_template.py#validate_environment",
      "name": "validate_environment",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/custom_env_template.py",
      "span": "L232-L241",
      "signature": "def validate_environment()",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a6dc1deeaac3f0b18b0e2f9dbbb1af2cd68dc39f3b31038431572f83d13e0c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "name": "evaluate_agent.py",
      "kind": "file",
      "path": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "span": "L1-L246",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "16024c0322e4c70b82dae620fa7481da08a1ea6e10fd36ec203c2c32fa0da464",
      "chars": 7335,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/evaluate_agent.py#compare_models",
      "name": "compare_models",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "span": "L162-L197",
      "signature": "def compare_models( model_paths, env_id=\"CartPole-v1\", n_eval_episodes=10, deterministic=True, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "89a3ff1df675d8f2c906aaba178691afc5c66dbe13bdfd4e920a331f4f97b6fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/evaluate_agent.py#evaluate_agent",
      "name": "evaluate_agent",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "span": "L19-L94",
      "signature": "def evaluate_agent( model_path, env_id=\"CartPole-v1\", n_eval_episodes=10, deterministic=True, render=False, record_video=False, video_folder=\"./videos/\", vec_normalize_path=None, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "47b067093dc8e07f6756ba1d8a4df97e0602df652ed1cdabc8b87f62b654b2ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/evaluate_agent.py#watch_agent",
      "name": "watch_agent",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "span": "L97-L159",
      "signature": "def watch_agent( model_path, env_id=\"CartPole-v1\", n_episodes=5, deterministic=True, vec_normalize_path=None, )",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f6ceda216c65d0322f55e012b885ac227a0fc8896e95ffb38df88236d729673",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "name": "train_rl_agent.py",
      "kind": "file",
      "path": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "span": "L1-L166",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a233523c6ee778c8931bdf3ae093f1ee8865db63be40f3365328e0e6ec024892",
      "chars": 5123,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/stable-baselines3/scripts/train_rl_agent.py#train_agent",
      "name": "train_agent",
      "kind": "function",
      "path": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "span": "L24-L134",
      "signature": "def train_agent( env_id=\"CartPole-v1\", algorithm=PPO, policy=\"MlpPolicy\", n_envs=4, total_timesteps=100000, eval_freq=10000, save_freq=10000, log_dir=\"./logs/\", save_path=\"./models/\", )",
      "exported": true,
      "origin": "ast",
      "body_hash": "8747dc5199b462eefbfbf5106e0a4026554c6ca84eac94dfc2016c3c8348495c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py",
      "name": "assumption_checks.py",
      "kind": "file",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L1-L653",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3fabf359ab0128bbfc498dadb53a4782431cde473c0a6681ea7298a605757018",
      "chars": 20268,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#check_homogeneity_of_variance",
      "name": "check_homogeneity_of_variance",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L156-L233",
      "signature": "def check_homogeneity_of_variance( data: pd.DataFrame, value_col: str, group_col: str, alpha: float = 0.05, plot: bool = True ) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ae49d39e6c726257a3a2c5286de6e25cf1f19fa3cd7887b9e90824a43850a89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#check_linearity",
      "name": "check_linearity",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L236-L305",
      "signature": "def check_linearity( x: Union[np.ndarray, pd.Series], y: Union[np.ndarray, pd.Series], x_name: str = \"X\", y_name: str = \"Y\" ) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1139caff8a4359d86ffb9ba7455f8613e9734bc09f1b783bfb9f9ebc95c9c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#check_normality",
      "name": "check_normality",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L20-L92",
      "signature": "def check_normality( data: Union[np.ndarray, pd.Series, List], name: str = \"data\", alpha: float = 0.05, plot: bool = True ) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "c03b47199d5513d4d15554d8eb7b3c896f478cbe9a4352129f6e28d4aed7ab33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#check_normality_per_group",
      "name": "check_normality_per_group",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L95-L153",
      "signature": "def check_normality_per_group( data: pd.DataFrame, value_col: str, group_col: str, alpha: float = 0.05, plot: bool = True ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "076c742aa4cbb6242a0aa638042c5c57d0893f3ac47f6e4e9c434bd6109bffa9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#check_regression_diagnostics",
      "name": "check_regression_diagnostics",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L409-L519",
      "signature": "def check_regression_diagnostics( model, alpha: float = 0.05, plot: bool = True ) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "34e2b9c5cdf1ea5d780c03e956eee2d2fa04548f6be2b60a840f04624ba3e210",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "name": "comprehensive_assumption_check",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L522-L630",
      "signature": "def comprehensive_assumption_check( data: pd.DataFrame, value_col: str, group_col: Optional[str] = None, alpha: float = 0.05 ) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "90207c092b7554f39c1cecca5ad73391804d9579ed012a46fb4efb1404f3ee3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-analysis/scripts/assumption_checks.py#detect_outliers",
      "name": "detect_outliers",
      "kind": "function",
      "path": "skills/statistical-analysis/scripts/assumption_checks.py",
      "span": "L308-L406",
      "signature": "def detect_outliers( data: Union[np.ndarray, pd.Series, List], name: str = \"data\", method: str = \"iqr\", threshold: float = 1.5, plot: bool = True ) -> Dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f5e6e0c6264b577a7395138b59b8628135ca5ddeb5d0aea6eb3c02dc8f8e35f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py",
      "name": "power.py",
      "kind": "file",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L1-L321",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4bb073160c59469eed4398eee0fa3c6686c1df1c2ebf7bdddfe7853d7c94914c",
      "chars": 12488,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#_corr_power",
      "name": "_corr_power",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L125-L133",
      "signature": "def _corr_power(r, n, alpha, alternative)",
      "exported": false,
      "origin": "ast",
      "body_hash": "57c014b6f4e4257bb1face8ba0056d23555cf95b218993549dd75cbf9805ea11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#_corr_sample_size",
      "name": "_corr_sample_size",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L136-L144",
      "signature": "def _corr_sample_size(r, alpha, power, alternative)",
      "exported": false,
      "origin": "ast",
      "body_hash": "79950b99bc9bdb5892237c4461830cd0a326c7e219416bed163b7097324cdf2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#_reg_mde",
      "name": "_reg_mde",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L171-L180",
      "signature": "def _reg_mde(n, df_num, k_total, alpha, power)",
      "exported": false,
      "origin": "ast",
      "body_hash": "857b9e30e447e63b017bd483ec7555ed70c3453d626655b9fa301620629bf722",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#_reg_power",
      "name": "_reg_power",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L150-L159",
      "signature": "def _reg_power(f2, n, df_num, k_total, alpha)",
      "exported": false,
      "origin": "ast",
      "body_hash": "eec527518a0e18d027795031d6917c4b887d072ca1e7fe50caf42cf2ea1be590",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#_reg_sample_size",
      "name": "_reg_sample_size",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L162-L168",
      "signature": "def _reg_sample_size(f2, df_num, k_total, alpha, power)",
      "exported": false,
      "origin": "ast",
      "body_hash": "98bf73025a56d2dbe94a948967a53ff7a229e2b0a31b9df42b9a6cef51493864",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#_resolve",
      "name": "_resolve",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L46-L119",
      "signature": "def _resolve(test, effect_size, alpha, alternative, **kw)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e5e80d5945d853217adac6cc7e9acbf76a107b66020bd0821758eb673167ad21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#mde",
      "name": "mde",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L234-L261",
      "signature": "def mde(test, nobs1=None, nobs=None, alpha=0.05, power=0.80, alternative=\"two-sided\", **kw)",
      "exported": true,
      "origin": "ast",
      "body_hash": "96e70e450adae165ae7385a0834c7ca25bd82c1efde068d7c8275830ff6917e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#power",
      "name": "power",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L211-L231",
      "signature": "def power(test, effect_size=None, nobs1=None, nobs=None, alpha=0.05, alternative=\"two-sided\", **kw)",
      "exported": true,
      "origin": "ast",
      "body_hash": "29761e0b3e4eede3846c6bac8a1cdf6e23ebded5ef5feb0d6f835a12f9958d96",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#power_curve",
      "name": "power_curve",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L264-L304",
      "signature": "def power_curve(test, effect_size=None, n_range=None, alpha=0.05, power_target=0.80, alternative=\"two-sided\", save=None, show=False, **kw)",
      "exported": true,
      "origin": "ast",
      "body_hash": "190b94df2a0669e4f40a0b1965c5f6f4a1e4c3e3ea0189c1438b56fd2a79297b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/power.py#sample_size",
      "name": "sample_size",
      "kind": "function",
      "path": "skills/statistical-power/scripts/power.py",
      "span": "L186-L208",
      "signature": "def sample_size(test, effect_size=None, alpha=0.05, power=0.80, alternative=\"two-sided\", round_up=True, **kw)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f201f47b949b2747080d95a35e674bde1a8f47263f9c2ce58ff70178fcf8b8e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py",
      "name": "simulate_power.py",
      "kind": "file",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L1-L218",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a3eb6fefe1af0aa9d67fe8762efab47df13a0ff57a35480a59c0fc4e18c404df",
      "chars": 8009,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#_wilson_ci",
      "name": "_wilson_ci",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L39-L47",
      "signature": "def _wilson_ci(k, n, z=1.96)",
      "exported": false,
      "origin": "ast",
      "body_hash": "cecf7b8f927325f8026412ad9bf8068b5692792700db2936a9a8034e06bdbfff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_cluster_randomized",
      "name": "example_cluster_randomized",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L143-L174",
      "signature": "def example_cluster_randomized(effect=0.3, icc=0.05, cluster_size=20, resid_sd=1.0, alpha=0.05)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a66c6df22bb444dfcd15515b6638453826d5d0ddbc39ae0423557381894d368b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_cluster_randomized.gen_and_test",
      "name": "gen_and_test",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L157-L172",
      "signature": "def gen_and_test(n, rng): # n clusters per arm",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e49d64ec72d26c79b61b1950281b61ecbf5ad8ce979a2de6607d4313eb4cf5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_linear_mixed_repeated",
      "name": "example_linear_mixed_repeated",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L177-L201",
      "signature": "def example_linear_mixed_repeated(effect=0.4, n_timepoints=3, subj_sd=0.7, resid_sd=1.0, alpha=0.05)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c35e4b06c39a82ac30342283bc6d498cf9f3c921cf6b78df12a45096bf099735",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_linear_mixed_repeated.gen_and_test",
      "name": "gen_and_test",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L187-L199",
      "signature": "def gen_and_test(n, rng): # n subjects",
      "exported": true,
      "origin": "ast",
      "body_hash": "b037fbf90c821b644281c76285de5b1bf8923a6e553a97b28def5df92c89ffc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_logistic_regression",
      "name": "example_logistic_regression",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L118-L140",
      "signature": "def example_logistic_regression(beta=0.8, base_rate=0.2, x_sd=1.0, alpha=0.05)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eef787dac4364ba2d78a2ddc796b7c0adabab7377880d977be5328b5da453fad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_logistic_regression.gen_and_test",
      "name": "gen_and_test",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L128-L138",
      "signature": "def gen_and_test(n, rng)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5be12e310a07c7b96543a752092081b0ded066b0c47e39e9f4ebfb97baeea6eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_two_group_difference",
      "name": "example_two_group_difference",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L105-L115",
      "signature": "def example_two_group_difference(effect=0.5, sd=1.0, alpha=0.05)",
      "exported": true,
      "origin": "ast",
      "body_hash": "71cb7174d80ceab31b55a8e1e9f382bf6eb5b94192a0f9844ba6e8597b67e4fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#example_two_group_difference.gen_and_test",
      "name": "gen_and_test",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L109-L113",
      "signature": "def gen_and_test(n, rng): # n per group",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fdadc149b8e375dd092b6b3f9dd1a1aa953a8b83fd07a58faed971452f15f66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#find_sample_size",
      "name": "find_sample_size",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L72-L97",
      "signature": "def find_sample_size(gen_and_test, target_power=0.80, n_sims=2000, alpha=0.05, lo=10, hi=2000, seed=0, verbose=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc0853df91267d4e9920ae42401cad26bcd585aa7df910c8c0cc1c399db5fa71",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#PowerEstimate",
      "name": "PowerEstimate",
      "kind": "class",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L27-L36",
      "signature": "class PowerEstimate",
      "exported": true,
      "origin": "ast",
      "body_hash": "63c73770cfb992a7a563d262cf4baf6e56a4f2ac2fabd9e74724f845a7bdd94e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#PowerEstimate.__str__",
      "name": "__str__",
      "kind": "method",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L34-L36",
      "signature": "def __str__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6a95efafd1a09ba3e94f036d095133e127a37349a9dce42c3e8c27820119a17d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerEstimate"
    },
    {
      "id": "skills/statistical-power/scripts/simulate_power.py#simulate_power",
      "name": "simulate_power",
      "kind": "function",
      "path": "skills/statistical-power/scripts/simulate_power.py",
      "span": "L50-L69",
      "signature": "def simulate_power(gen_and_test, n, n_sims=2000, alpha=0.05, seed=0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "39853dadd7098138b113d85b0951deda8c82d829a11cd8f6918e8b585feb858c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "name": "detect_anomalies.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "span": "L1-L525",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2320b725adfaf4e45c40a34bd253ce56020c911bb804ceeeb1b9704f5fb61ffb",
      "chars": 17022,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#build_synthetic_future",
      "name": "build_synthetic_future",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "span": "L98-L118",
      "signature": "def build_synthetic_future( context: np.ndarray, n: int, seed: int = 42, ) -> tuple[np.ndarray, list[int]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ab27b7caba82a9ccf853dd1e189b90f1bd1334473270e2186234d9e4f0ee321",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#detect_context_anomalies",
      "name": "detect_context_anomalies",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "span": "L50-L90",
      "signature": "def detect_context_anomalies( values: np.ndarray, dates: list, ) -> tuple[list[dict], np.ndarray, np.ndarray, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "549c8c3d6d9fced70af45c38b91bcdc0972b40483d4bfdc632648a00097ac055",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#detect_forecast_anomalies",
      "name": "detect_forecast_anomalies",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "span": "L121-L164",
      "signature": "def detect_forecast_anomalies( future_values: np.ndarray, point: np.ndarray, quant_fc: np.ndarray, future_dates: list, injected_at: list[int], ) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "96114a21dbcc52b8d3d3233d8160f1022b6a6d79a00796ef17312134fd1f36ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "span": "L391-L520",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5340b9c30ff00c670670a0caf210717c4e4895553c90b0fe4b5c7beca28f9bd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#plot_results",
      "name": "plot_results",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "span": "L172-L383",
      "signature": "def plot_results( context_dates: list, context_values: np.ndarray, ctx_records: list[dict], trend_line: np.ndarray, residuals: np.ndarray, res_std: float, future_dates: list, future_values: np.ndarray, point_fc: np.ndarray, quant_fc: np.ndarray, fc_records: list[dict], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "01135a3e05a05b7dfabf155913afb6a290cd1677453875ce63e6898cfe0b4928",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "name": "demo_covariates.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L1-L569",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2f9d005a4feb3c796c802ec4b5cfbca90c75cc892621a068c5dc5a251676b3a1",
      "chars": 19700,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization",
      "name": "create_visualization",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L132-L402",
      "signature": "def create_visualization(data: dict) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3a00634bb636d766e1d272cba2f984fa357ace80f794b762c6b64aaf2cc8173",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization.add_divider",
      "name": "add_divider",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L163-L177",
      "signature": "def add_divider(ax, label_top=True)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c34b53f770631fe171a3c1be81c2e1ff482d633bd97683d40ca3c332f1ac543d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#demonstrate_api",
      "name": "demonstrate_api",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L405-L428",
      "signature": "def demonstrate_api() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "81591a370d77e6780c1baea80a17ae01008017b1ac13af4b42d1177eead217bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#explain_xreg_modes",
      "name": "explain_xreg_modes",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L431-L447",
      "signature": "def explain_xreg_modes() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "762b45b202a32c9946269929a0198ad5c008b4d1e04d2d80c1412ef40af91e39",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#generate_sales_data",
      "name": "generate_sales_data",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L49-L129",
      "signature": "def generate_sales_data() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "14c0f5702281be86a648804067d9760cc42e1d44344aa7d8e5d171af270c22bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "span": "L450-L564",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dab2f46c488f38c72f55eabbfbbbd4c32413d343330fe551f5e54777512d4e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "name": "generate_animation_data.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "span": "L1-L148",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "457850385191763131554bd035b13a23e2b5a78fea03ae2e9e39a274bed5eaf2",
      "chars": 4997,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "span": "L30-L143",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9dbab0f9c0eba7ae8413a67a150492aaed8e949f00aafb6e6f7a76cb98cf0fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "name": "generate_gif.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "span": "L1-L249",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5ec2d4323044468c3eb1ad42e5f4e5c5148273564c445b7b19807763f7d4c455",
      "chars": 6648,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#create_frame",
      "name": "create_frame",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "span": "L26-L154",
      "signature": "def create_frame( ax, step_data: dict, actual_data: dict, final_forecast: dict, total_steps: int, x_min, x_max, y_min, y_max, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5db7cda98b8b98db7a7dbe2b539388f6687d5d3028f85a21e39c91dab2c994b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "span": "L157-L244",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "640476676714209393fa0ee3a2847c59295d3f55a45123a7ed3dbe9f3a7b22e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "name": "generate_html.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "span": "L1-L545",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "43ba538c8d7d1632c24f9b014daf3a488483d3fe5bdb2cfec2b44f8eda6ffcf0",
      "chars": 21136,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "span": "L521-L540",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c38fb1fd8a452cfb42b87ff4f01f27d6083c0225cd1230e01a74994dbf08075",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/run_forecast.py",
      "name": "run_forecast.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/global-temperature/run_forecast.py",
      "span": "L1-L168",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "66fead15854d9b8f91c1281be60589f3bfbe51dbeb15289d2c9965919a00c2f1",
      "chars": 5476,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "name": "visualize_forecast.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "span": "L1-L124",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f8ab85d7d680bdfad7cafd6a25d0c78c72e4a7d96637975251fe5a361c76ebae",
      "chars": 3287,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "span": "L30-L119",
      "signature": "def main() -> None: # Load historical data",
      "exported": true,
      "origin": "ast",
      "body_hash": "8951b242b53153ca9395a1fe6bac36d62b2d5ff603e280617123313cea2fdfe7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py",
      "name": "check_system.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L1-L522",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1ddc967b105522390e706a5ab83c6de9f173e276d11a96382cf954011031284a",
      "chars": 16738,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#_get_available_ram_gb",
      "name": "_get_available_ram_gb",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L174-L220",
      "signature": "def _get_available_ram_gb() -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "20bec650f7ebf3f6cb519a10d6235b3e739edcf28a6eec56824f2d1cd421bdc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#_get_available_ram_gb.MEMORYSTATUSEX",
      "name": "MEMORYSTATUSEX",
      "kind": "class",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L201-L212",
      "signature": "class MEMORYSTATUSEX(ctypes.Structure)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e717f531915dbae74a1707ce42aa861b95aa93dfd8dbd816947223c34c93cbf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb",
      "name": "_get_total_ram_gb",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L127-L171",
      "signature": "def _get_total_ram_gb() -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "41fbe3f88d0a33e6886d3c43962c6d7e5e0f020ed4ce8de4a3b2a76b0ee754e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb.MEMORYSTATUSEX",
      "name": "MEMORYSTATUSEX",
      "kind": "class",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L150-L161",
      "signature": "class MEMORYSTATUSEX(ctypes.Structure)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e717f531915dbae74a1707ce42aa861b95aa93dfd8dbd816947223c34c93cbf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#check_disk",
      "name": "check_disk",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L304-L334",
      "signature": "def check_disk(profile: dict[str, Any]) -> CheckResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fa0d372344c9197c9ad8c2f65a847ceeae2a0aa60fb285112a24ecda3ef54c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#check_gpu",
      "name": "check_gpu",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L263-L301",
      "signature": "def check_gpu() -> CheckResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce22d6f24603cef60a34e2baeaedf74e6df72be0bd31ee4b48c9a29f8a8a1321",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#check_package",
      "name": "check_package",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L358-L376",
      "signature": "def check_package(pkg_name: str, import_name: str | None = None) -> CheckResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "c542be3106ccddd38bdb079425ab1451ab87cb4feef606c7d28b7a28b1a037ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#check_python",
      "name": "check_python",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L337-L355",
      "signature": "def check_python() -> CheckResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a56c7b55123195f02db412befe3537f7fa0a16609e56028dca11b9b3e87c4d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#check_ram",
      "name": "check_ram",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L223-L260",
      "signature": "def check_ram(profile: dict[str, Any]) -> CheckResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "58be57633ff98b72a1f297efdc5a01f58c5e1ee07f21e028d9fd17c998cb595b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "name": "CheckResult",
      "kind": "class",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L75-L86",
      "signature": "class CheckResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d2133450e30f10784948861a90252501ca5106252b64f543fdabcc13bcd9a91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult.__str__",
      "name": "__str__",
      "kind": "method",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L85-L86",
      "signature": "def __str__(self) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "32f3af037c0d6c2baa5fcc84fedb9a0f8f1034e9e3aece6bd1059bffe2dc891d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CheckResult"
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult.icon",
      "name": "icon",
      "kind": "method",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L82-L83",
      "signature": "def icon(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d2cb4d29ba4ab57ca3cc244e6d45afbf25262be78caeaf43e14975b687892af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CheckResult"
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L492-L517",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "98eaf1f15dd3de239ef82053946358e4618936b3bd935ca6a59f9ec69a855ecc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#print_report",
      "name": "print_report",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L475-L489",
      "signature": "def print_report(report: SystemReport) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7980fd416751db7da4436c76e82990dea35f3f284d88a2e1b803fa781975ea36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#recommend_batch_size",
      "name": "recommend_batch_size",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L384-L425",
      "signature": "def recommend_batch_size(report: SystemReport) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "26454632a61a76771efc4d67cab1b7bd4e027454b27e9ae0a6a9c5e3288cd851",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "name": "run_checks",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L433-L472",
      "signature": "def run_checks(model_version: str = \"v2.5\") -> SystemReport",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2908a3ec9ff0611d0b86284781af8306b10535122515c29c0318ac407cf1dcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport",
      "name": "SystemReport",
      "kind": "class",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L90-L119",
      "signature": "class SystemReport",
      "exported": true,
      "origin": "ast",
      "body_hash": "41dbe5753814674e1f71ff5d4a305dae80a29b4b65d09f3538c31d2b35aa7a69",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport.passed",
      "name": "passed",
      "kind": "method",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L99-L100",
      "signature": "def passed(self) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc3130b634aada9c45fce70bb14c75271047f2db3b5f639edd39a72aa1b747aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SystemReport"
    },
    {
      "id": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport.to_dict",
      "name": "to_dict",
      "kind": "method",
      "path": "skills/timesfm-forecasting/scripts/check_system.py",
      "span": "L102-L119",
      "signature": "def to_dict(self) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6be4a8a1a8c523488a561f998d74f357fe3ed686afe0404bc28ecf3592a2b83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SystemReport"
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "name": "forecast_csv.py",
      "kind": "file",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L1-L270",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b72119e1e43ed514e83e86064a73f11ffb9b39475f620f222b5fd2842ac273ad",
      "chars": 8667,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#forecast_series",
      "name": "forecast_series",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L118-L141",
      "signature": "def forecast_series( model, df: pd.DataFrame, value_cols: list[str], horizon: int ) -> dict[str, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae2f8f85dc0d58f340f53bedc50d89b94f794c782bf82896f9836dc45ddaf5aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#load_csv",
      "name": "load_csv",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L78-L115",
      "signature": "def load_csv( path: str, date_col: str | None = None, value_cols: list[str] | None = None, ) -> tuple[pd.DataFrame, list[str], str | None]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5bbe964b626853602e7c1056ae2a43870f9b6b4f0474b8ed9b778f7e6397495",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#load_model",
      "name": "load_model",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L49-L75",
      "signature": "def load_model(batch_size: int = 32)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6c82ff473bcbfece302ae6cdb8a00619f7b5eb16b5496249e749d514e393e62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L194-L265",
      "signature": "def main() -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c882ac89b30896a2bc8278a32f4b7db2c88d1776021fd002ffe34df363403b41",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#run_preflight",
      "name": "run_preflight",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L32-L46",
      "signature": "def run_preflight() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5397acec22bbfe704eedb808cb302ee4033947a9b330b1795623262b21e828c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#write_csv_output",
      "name": "write_csv_output",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L144-L184",
      "signature": "def write_csv_output( results: dict[str, dict], output_path: str, df: pd.DataFrame, date_col: str | None, horizon: int, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc42076a58aa9e3f2fe22de3137af89441f17c17b3a091d63f35a49b83424995",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/timesfm-forecasting/scripts/forecast_csv.py#write_json_output",
      "name": "write_json_output",
      "kind": "function",
      "path": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "span": "L187-L191",
      "signature": "def write_json_output(results: dict[str, dict], output_path: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b719973239b1acc94085603dc29c8dfe0a8a05d6ff63371017c2372afeabd8e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1-L1161",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3551178b5c6269c349dc61b52fce20336f1582372e4037c86170945bb1c2504c",
      "chars": 39552,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_array",
      "name": "_array",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L146-L154",
      "signature": "def _array( item: dict[str, Any], *, minimum: int = 0, maximum: int = MAX_LIST_ITEMS ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "4ef85ad946b9f7076de1e5c2c54b6e95464861bd31f98d00c3f8d2bb701c1bdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_boolean",
      "name": "_boolean",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L138-L139",
      "signature": "def _boolean() -> dict[str, str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e59b447c3c01d2b74d69fccbb589a8e149887a52e8974487a543dd3101ad44c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_check_bounds",
      "name": "_check_bounds",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L711-L731",
      "signature": "def _check_bounds(value: Any, *, depth: int = 0, counter: list[int]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "270bf0e895eceeeed260203f57f582cd58f83ae26df1981c55205b55fc1e4469",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_duplicate_field_issues",
      "name": "_duplicate_field_issues",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L875-L892",
      "signature": "def _duplicate_field_issues( records: Any, field: str, path: str ) -> list[Issue]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d696054a3b4dca51c70d2a16149d66f038b13df0c4246a89153ce2c3c5a376a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_duplicate_safe_object",
      "name": "_duplicate_safe_object",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L696-L704",
      "signature": "def _duplicate_safe_object( pairs: list[tuple[str, Any]], ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1fedd47d9e45d025607b41fb3d3f88592a8eebfa4370b954ae49ecc178858332",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_nullable",
      "name": "_nullable",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L142-L143",
      "signature": "def _nullable(schema: dict[str, Any]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b0259740cff76fdf7432f2618f372e72c7166430b5439d0763d00dbd6258a87b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_object",
      "name": "_object",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L157-L158",
      "signature": "def _object(properties: dict[str, dict[str, Any]]) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "7f093f6dc042063c949692b92f82202fa8c55e192d53996fe1eeda28f24e286d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_reject_constant",
      "name": "_reject_constant",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L707-L708",
      "signature": "def _reject_constant(_: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "eced82696234dd74808408c1e48619474031345b2bc33ebe56d1700ee8cf42ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "name": "_reject_nonlocal_path",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L619-L626",
      "signature": "def _reject_nonlocal_path(raw_path: str | Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "5613ee9f63947f0a84483afd0f803207eb47f471e80aa4f00bbfe6b07b16708d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_text",
      "name": "_text",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L118-L135",
      "signature": "def _text( *, minimum: int = 0, maximum: int = MAX_TEXT_CHARS, enum: Iterable[str] | None = None, const: str | None = None, pattern: str | None = None, format_name: str | None = None, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e31db04068be2dff56053b95f475012ae10a3e217dd2d7f1ea46444323ef775e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_valid_iso_date",
      "name": "_valid_iso_date",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L795-L799",
      "signature": "def _valid_iso_date(value: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "9dd528e52d4bea8496f4548e2e75d48a73b2a7f08e0b08605c87d170e14d8231",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "name": "_validate_schema",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L812-L872",
      "signature": "def _validate_schema( value: Any, schema: dict[str, Any], path: str, issues: list[Issue], ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "2f0c2a76ab0dd9d499e50d233a5b80f42623483126ec746e8e577d66638cbcce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#all_fact_references",
      "name": "all_fact_references",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1119-L1145",
      "signature": "def all_fact_references( documents: dict[str, dict[str, Any]] ) -> list[tuple[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b7363e21ec01e6cbc7a2d2188d458f6f4d49cf6cb6298177abb92535fd310d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#all_fact_references.collect",
      "name": "collect",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1126-L1140",
      "signature": "def collect(value: Any, path: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c673589ff31ac17a5aa4fcc4a25967417c00c4b78e2a2159c50cf1e5b8c749e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#atomic_write_json",
      "name": "atomic_write_json",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1044-L1079",
      "signature": "def atomic_write_json(destination: Path, payload: dict[str, Any]) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "664e542a51d5607432bafd1744a7b43a1e0e939cf70806f7299b685c1ec046f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#copy_template_document",
      "name": "copy_template_document",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1082-L1095",
      "signature": "def copy_template_document( template_path: Path, *, subject_ref: str, classification: str, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f526627798513ba7bdc97590ef1699a0b531cda9a87308cce1ab80d1d78c9134",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#direct_identifier_key_paths",
      "name": "direct_identifier_key_paths",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1098-L1116",
      "signature": "def direct_identifier_key_paths( value: Any, path: str = \"$\" ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "41268a6bdf1488621f5d385832867a601eda40a1f4d0862dd3c22386fa21f9b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#error_report",
      "name": "error_report",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1036-L1037",
      "signature": "def error_report(check: str, error: ValidationError) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4843a0672c7d16797bd8a68c4d0fac4201b14930028d691d11525e6823c90572",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#has_errors",
      "name": "has_errors",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1001-L1002",
      "signature": "def has_errors(issues: Iterable[Issue]) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "93117bee5a2acd52d15ad0c8471bd17a4f4ce1dd390a7126888228b3b991e86b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#Issue",
      "name": "Issue",
      "kind": "class",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L107-L115",
      "signature": "class Issue",
      "exported": true,
      "origin": "ast",
      "body_hash": "87ebf33232cfd0ca47b89069e03471e97a6979a6678354ee2cc3769f6e4d6b6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#Issue.as_dict",
      "name": "as_dict",
      "kind": "method",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L114-L115",
      "signature": "def as_dict(self) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "690a05ee04fd18784913ec7ceff37e32eec963dfd0b43d697b6bbc489c5bd1b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Issue"
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#load_package",
      "name": "load_package",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L760-L775",
      "signature": "def load_package( raw_directory: str | Path, ) -> tuple[dict[str, dict[str, Any]], dict[str, Path]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "30d29e16929459f9321b1947abe7e65540a77743d424df2822e8140a2b0b6c82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#load_target",
      "name": "load_target",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L778-L792",
      "signature": "def load_target( raw_path: str | Path, *, require_package: bool = False ) -> tuple[dict[str, dict[str, Any]], dict[str, Path]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "85aff1fc4204ae5d698eb785682a125cb176d152fc7ae07a869e17c5ee3f702c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#parse_iso_datetime",
      "name": "parse_iso_datetime",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L802-L809",
      "signature": "def parse_iso_datetime(value: str) -> datetime | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f03db257adf3db8c399d6800ed25b05abc8e1016a8f44d1bd7af612cbaff519b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#print_report",
      "name": "print_report",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1040-L1041",
      "signature": "def print_report(report: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10bb20935abfda1c2d45a1d0efb08549b552c6d62fdd02577068f42eb0080324",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#read_json",
      "name": "read_json",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L734-L757",
      "signature": "def read_json(raw_path: str | Path) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "989819505ca9d9118c769ca1d3d13b83779730cca82b44c331e967d2a3bd1c09",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#record_ids",
      "name": "record_ids",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1148-L1160",
      "signature": "def record_ids( document: dict[str, Any], list_field: str, id_field: str, ) -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2c5145ea0421f07a039fab3385f57d01a4c7b60dca15eb64e2a28da175e2320",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#report_payload",
      "name": "report_payload",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L1005-L1033",
      "signature": "def report_payload( check: str, issues: Iterable[Issue], *, counts: dict[str, int] | None = None, extra: dict[str, Any] | None = None, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7149083c9e4f2f4c6e07289695d4d65b682fccf71767b26843a70b83b1be067",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#safe_input_directory",
      "name": "safe_input_directory",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L646-L658",
      "signature": "def safe_input_directory(raw_path: str | Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc2020bce001c5a493a0e25ff467ba66a7b78d6774d1d47a80be577540336c47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#safe_input_file",
      "name": "safe_input_file",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L629-L643",
      "signature": "def safe_input_file(raw_path: str | Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bacb21bd91bce196b824f7c30042a86cf083f8a0a91ae69bd435234f7609d85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#safe_new_directory",
      "name": "safe_new_directory",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L661-L675",
      "signature": "def safe_new_directory(raw_path: str | Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "7efafb2298f5dc5289c9ff8b81e102e98f71a6fb30e6d54bfcd73cca8a9921e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#safe_output_file",
      "name": "safe_output_file",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L678-L693",
      "signature": "def safe_output_file(raw_path: str | Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "b53d9681379ceb42976352173864a3752ae86a3a3d77013239d9ee9d6619c3f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#validate_document",
      "name": "validate_document",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L895-L976",
      "signature": "def validate_document( document: dict[str, Any], expected_type: str | None = None ) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8247d40754047b9829ab3505f14205e90954f6cf747010628849dd055749535",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "name": "validate_package_structure",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L979-L998",
      "signature": "def validate_package_structure( documents: dict[str, dict[str, Any]] ) -> list[Issue]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a78e5a35c4da17cb97c8d4fae17150397063ea21d9ad3e4d0d3456279fe0a457",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "name": "ValidationError",
      "kind": "class",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L97-L103",
      "signature": "class ValidationError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e8ee447c97994ce4dad8e49f4e80e0f4687dc848e1c4aaf07d8919c9cce7cdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/_common.py#ValidationError.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/treatment-plans/scripts/_common.py",
      "span": "L100-L103",
      "signature": "def __init__(self, code: str, path: str = \"$\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e9d3cfa4b2fd5f59b8ca496f2a8346dfd6e43f562a1f0cee88f64824a1433d90",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationError"
    },
    {
      "id": "skills/treatment-plans/scripts/check_completeness.py",
      "name": "check_completeness.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/check_completeness.py",
      "span": "L1-L573",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4998092dca9f2e2920d9e248dd1294a2575600da565887ebbb805f188cb68eb2",
      "chars": 18545,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_completeness.py#_required_text",
      "name": "_required_text",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_completeness.py",
      "span": "L20-L22",
      "signature": "def _required_text(value: object, path: str, issues: list[Issue]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c6d7e95a9e0c53ae7171d53b40b62ea5d10e3d3b5a7cfec1372d592a7c63367c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_completeness.py#_required_time",
      "name": "_required_time",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_completeness.py",
      "span": "L25-L27",
      "signature": "def _required_time(value: object, path: str, issues: list[Issue]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d72e92471050fc23c602de661e0e43d1bb2731d9c22fabf4d571a2145491e60f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_completeness.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_completeness.py",
      "span": "L549-L557",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe26dde9b9120a454c1ee73e1acf6c7b1751fc341cc0e18a0528b7d14a1f7345",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "name": "check_completeness",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_completeness.py",
      "span": "L30-L546",
      "signature": "def check_completeness(documents: dict[str, dict]) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "951ed74e50aff6c5e58e1491bd14ee78f149a0cc6ea5ad414380450c2879e666",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_completeness.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_completeness.py",
      "span": "L560-L568",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffcae48c2168ad9c39609acb368dee1592ca7d5147ecb8e2d7a684d5e4bf12c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py",
      "name": "check_consistency.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L1-L387",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4081d37bf0f93655893dd719e8b295616ab8494bd5aeaeb63b735543d5e6c654",
      "chars": 12614,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids",
      "name": "_collect_ids",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L24-L99",
      "signature": "def _collect_ids(documents: dict[str, dict]) -> list[tuple[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "804f423d416057bdfeef90b0a6bdee28083b17910c47176db8c621fe8b6aabe1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids.collect",
      "name": "collect",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L27-L30",
      "signature": "def collect(records: list, field: str, path: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df0827e2c6c03919f43d6ff1558a5241474758d5d77e3a9ecc774e60663a4016",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py#_duplicate_reference_issues",
      "name": "_duplicate_reference_issues",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L102-L120",
      "signature": "def _duplicate_reference_issues( value: Any, path: str = \"$\" ) -> list[Issue]",
      "exported": false,
      "origin": "ast",
      "body_hash": "80a4b0366774b58bd486251415785844cf143479cb9099c886b45c298c5c62b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L363-L371",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "52bbf92c2c7fb3d33d8ab932cc5cacc9da27fe9339442a54e179e37c382fac25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "name": "check_consistency",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L123-L360",
      "signature": "def check_consistency(documents: dict[str, dict]) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "99b2fac7f1cc2e763a2121f26aa4c472361800bdfc6ef5c7a7d83aa98bd6a34a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/check_consistency.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/check_consistency.py",
      "span": "L374-L382",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "974e342b100493b3c29773c64f600206aadfbe79216c2a5192bf029484e801b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/generate_template.py",
      "name": "generate_template.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/generate_template.py",
      "span": "L1-L134",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8be3abd98ce67e0f20f5a0d57391563e458a28982a760ed4f1e2f9f14c08f850",
      "chars": 3833,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/generate_template.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/generate_template.py",
      "span": "L74-L111",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "aacf7e17509f07ff51dc3f49eb9566340a696fedbf0ec4e14894fc6b45070eb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/generate_template.py#generate_package",
      "name": "generate_package",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/generate_template.py",
      "span": "L23-L71",
      "signature": "def generate_package( output_directory: str, *, subject_ref: str, classification: str, acknowledge_real_patient_local_processing: bool = False, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bf4dfa217ad722fd777276e81d6aa5056e0538800c802e3bfb6e2538848d4fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/generate_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/generate_template.py",
      "span": "L114-L129",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9d7e6b361ac86088fab7cb1ef950457f082f9f3e5e2d2d4391325107e7e310c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/privacy_process_check.py",
      "name": "privacy_process_check.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/privacy_process_check.py",
      "span": "L1-L214",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ba357af0af81888aa44c4d93ac3da82a893ba2cc86aa5a20228e0805910641de",
      "chars": 6583,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/privacy_process_check.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/privacy_process_check.py",
      "span": "L189-L198",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "badaf15b397babce19f5db318ac8ef02154dbddc3f40a1e478b85bc22e6863f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/privacy_process_check.py#check_privacy_process",
      "name": "check_privacy_process",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/privacy_process_check.py",
      "span": "L21-L186",
      "signature": "def check_privacy_process(documents: dict[str, dict]) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e6e6a2bce68c885a2f9fc7b2a364481b9b6a4961fa17376da2aebee7f45ced6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/privacy_process_check.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/privacy_process_check.py",
      "span": "L201-L209",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0403f9e55c16e15043f7170d37087efd9683dda0fc1673329075fc71dbd1015f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/timeline_generator.py",
      "name": "timeline_generator.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/timeline_generator.py",
      "span": "L1-L261",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "df58c25ceeca10a7ebf06dc63f36d26648d5a3254068ccfc3142a3b8c518b368",
      "chars": 8063,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/timeline_generator.py#_date_bound",
      "name": "_date_bound",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/timeline_generator.py",
      "span": "L26-L32",
      "signature": "def _date_bound(value: str | None, code: str) -> date | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "8b1e84699d903ceddc9b6a0591d40fa4836f8abe84f42dd58e1d673b5c0fcc19",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/timeline_generator.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/timeline_generator.py",
      "span": "L216-L237",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "72fb76b524c77370b6e386a9f24a3aa92567f12e2f617dece1a15cf1f90b9176",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "name": "build_schedule",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/timeline_generator.py",
      "span": "L35-L213",
      "signature": "def build_schedule( documents: dict[str, dict], *, from_date: str | None = None, through_date: str | None = None, ) -> tuple[dict, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c55071fa3b16c12b0c93e0252e3abc0ad3e82c30a778e094869cfc77b61c8d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule.add_event",
      "name": "add_event",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/timeline_generator.py",
      "span": "L59-L83",
      "signature": "def add_event( value: str | None, *, event_type: str, document_type: str, record_index: int | None, date_field: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f480c4ff807c1bcb9513fb545d2d1860b513481320c2d1a96dd23b5c840be19e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/timeline_generator.py",
      "span": "L240-L256",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b64b2d53c51804096877ba3dc5c870bffa93dd525a26c6fe121688f734d34681",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_traceability.py",
      "name": "validate_traceability.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/validate_traceability.py",
      "span": "L1-L148",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e904ae63454a3f29179f9a4e99118aa3dfd0d34d5fde830dfc1593d6b501b06a",
      "chars": 4596,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_traceability.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/validate_traceability.py",
      "span": "L124-L132",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "78c5a8a7f74d422342db093345fd1d59f1a758676785b0316c7eceb0e19e6579",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_traceability.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/validate_traceability.py",
      "span": "L135-L143",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "49fc61b852b94df5d96e6e122e8eed6737e4a780d5faf86212af62cb3b8fc476",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_traceability.py#validate_traceability",
      "name": "validate_traceability",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/validate_traceability.py",
      "span": "L21-L121",
      "signature": "def validate_traceability(documents: dict[str, dict]) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "3462c53d0dc119c022c2197b33d3aa39d9ae88f32bcc87eae29da7dfe947e02c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "name": "validate_treatment_plan.py",
      "kind": "file",
      "path": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "span": "L1-L96",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "89e591763a2367f0956131a60faec329952adaaa88796f82b5aacb829c9cf72a",
      "chars": 2538,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_treatment_plan.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "span": "L70-L81",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "cac7149abfabb11ab292a26a5aa5b8bae4e126918beec8f2de2236f47a6e863d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_treatment_plan.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "span": "L84-L91",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b28a292cc417aba9454a59763240148f653a0450a976dbc7fb800ce413af90f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/treatment-plans/scripts/validate_treatment_plan.py#validate_target",
      "name": "validate_target",
      "kind": "function",
      "path": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "span": "L22-L67",
      "signature": "def validate_target(raw_path: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "28416112aba453b0bb32cbfb9dd1ffe57abdb64fe0f1c092bcad1a300c3f2c0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py",
      "name": "_common.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L1-L667",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8f931df6fb32aaaf50d2e0ac6dc1c2f484be6fd6977d5215ba5f382c29acff80",
      "chars": 21872,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#_check_depth",
      "name": "_check_depth",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L424-L430",
      "signature": "def _check_depth(node: ast.AST, depth: int) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ee3e081199e6dc61ed87c7de2ca1ee14552fe43df37273ff3cf75e8d446b6ca3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#_json_bytes",
      "name": "_json_bytes",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L274-L294",
      "signature": "def _json_bytes(document: Any) -> bytes",
      "exported": false,
      "origin": "ast",
      "body_hash": "53716e64aab30964537f615c36e6bfbf10c21e2c8fe6c2a277b0030f5c9da5cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#array_functions",
      "name": "array_functions",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L523-L569",
      "signature": "def array_functions() -> dict[str, Callable[..., Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a39f73f19cd06e2b38b03abbc65338f683bf411dc1c7b7c4a98fee4ae381be9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#array_functions.erf",
      "name": "erf",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L559-L566",
      "signature": "def erf(value: Any) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ba129110503210f53a28de331d242d6303cc5950e642fa2477c210c7835b3dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#as_degrees_of_freedom",
      "name": "as_degrees_of_freedom",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L166-L176",
      "signature": "def as_degrees_of_freedom(value: Any, *, label: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "acff0ee67a8e60e5f6c04c6b3119967f72f97fe8d674b45169db621efef6dee3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#as_finite",
      "name": "as_finite",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L155-L163",
      "signature": "def as_finite(value: Any, *, label: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0935a86e3f1cc129843b22c8e8e66d4cbcf52806ff9b4933c11be810eda0160",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#atomic_write_bytes",
      "name": "atomic_write_bytes",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L253-L271",
      "signature": "def atomic_write_bytes(path: Path, payload: bytes, *, force: bool = False) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "95e5ddad90150231a3dcb818f82cc178d85be6207db59f29883927cfbd0995af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#bounded_int",
      "name": "bounded_int",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L99-L113",
      "signature": "def bounded_int(minimum: int, maximum: int) -> Callable[[str], int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "95b671ec18f6d9d1c936cba3a3aa2cac8f1739a3750282a32414b0e7512864c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#bounded_int.convert",
      "name": "convert",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L102-L111",
      "signature": "def convert(value: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe2bbbaf442abe8e6a9398736630e38fcef26a910f9af231c80db681da854bba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#checked_input_file",
      "name": "checked_input_file",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L195-L220",
      "signature": "def checked_input_file( value: str | os.PathLike[str], *, suffixes: Iterable[str], max_bytes: int = MAX_INPUT_BYTES, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f9ed70751e42cabbbf8e3e1140b0d1d44ff984a8ec16ba91796c1597522c87c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#checked_output_file",
      "name": "checked_output_file",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L223-L250",
      "signature": "def checked_output_file( value: str | os.PathLike[str], *, suffixes: Iterable[str], force: bool = False, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "df6dd9062db615b3f9cef6e4fe2eca8bfc6b4249dea5f9b118d0d30ec5ef4fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "name": "CliError",
      "kind": "class",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L95-L96",
      "signature": "class CliError(ValueError)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bae2dcdcef010efd981c6efe736793f5ed43285a4cd9df0297add060bed56ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#coverage_factor",
      "name": "coverage_factor",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L609-L626",
      "signature": "def coverage_factor(dof: float, coverage_probability: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0811802f19bace32db716cb8fe1870eee013ea276243d46b2b220ccc1c53d3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#emit_json",
      "name": "emit_json",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L297-L310",
      "signature": "def emit_json( document: Any, *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b90a9ab41610e87974509916cf7ea7ee1c3b59378437432feddb75fd56d1425",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#emit_text",
      "name": "emit_text",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L313-L330",
      "signature": "def emit_text( text: str, *, output: str | os.PathLike[str] | None = None, force: bool = False, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f61637d8c5927bf708b70a0652270d6fb058d4cab4b2aa83daa117957a3d28e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#expression_variables",
      "name": "expression_variables",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L433-L450",
      "signature": "def expression_variables(tree: ast.Expression) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "df0f33a95e28802667ff731e9ad5b8706f325d283cfcfc832ed175b3113bd5aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#finite_float",
      "name": "finite_float",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L116-L125",
      "signature": "def finite_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcb0c9fbbd148f433e725aa6160d33a1579db1b55de59e9f4b0f30f3f9278672",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#format_dof",
      "name": "format_dof",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L580-L585",
      "signature": "def format_dof(value: float | None) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc77508752371d9eca5bdff8c58bc6dc1df94c8b2c60fe4093482b27c9869c23",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#json_dof",
      "name": "json_dof",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L572-L577",
      "signature": "def json_dof(value: float | None) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ad12a6196601cf75e3dce5aaf3faba265913cb0458c838e13059092d2d4019b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L333-L345",
      "signature": "def load_json(value: str | os.PathLike[str]) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "659e8beea32412ebca21c97363ecef1d2ad401949511c7ad9f7c97f6c653ecfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#load_json.reject_constant",
      "name": "reject_constant",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L338-L339",
      "signature": "def reject_constant(constant: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5e1d4bbeff611c7ce4129892135842ccb16d13da1aba0b28d1c5e4995cbe51c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#non_negative_float",
      "name": "non_negative_float",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L128-L134",
      "signature": "def non_negative_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "815e44b60291cef2d22cf3bc7e4d717ffb2e8e64b4acd8c4c003fb157ef0b787",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#normalize_distribution",
      "name": "normalize_distribution",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L179-L192",
      "signature": "def normalize_distribution(value: Any, *, label: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "998aef395e0910d1da4bde1c23c71e6767748242afe1d465d1e51dac82071b8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#numerical_tolerance",
      "name": "numerical_tolerance",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L629-L643",
      "signature": "def numerical_tolerance(combined_uncertainty: float, significant_digits: int) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "dda9ad780fc127bf35d1bc1ae47fb3b34ea4b42d0a8b9ad8cdf1ac1152c56bec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#parse_expression",
      "name": "parse_expression",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L368-L421",
      "signature": "def parse_expression(text: str) -> ast.Expression",
      "exported": true,
      "origin": "ast",
      "body_hash": "344f4e163daa7e6c6f01188a58262bbc35210bb245c50401ce74cb3ea1c9759e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#positive_float",
      "name": "positive_float",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L137-L143",
      "signature": "def positive_float(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "05833777599c0a94d1d7b05ed7c4525e8bd836b8cfb76bf8bde6963b1c5c5c4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#probability",
      "name": "probability",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L146-L152",
      "signature": "def probability(value: str) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b0beec79ebaa0e00b0c9569ed35edab117a5325328e642e0121d00e8bbc8781",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#read_text_file",
      "name": "read_text_file",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L348-L357",
      "signature": "def read_text_file( value: str | os.PathLike[str], *, suffixes: Iterable[str] = (\".py\",) ) -> tuple[str, Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "27af58eb3e557ae6a071bfa3cdbdc08e55f1445a211c1d0506d1fb8b72782476",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression",
      "name": "reduce_expression",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L453-L501",
      "signature": "def reduce_expression( tree: ast.Expression, variables: dict[str, Any], functions: dict[str, Callable[..., Any]], ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b475313e1cdeb5996c2017d8fef0f3187fb1ced17aa9bfd35aeb09071a18ae2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression.walk",
      "name": "walk",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L460-L492",
      "signature": "def walk(node: ast.AST) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "72b408ce8ca0eb49b2644da8f829a83f99033531c6744f5457444f0a9444dd7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#scalar_functions",
      "name": "scalar_functions",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L504-L520",
      "signature": "def scalar_functions() -> dict[str, Callable[..., Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "86eb117ac76c0313be7c2dc375f4f14b90642cbde7b018844578f222fcdd4f79",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#shortest_coverage_interval",
      "name": "shortest_coverage_interval",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L646-L666",
      "signature": "def shortest_coverage_interval( sorted_sample: Any, coverage_probability: float ) -> tuple[float, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c6db54efb69139be91d552ad69293ecd1332a959966a2932f086fe9fa48cf89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/_common.py#welch_satterthwaite",
      "name": "welch_satterthwaite",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/_common.py",
      "span": "L588-L606",
      "signature": "def welch_satterthwaite( combined_uncertainty: float, terms: Iterable[tuple[float, float]] ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "b67de3cc6ef25a4c6859009e449e74d58a7e14e201885aad36780bf87b02c28c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py",
      "name": "audit_units.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L1-L576",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4d18bc719bbc61b7b17945177ffbb000dc9132e119ccb86b37bc5a04cd3a7663",
      "chars": 21214,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#_tokens",
      "name": "_tokens",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L179-L193",
      "signature": "def _tokens(text: str) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "d17d4e9f4b8108eee52fba46680da6635e0d7c2446d3ec6853699bfa3d4558f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#audit_source",
      "name": "audit_source",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L441-L451",
      "signature": "def audit_source(source: str, filename: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f34575101c3750e0badb42277e924923f2a32a6120832ce35055d6edcd632d7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "name": "Auditor",
      "kind": "class",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L196-L438",
      "signature": "class Auditor(ast.NodeVisitor)",
      "exported": true,
      "origin": "ast",
      "body_hash": "01bafacec3e544fc2e3ff3bc6d2f3f0a4fe9a2fe87c264eba54ee55877eb9e10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L199-L207",
      "signature": "def __init__(self, source: str, filename: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f4761b419f432b685a02e42bbd6212010f2cf8be4d272eb44c4a22a57392cccb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._call_module",
      "name": "_call_module",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L392-L395",
      "signature": "def _call_module(node: ast.Call) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "308f73da054afde6a986c685c6e376fcf34465e47d7f4de4eadafd218e6d5626",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._call_name",
      "name": "_call_name",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L384-L389",
      "signature": "def _call_name(node: ast.Call) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "58a5a64f04313f7ff39449ebc4e0c0cb717c60008ba4d3e5b930f485327974ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._check_constant_literal",
      "name": "_check_constant_literal",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L272-L289",
      "signature": "def _check_constant_literal(self, node: ast.Constant, value: float) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "dac3b4db7c7683950eb14e9b9d6c5931213c343061f15b409e3c2f3056ebce60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._is_numpy_call",
      "name": "_is_numpy_call",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L398-L403",
      "signature": "def _is_numpy_call(node: ast.Call) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "877ed4635ab3220df186b09e8cfce9c5fe2cf17cad88253ae5ad6c6b16f7b6f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._suppressed",
      "name": "_suppressed",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L430-L438",
      "signature": "def _suppressed(self, finding: dict[str, Any]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "3591659982120ca8712bcc89ca5d0ac999ab197805c108365a339b8d2626d439",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.finish",
      "name": "finish",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L405-L428",
      "signature": "def finish(self) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a049f197057eb7a9c245518eec2985a67ee0a9d9b0a42a8904febdeb6c455bea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "name": "report",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L209-L226",
      "signature": "def report( self, node: ast.AST, rule: str, severity: str, message: str, remedy: str, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64917f8e0c6de875abd7b0779870f7736eed05233be479f0c26c5e04a91784ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Attribute",
      "name": "visit_Attribute",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L293-L312",
      "signature": "def visit_Attribute(self, node: ast.Attribute) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2ffcfad75532425d2c5dbb50ba30d273efa503331d7f0a0bdfa0790a39bb9c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Call",
      "name": "visit_Call",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L316-L381",
      "signature": "def visit_Call(self, node: ast.Call) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "59fdd50448931cc492cc07361a25c767e04f40cf36a8cdcce40ec1d0072234c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Constant",
      "name": "visit_Constant",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L243-L270",
      "signature": "def visit_Constant(self, node: ast.Constant) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5e5f0304c76b22f55926bc16b797687f062708722c4263c5c7d048f5c126ff2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Import",
      "name": "visit_Import",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L230-L234",
      "signature": "def visit_Import(self, node: ast.Import) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2838a42427b74f9244b5e6e965f620e0afe2731e0d165585f8dbac2b37e27169",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_ImportFrom",
      "name": "visit_ImportFrom",
      "kind": "method",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L236-L239",
      "signature": "def visit_ImportFrom(self, node: ast.ImportFrom) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "afb2e6cc055d6a972392907164fa1b0dfa7327a298336503049349c23315f747",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Auditor"
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L485-L510",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a413d376866640a5af9498319942b43f42aa02e8b614a46105cdaa51a6deda5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#exit_code",
      "name": "exit_code",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L541-L551",
      "signature": "def exit_code(document: dict[str, Any], fail_on: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c9194aa0bca43848ee841bffc08b812688a68efb5a40c40cc1aecf0385ee0e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L554-L571",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "22035dbaa134adb88e97767e9c8190a815c6ed15c8d4531b86fb718fce8292c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#parse_suppressions",
      "name": "parse_suppressions",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L145-L176",
      "signature": "def parse_suppressions(source: str) -> tuple[dict[int, set[str]], set[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "001db242bcaa44a6bf5b1479a977e4e9757f875246c978fc776f03e2014721af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#render_markdown",
      "name": "render_markdown",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L454-L482",
      "signature": "def render_markdown(document: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "839b2d85e4484f17e42c6ed7f3915a7e1c49db7ad7a8f654a7cd638dbc3d3ab8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L513-L538",
      "signature": "def run(arguments: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5445ee374c33a984e353c1a00456ac6f2219b334418459baad39fa35419445b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/audit_units.py#significant_digits",
      "name": "significant_digits",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/audit_units.py",
      "span": "L134-L142",
      "signature": "def significant_digits(value: float) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "66b7b7cf5b615dc9a928ece4ede0e73f04e94504e98f0f80b9e57798fe02c3a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "name": "check_plausibility.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L1-L895",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e17d3df0a5cc0e967aacf4ccb2966f7d99d26daa0ab6ed9733b30f6b3a3ab8c3",
      "chars": 34751,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#_catalogue_document",
      "name": "_catalogue_document",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L705-L735",
      "signature": "def _catalogue_document() -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "16bb4af47e1e3cb2661a08dd8f141391db150e894bdd0c020a2cd63f8b26624a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#_describe",
      "name": "_describe",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L542-L547",
      "signature": "def _describe(quantity: Any) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "fe44075328d554325cdc626e7ecae73047b9e6d196389b68aec2d0684503d168",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#_lookup",
      "name": "_lookup",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L738-L745",
      "signature": "def _lookup(kind: str, name: str) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f9d61a96002c12c3b083c6dbac94ac2624738634a49dae9651dc8c6e87b5043d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L650-L702",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc9232be0665257ba2a65fb26b68824de351114d511271102f40e219412d2d75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#check_dimensionality",
      "name": "check_dimensionality",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L483-L496",
      "signature": "def check_dimensionality(name: str, quantity: Any, expected: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d74488f2e39f29937b7180ac2376f1e3b9cfc7c2e6a1ac529661ff1520e6a06f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#classify",
      "name": "classify",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L521-L527",
      "signature": "def classify(value: float, regimes: list[list[Any]]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "928037a6549d19c93ff0a69a86f1d9bd2943e6f1f676d8421ec0f3813c22b7d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#constant_quantities",
      "name": "constant_quantities",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L468-L480",
      "signature": "def constant_quantities(registry: Any) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac6a6b8efc652a83457f27f2fe1e3c9736ebb7585982efc47b845c2686711964",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate",
      "name": "evaluate",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L499-L518",
      "signature": "def evaluate( entry: dict[str, Any], supplied: dict[str, Any], constants: dict[str, Any] ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "09d8f6ef7d59706a5ca509bca3308d1e6d88cc9f352267716960c88f65324061",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_band",
      "name": "evaluate_band",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L596-L627",
      "signature": "def evaluate_band( entry: dict[str, Any], name: str, quantity: Any ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca683ff2b7adb8c4dcbcee6881921a4ef1d47ab4a7b67fc397204634154c3699",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_group",
      "name": "evaluate_group",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L550-L570",
      "signature": "def evaluate_group( entry: dict[str, Any], supplied: dict[str, Any], constants: dict[str, Any] ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "408c0a7a799184929365de7834e89f07f94a2a2a65470831caf06ba3c704be78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_scale",
      "name": "evaluate_scale",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L573-L593",
      "signature": "def evaluate_scale( entry: dict[str, Any], supplied: dict[str, Any], constants: dict[str, Any] ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "abe7365c311f265b8168036e37b5f1ff560e54cf6af6eb0bd5096b384fb8b76e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#exit_code",
      "name": "exit_code",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L641-L647",
      "signature": "def exit_code(document: dict[str, Any], threshold: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5d68a74cb0c43fa31c14429d732e1475e46f019870d79919433b9424c1c8ff3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L873-L890",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7935d6aa9b43eb80cbe4726facf047f5a65ea6de1029fe92bacea5bf02acb5a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#orders_of_magnitude",
      "name": "orders_of_magnitude",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L530-L539",
      "signature": "def orders_of_magnitude(value: float, reference: float) -> float | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "098bd46af9edfa36de2736ef1e38411bb872c55ca7e1a5b88322e945d8b0dbdb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#overall_verdict",
      "name": "overall_verdict",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L630-L638",
      "signature": "def overall_verdict(bands: list[dict[str, Any]]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c48da1337d9b385663b61a60c722c19dc7b8244d0977a71de4f5474c5b2c1058",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#parse_quantity",
      "name": "parse_quantity",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L447-L465",
      "signature": "def parse_quantity(text: str, registry: Any) -> tuple[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b9c21d0a9ef52fc5d9c763349164a6443bae0d5960a5d99695b9f96089c48f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#render_markdown",
      "name": "render_markdown",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L829-L870",
      "signature": "def render_markdown(document: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "74fd0a36fe94825ac18d6249ca15116288548776e96beb674f5b1280c5e1db24",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "span": "L748-L826",
      "signature": "def run(arguments: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f52ce6b4ff839d05010ab8b806c3d06ea89d73ed86a7e41a313ff7ef57281b7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py",
      "name": "convert_units.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L1-L281",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c08723b92765d6d2bd96cde88d7ddcd5f3e15a54aad8e5289b15535e5c2df96e",
      "chars": 10353,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L228-L265",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "6df6a4ee4764febd08c27ec77b013441d8332bd1806f48d665b5ea8ac9f7418d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#build_registry",
      "name": "build_registry",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L64-L73",
      "signature": "def build_registry() -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "b946ceae592f2697ac2abe149d1f0be2f7c73d5362cb5891020a720003d110fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#checked_unit",
      "name": "checked_unit",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L34-L47",
      "signature": "def checked_unit(text: str, *, label: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5d0ab20733e52a47569a3ba3fd9c28ec93481642398ca30bbc3af93e0b34094",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#convert",
      "name": "convert",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L90-L119",
      "signature": "def convert( registry: Any, value: float, unit: str, target: str, contexts: list[str], parameters: dict[str, Any], ) -> Any",
      "exported": true,
      "origin": "ast",
      "body_hash": "03ba4aace9c1a77f667ffc2fe88289ed1c9cab9228e8a5a3ebe0b1ec72f9c303",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#is_multiplicative",
      "name": "is_multiplicative",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L76-L87",
      "signature": "def is_multiplicative(registry: Any, unit: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "40c7ecdb79ed8f50ce68e3f0ff1aab1307f4fefa7db1dae91dbf4c29212433a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L268-L276",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cb95f42d2b6bcc3ac5346e0ae4ee22f6e2c911112413f995b551ef26ff0fb04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#parse_context_parameter",
      "name": "parse_context_parameter",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L50-L61",
      "signature": "def parse_context_parameter(text: str, registry: Any) -> tuple[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7355d67f6d8de9ef0b368d5b0d270936e658cd15f46b6f12c22ecc2ce367981f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#propagate",
      "name": "propagate",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L122-L145",
      "signature": "def propagate( registry: Any, value: float, uncertainty: float, unit: str, target: str, contexts: list[str], parameters: dict[str, Any], ) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccfdfd62cc4d5f4e4c744db8fd2ded56a0bf506751ca55ab77e26710fab55a32",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/convert_units.py",
      "span": "L148-L225",
      "signature": "def run(arguments: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dee757f69cc70ea524199abd4e9ecb9c90c8bf71d5a3f3d4dc64812d499c35ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py",
      "name": "format_result.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L1-L327",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4d628311c9f0ce135a1b71b22fa0c6b9b11410479f63f50005895882cd9ee900",
      "chars": 11704,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#_decimal",
      "name": "_decimal",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L25-L31",
      "signature": "def _decimal(value: float, *, label: str) -> Decimal",
      "exported": false,
      "origin": "ast",
      "body_hash": "49aab79eda0869c3bf688b4476d2affe24260f66a7f0f55009eb809dde2f5eb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#_plain",
      "name": "_plain",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L89-L93",
      "signature": "def _plain(number: Decimal) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "83b2d10ee16d7017355ec3f91e63718f2e825980fac335b5273df7138cfb03a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L215-L265",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "c677bf5d786dbf27eb4250ed7e2d16b59dfa5e0362ec73a2fb0e7b0bed4565bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#build_statement",
      "name": "build_statement",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L163-L185",
      "signature": "def build_statement( renderings: dict[str, str], coverage_factor: float | None, coverage_probability: float | None, ) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a2cba44d52e29a1383ca7849ab10662ae6ac9e8f4905c7f689452758a38ae91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#collect_warnings",
      "name": "collect_warnings",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L188-L212",
      "signature": "def collect_warnings( value: float, uncertainty: float, significant_digits: int, rounded: dict[str, Any] ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f34107f43316b675e7dbece0642a1579e7383dfb7e08e88dd663b6250e752fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L309-L322",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "adfc8b769c29c37877c93e5bedf51a764cc2e27f35fd80405c04f267de404e4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#render",
      "name": "render",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L101-L160",
      "signature": "def render(rounded: dict[str, Any], unit: str | None) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2edad7d29b59401d2d4f67d4b29810d632229479ed27281726bc4c2c4041efb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#round_to_uncertainty",
      "name": "round_to_uncertainty",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L34-L86",
      "signature": "def round_to_uncertainty( value: float, uncertainty: float, *, significant_digits: int = 2, rounding: str = \"half-even\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0603c870dd3270a28b70a322136c8be1a867cf19b40b38607895b465678a93b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/format_result.py",
      "span": "L268-L306",
      "signature": "def run(arguments: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e0ff2a2528257f0aa88632e8db8d7fb0df2bd54ff79fcbd05c0de4e737a1b3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "name": "propagate_uncertainty.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L1-L663",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "55bfcdb2b5739109c537330b86d2c01c82867e3b539856b6f3ad6d15c0e595c7",
      "chars": 26346,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw",
      "name": "_draw",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L194-L214",
      "signature": "def _draw(rng: Any, entry: dict[str, Any], trials: int) -> Any",
      "exported": false,
      "origin": "ast",
      "body_hash": "64bd726fed58506fd8ac690d160a35b4640b8dcec4f7001f48d84db0984f4baa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw_correlated",
      "name": "_draw_correlated",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L217-L264",
      "signature": "def _draw_correlated( rng: Any, variables: list[dict[str, Any]], correlations: dict[tuple[str, str], float], trials: int, ) -> dict[str, Any]",
      "exported": false,
      "origin": "ast",
      "body_hash": "6dbfaa629c3506e85ea540ee20aaa67a61680adb2efbe8b34642d0394a77e032",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L495-L557",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccdf49f60d48fe8dab8612033f9d7bb078259fde2684bcfa27b0ef2c23c8093a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#collect_warnings",
      "name": "collect_warnings",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L364-L422",
      "signature": "def collect_warnings( framework: dict[str, Any], sampling: dict[str, Any] | None, correlations: dict[tuple[str, str], float], ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "08f769c1bc12b9a1f57b4fcca9f36705edc31de621d67a3d92fc5edd8d75ae93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#gum_framework",
      "name": "gum_framework",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L111-L191",
      "signature": "def gum_framework( tree: Any, variables: list[dict[str, Any]], correlations: dict[tuple[str, str], float], coverage_probability: float, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "89a81814b825ced6b297a43dc007c06561687acc281b36c4235497f1e4c0b81e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L641-L658",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "12036ac32bffdddab1407826b115c7914235a9fa1e1d20eed35ded22679f4ee5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#monte_carlo",
      "name": "monte_carlo",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L267-L326",
      "signature": "def monte_carlo( tree: Any, variables: list[dict[str, Any]], correlations: dict[tuple[str, str], float], coverage_probability: float, trials: int, seed: int, ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d32a09706c2b86d8c36c28e519cd805e3e2d3878394e11c00ff6c47813613ed9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#normalize_variables",
      "name": "normalize_variables",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L66-L108",
      "signature": "def normalize_variables(records: list[Any]) -> list[dict[str, Any]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "140e59ac486e8114f557db1585180767a3cf2e8dc12f614f52fc357b0624a965",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#parse_correlation",
      "name": "parse_correlation",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L51-L63",
      "signature": "def parse_correlation(text: str) -> tuple[str, str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1c1881d48683bdd5bcea45e89adfc18b1f3e083cff900b65e93b18007e6c477",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#parse_variable",
      "name": "parse_variable",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L22-L48",
      "signature": "def parse_variable(text: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c551dded593327fcc990e007d04c1363efbf6c4f04fed0e1d06441d8c1b82cad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#render_markdown",
      "name": "render_markdown",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L425-L492",
      "signature": "def render_markdown(document: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b5a6da760ebfa3b765d01ba0b1a8b1c9eba1d339f2e03b60721ec339027d694",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "name": "run",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L560-L638",
      "signature": "def run(arguments: argparse.Namespace) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c47282076bd8d616a714b19578311a4f1e56b29321d38131df8d21f28c6f149a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#validate_linearization",
      "name": "validate_linearization",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "span": "L329-L361",
      "signature": "def validate_linearization( framework: dict[str, Any], sampling: dict[str, Any], significant_digits: int ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0ab3280cf921ef8b13dccb9595f34a580c43745ce2bb540444e3676de7c05ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "name": "uncertainty_budget.py",
      "kind": "file",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L1-L364",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fc9bf5fbbed2f259a4f3348fad282399025fc9f51e23c6737302627f90487c36",
      "chars": 13396,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_budget",
      "name": "build_budget",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L140-L202",
      "signature": "def build_budget(spec: dict[str, Any], coverage_override: float | None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5f621dead5ef16de44895b50124d95fea53f80590c48e0810683fe08017e0ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_parser",
      "name": "build_parser",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L309-L332",
      "signature": "def build_parser() -> argparse.ArgumentParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "63801448efa45260f6a9ef4e1da8ef1c71e8199c5668778c496445cedbb01c97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#collect_warnings",
      "name": "collect_warnings",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L205-L254",
      "signature": "def collect_warnings(budget: dict[str, Any]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "be7ea92b66cc202bdd3b08c98af7fe878824ada80d0f4b2a271cea9542774f4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L335-L359",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "de99af6f4bf9de58ce9fe8b44b3f82023f4b823035cdf8ed3a96c6fa6fbf0302",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#normalize_component",
      "name": "normalize_component",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L68-L137",
      "signature": "def normalize_component(raw: Any, index: int, measurand: float | None) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "41f0419277e5a0b7656a7ec912a1fed8e1b782a3f610c1779d8cf5ca6fd11866",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#render_markdown",
      "name": "render_markdown",
      "kind": "function",
      "path": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "span": "L257-L306",
      "signature": "def render_markdown(budget: dict[str, Any]) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f350acab34006585588fe4bb1b37d2f70dbfa67d724dc2b758a20fd0a288440",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/customize_template.py",
      "name": "customize_template.py",
      "kind": "file",
      "path": "skills/venue-templates/scripts/customize_template.py",
      "span": "L1-L207",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8a44c5dab3237b14b8cb7b9dc2d651f176ae95e5f053576b1bd4437f5336f82a",
      "chars": 6867,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/customize_template.py#customize_template",
      "name": "customize_template",
      "kind": "function",
      "path": "skills/venue-templates/scripts/customize_template.py",
      "span": "L35-L89",
      "signature": "def customize_template(template_path, output_path, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6065cd5a417cd3fd3dbc52d6d869a8ee4accc65021b527998d09df3ff586a91d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/customize_template.py#find_template",
      "name": "find_template",
      "kind": "function",
      "path": "skills/venue-templates/scripts/customize_template.py",
      "span": "L22-L33",
      "signature": "def find_template(template_name)",
      "exported": true,
      "origin": "ast",
      "body_hash": "92bd9964e8f5237c9a127635ed622f62d7a11863c944259be0514c4c17b26e74",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/customize_template.py#get_skill_path",
      "name": "get_skill_path",
      "kind": "function",
      "path": "skills/venue-templates/scripts/customize_template.py",
      "span": "L16-L20",
      "signature": "def get_skill_path()",
      "exported": true,
      "origin": "ast",
      "body_hash": "b339cc49ded3fc1d1f783594dd5428ffe28d49b7753dda337b0a614dbf4471e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/customize_template.py#interactive_mode",
      "name": "interactive_mode",
      "kind": "function",
      "path": "skills/venue-templates/scripts/customize_template.py",
      "span": "L91-L148",
      "signature": "def interactive_mode()",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c8e2635d730816201ff94d50349bab454413f6863e25713c012ca9853890747",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/customize_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/venue-templates/scripts/customize_template.py",
      "span": "L150-L202",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce23304a07a73f20e88f8273eeaec318bb80db9ba9ca66715525b385039929d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py",
      "name": "query_template.py",
      "kind": "file",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L1-L203",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2ce3d7c43a0b631fd27a6cbee30952919a631be07e01c2ebb44090d9227fcc94",
      "chars": 7991,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L179-L198",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "b74c7429b176ed774c41619f4ced0672f50e0bc8cdf6ecbc1bac24d87ad34f32",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py#parse_args",
      "name": "parse_args",
      "kind": "function",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L158-L176",
      "signature": "def parse_args() -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "e992d216415a7c8ae24e4b65a7618bbf07cf8cd390b6947c867affd3a9b5d8fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py#print_template",
      "name": "print_template",
      "kind": "function",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L139-L155",
      "signature": "def print_template(template: dict, detailed: bool = True) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1139e9be2499b347ac77e00801249fb520f074160fb8ff9f2d03e5d79a1fd3a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py#search_templates",
      "name": "search_templates",
      "kind": "function",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L110-L136",
      "signature": "def search_templates( venue: str | None = None, template_type: str | None = None, keyword: str | None = None, ) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbf543de4913d7e7ef88fa2cd2ebabf74453fc20e3a88c8efb0661308e608a31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py#skill_path",
      "name": "skill_path",
      "kind": "function",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L102-L103",
      "signature": "def skill_path() -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ba8dfeed3137687c5951f5a18d691af653afa789efd60dfe0831369af240b93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/query_template.py#template_path",
      "name": "template_path",
      "kind": "function",
      "path": "skills/venue-templates/scripts/query_template.py",
      "span": "L106-L107",
      "signature": "def template_path(category: str, filename: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f2e80755355ac3c1e18fd3c602f473e6586217e321943f941b550e542ecb2b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py",
      "name": "validate_format.py",
      "kind": "file",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L1-L322",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c05a058bc225d58c1a3c21c1c5077fc7d88ad32abc9745572e923cad774d1b79",
      "chars": 10603,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#embedded_fonts",
      "name": "embedded_fonts",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L94-L104",
      "signature": "def embedded_fonts(pdf_path: Path) -> list[str] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "080afd2b6bb88e55c8c0aeb638689c90e934cf7ce74f14f5fa1ecd4231c7f7a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#font_result",
      "name": "font_result",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L160-L178",
      "signature": "def font_result(fonts: list[str] | None) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "765b421271327b0952e3cf17aaaca227348ad7fa278b1a52ed89dc330465e990",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L251-L317",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "96827b58929958d28aece5a9c80bd9ccf0cd3aae225f6e8392d632afd4083230",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#metadata_result",
      "name": "metadata_result",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L181-L198",
      "signature": "def metadata_result(info: dict[str, str] | None) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a330f206141f9cd8348d0e68a93f5343e781ccae8859c9b74413d898fea3b0b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#page_count_result",
      "name": "page_count_result",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L107-L157",
      "signature": "def page_count_result( total_pages: int | None, content_pages: int | None, max_content_pages: int | None, excluded: str | None, ) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ea9270e02299a7e5a5dabdf0422930145f378b7b7a5c6c41cfad298afcab55f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#parse_args",
      "name": "parse_args",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L229-L248",
      "signature": "def parse_args() -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a75b8bd54ab538d5484f8ddba73f272b8d0409af1c3f56d30827176a3c3d3b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#pdf_info",
      "name": "pdf_info",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L81-L91",
      "signature": "def pdf_info(pdf_path: Path) -> dict[str, str] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "533d89139853eea77b26185781b4bb760dec57241f740fc5510f035195dbfa06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#run_poppler",
      "name": "run_poppler",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L66-L78",
      "signature": "def run_poppler(command: str, pdf_path: Path) -> subprocess.CompletedProcess[str] | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e296aeec0bf1d14bca124583ecc8adc6c459a3076dc72217bfcd0b0e17308ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/venue-templates/scripts/validate_format.py#write_report",
      "name": "write_report",
      "kind": "function",
      "path": "skills/venue-templates/scripts/validate_format.py",
      "span": "L201-L226",
      "signature": "def write_report( report_path: Path, pdf_path: Path, source_url: str | None, checked: str | None, results: dict[str, dict[str, str]], ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ba2a58fa79114cc1c5dda185a6b1d19960ef6b323ec64dd2075e4f4066edb23",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "name": "profiler_to_waypoint.py",
      "kind": "file",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L1-L482",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2d46d4441489c52fa0e693742d04ecf9481ce5b78f5c60e1a9597585e2d2e2a1",
      "chars": 16893,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#attach_metadata",
      "name": "attach_metadata",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L328-L347",
      "signature": "def attach_metadata(frame: pd.DataFrame, metadata_path: Path) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "e75fe16ce988bd32c74477775054ff9ec200e3e063355ec1cf8e3c486d01e901",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#build_matrix",
      "name": "build_matrix",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L355-L370",
      "signature": "def build_matrix(args: argparse.Namespace, paths: list[Path]) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7897f83f97c9aa126b43fa8b66d376fcb5b20d2db295279bad31db4d359d6a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#deepest_rank",
      "name": "deepest_rank",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L103-L113",
      "signature": "def deepest_rank(lineage: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce4b078038f280322a319477ef0179b798554ef71f7c156cdeeb38b4903f740c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L373-L477",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbe4a28633ee6965aa8aae2d40f1de6b2f8ddb39ca282d437e0d42e10f5617bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#matrix_to_waypoint",
      "name": "matrix_to_waypoint",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L281-L325",
      "signature": "def matrix_to_waypoint( matrix: pd.DataFrame, *, normalize: bool = True, drop_zeros: bool = True, min_abundance: float = 0.0, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdbcb162059859288c3dec0743dcf95fd6d18c18aaa26555bb81602a4d9c237e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#normalise_lineage",
      "name": "normalise_lineage",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L73-L100",
      "signature": "def normalise_lineage(lineage: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7d8b3be7a9bdc1e6a7d043715f52a33d9dbf27b699b28d82c258fc97a512687",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken",
      "name": "parse_kraken",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L217-L227",
      "signature": "def parse_kraken(paths: list[Path], rank: str) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "b360397458e9a8a03319b66bfb4b7fceacfcb452fb0f9f63544c36a710280523",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken_report",
      "name": "parse_kraken_report",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L164-L214",
      "signature": "def parse_kraken_report(path: Path, rank: str) -> pd.Series",
      "exported": true,
      "origin": "ast",
      "body_hash": "fba8ab28b6debc8f5c136836a8c620c5c9249231514b0fb810a0daeb0c13e0a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_metaphlan",
      "name": "parse_metaphlan",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L121-L161",
      "signature": "def parse_metaphlan(path: Path, rank: str) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "6173a57075fd5b951555cba3c4f8d46bb514f8804f5885382932df1b1907514e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_table",
      "name": "parse_table",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "span": "L230-L273",
      "signature": "def parse_table( path: Path, *, taxonomy_column: str | None, orientation: str, ) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "a09fe68819335296c10ab5d8806715768541e5f35f6af72739a9db3c65ac58d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "name": "vocab_coverage.py",
      "kind": "file",
      "path": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "span": "L1-L236",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0e8ba65898e21656ea3a5df2492bacf7bf1761dd03f8c624f2437b812b7941b2",
      "chars": 8318,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/vocab_coverage.py#_parse_list_cell",
      "name": "_parse_list_cell",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "span": "L36-L52",
      "signature": "def _parse_list_cell(value)",
      "exported": false,
      "origin": "ast",
      "body_hash": "547c7fb8f6923002090c8ec41ad187b18486b6c3b3d6c950bec692a9835919e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/vocab_coverage.py#coverage_report",
      "name": "coverage_report",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "span": "L100-L140",
      "signature": "def coverage_report( frame: pd.DataFrame, tokenizer ) -> tuple[pd.DataFrame, Counter[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dfac8fd001ba437681eaece98fc02506611e7e0ed5603e13b5e80ccedd2ac20",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/vocab_coverage.py#load_dataframe",
      "name": "load_dataframe",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "span": "L55-L75",
      "signature": "def load_dataframe(path: Path) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a2d674aebdcb8ce8fbd7f37d352a0d68af60bd4a034fd4289cb89e1ebd83a77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/vocab_coverage.py#load_tokenizer",
      "name": "load_tokenizer",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "span": "L78-L97",
      "signature": "def load_tokenizer(model: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d59d768519b7b156b56f8f6d0740ee8ad23256610b026c9db9c589144040b32e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/waypoint-bio/scripts/vocab_coverage.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "span": "L143-L231",
      "signature": "def main(argv: list[str] | None = None) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d8f724cb712f21e2e8a072c2d8c5649358a3b95112147b60bf33e95f7ca2a98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "678e42456d9e10923c8b9a93691cdd993de3433448a184fa72a0c31f4ae086d5",
      "chars": 3358,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py#opc_target",
      "name": "opc_target",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L24-L55",
      "signature": "def opc_target(target: str, source_part: str, target_mode: str = \"\") -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c2698a0196e92977188d7ad4500b79e58934a67daed98395efa37fac5bd0d4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py#part_text",
      "name": "part_text",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L63-L64",
      "signature": "def part_text(data: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d704bfe47bc913895098f82a39c14982ede88dde0e4c86a488f0139c9a855299",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py#rels_source_part",
      "name": "rels_source_part",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L58-L60",
      "signature": "def rels_source_part(rels_file: Path, unpacked_dir: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef8501e94f8849865395afa59d0bff7bc7f0e0cefa625be94888b756fba4429a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py#rendered_text",
      "name": "rendered_text",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L70-L71",
      "signature": "def rendered_text(text: str, preserve: bool) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c080459c79c45408eb5adc12c8d73b7202097f695d4eac99311bef2d4848631",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py#rezip",
      "name": "rezip",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L85-L111",
      "signature": "def rezip(src_dir: Path, out_path: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0f3e8ef554e29a1164d055c93e533f5369b318f69483cc8d2460c7721aa40bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/__init__.py#safe_extract",
      "name": "safe_extract",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/__init__.py",
      "span": "L74-L82",
      "signature": "def safe_extract(zf: zipfile.ZipFile, dest: Path) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4db5976845ae72a2ae510d819efa8a6c2347e3c58f109ba5c738afc91bccabc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "name": "pptx_chart.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L1-L171",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "47ac266f7d39d11ede6bb0d1f3a19d801394fd2964636f1b48beb701f1832964",
      "chars": 5862,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "name": "_canonical_ids",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L89-L98",
      "signature": "def _canonical_ids(axes: dict[str, list[str]], limit: int) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "fe1abc31e37514463c98310a8de18fe50f1ae0d98d28049f9b8a886c7e155934",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "name": "_check_chart_axis_references",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L111-L139",
      "signature": "def _check_chart_axis_references(part: str, xml: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "daeda85be68c4431c8ff932fd9607ed31c28d00646f41c699c056121e52d2b57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "name": "_check_stacked_label_positions",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L36-L53",
      "signature": "def _check_stacked_label_positions(part: str, xml: str) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f6578cc1f2ac1762a3e0acf9f0db7f9496e08f470e011c7be716249e2beac69",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "name": "_declared_axes",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L82-L86",
      "signature": "def _declared_axes(xml: str) -> dict[str, list[str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8f9fa84c1d1e34124ecab18006b1ba95842fafea8901b038eca4d8516897d17e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "name": "_ext_lst_spans",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L142-L158",
      "signature": "def _ext_lst_spans(text: str) -> list[tuple[int, int]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "c02cfb35f7461db872a28530296027939b10e791d03c4430976804b246b4f5b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "name": "_strip_ext_lst",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L21-L27",
      "signature": "def _strip_ext_lst(text: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "f1c78c4e4f2fcc2f3ba89f6cae061c6b96eefd17868adb8806f1b97a3423d055",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "name": "_undeclared_axes",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L101-L108",
      "signature": "def _undeclared_axes(kind: str, block: str, axes: dict[str, list[str]]) -> list[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4c0e6191d880441be6ce5e1c7ed473aa1cc4d2613d4b5af4037c6f4d9f237eb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_chart.py#find_chart_problems",
      "name": "find_chart_problems",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "span": "L164-L170",
      "signature": "def find_chart_problems(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4192f4ba8144dc6ee31a67445371ad7252f49d6b24d5f683d931fb17a3db1d15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "name": "pptx_slide.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "span": "L1-L61",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7b9f69b4a5bd6a2d9eabf9e0e3e796d7a421373145f6a8cd11f60b7ba2d6a5d0",
      "chars": 1675,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_slide.py#fatal_slide_errors",
      "name": "fatal_slide_errors",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "span": "L53-L60",
      "signature": "def fatal_slide_errors(errors: set[str]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1864ba6bc6a1adb836e46a8e3a64a0fe4c54954bfe21dab6f52bfcef9365d86f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_slide.py#is_schema_verdict",
      "name": "is_schema_verdict",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "span": "L49-L50",
      "signature": "def is_schema_verdict(error: str) -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3ba7b3acbf328b75274c7e352954c1549174521811bc9d0f68f2b20fd893bbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "name": "pptx_theme.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L1-L115",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ebb54c56e9c13807f5f98f0cae22d47cdd0162da8525eaa664e3f2c8c8d6bb03",
      "chars": 3510,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "name": "_is_inert",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L97-L98",
      "signature": "def _is_inert(master: str, inert_notes: bool) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "40464ba886fe1bdf31742950643161dbc6061b73822ba330ecbc447d3c08d3ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_masters",
      "name": "_masters",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L62-L63",
      "signature": "def _masters(files: Mapping[str, bytes]) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "e391b04d730c23a827967f5c81401ee79b5b5a9b44e590ec131d8ef3a44b7a8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "name": "_notes_master_share_is_inert",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L74-L79",
      "signature": "def _notes_master_share_is_inert(files: Mapping[str, bytes]) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "b47457c7dd1081fbdb8532a28b29575591b868379dee7ea2ca73ce683c0e7caa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "name": "_rels_path",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L35-L37",
      "signature": "def _rels_path(part: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "5076825d28bd675cdfe4019c274c365ac6ef0f09691f2fadaa470dcde11655c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_resolve",
      "name": "_resolve",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L40-L44",
      "signature": "def _resolve(rels_path: str, target: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "554c94176d7f51d2a1c9f8e36e2c2f8f9cb76579eef8851cfdfbf50d30c6a471",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_shares",
      "name": "_shares",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L82-L94",
      "signature": "def _shares(files: Mapping[str, bytes])",
      "exported": false,
      "origin": "ast",
      "body_hash": "d5c3437f483f3f17c85e4037b2d9528ce13fc33effb40806fd4d372f6840fb63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_sort_key",
      "name": "_sort_key",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L29-L32",
      "signature": "def _sort_key(name: str) -> tuple[int, int]",
      "exported": false,
      "origin": "ast",
      "body_hash": "5450a9c104b3f6c195508a226a99d321d4b969e16c9a3af3483feb5ce06fcf13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "name": "_theme_rel",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L47-L59",
      "signature": "def _theme_rel(files: Mapping[str, bytes], master: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "329a7d6f2733b9bf7dc48fa9ec6535c433a6e1a5e434f08c79e15e529d78a352",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "name": "find_shared_master_themes",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L101-L105",
      "signature": "def find_shared_master_themes(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd18e0dc141b3d7f252e9ed3fa8404b02c5e0bff92c79e33d1b5f3f0f79cad5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "name": "live_shared_master_themes",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "span": "L108-L114",
      "signature": "def live_shared_master_themes(files: Mapping[str, bytes]) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4a48431dce8e00949ab50fb3b663e3ed170908aa8785623f4ea30945c6d4d4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/soffice.py",
      "name": "soffice.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/soffice.py",
      "span": "L1-L233",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "85ca09ee0d2bdbd2cd2cde7d2a18e7e1598d1b82e9cb61e7db5d223822ea0782",
      "chars": 8008,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/soffice.py#_ensure_shim",
      "name": "_ensure_shim",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/soffice.py",
      "span": "L96-L114",
      "signature": "def _ensure_shim() -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "15addb32514ee866d69df2bd58ac3e927ea93b50a9e4441f5273d968d7bed4b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/soffice.py#_needs_shim",
      "name": "_needs_shim",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/soffice.py",
      "span": "L87-L93",
      "signature": "def _needs_shim() -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "3f9b3dc9884dea09cb68c343e847cb29548d720a915acfe7da0a55d91e207582",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/soffice.py#get_soffice_env",
      "name": "get_soffice_env",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/soffice.py",
      "span": "L50-L63",
      "signature": "def get_soffice_env() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "7644aea5769a40681f9f06c98b4511f28050aa6f38ab6404365e7fee23d10878",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/soffice.py#run_soffice",
      "name": "run_soffice",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/soffice.py",
      "span": "L66-L74",
      "signature": "def run_soffice(args: Iterable[str], **kwargs) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "48671788bc5b99f5502fb1554198c15181f1c24058edf642950d2bb6831bd281",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validate.py",
      "name": "validate.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/validate.py",
      "span": "L1-L174",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "346a4c89d92fff55e610f11efda48c30228815b29bdb10b987e48f7af70acf1e",
      "chars": 6140,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validate.py#_fail",
      "name": "_fail",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validate.py",
      "span": "L31-L33",
      "signature": "def _fail(message: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "51689ba8467eaa41640f60c28970907f70044894c29413600779685960e379ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validate.py#_has_tracked_changes",
      "name": "_has_tracked_changes",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validate.py",
      "span": "L36-L45",
      "signature": "def _has_tracked_changes(unpacked_dir: Path) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "560534a9514a4b401d3b0d357c620ef7e9bae654b558ee0270e0639acb115487",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validate.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validate.py",
      "span": "L48-L169",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "af5bf4afeddbb751590ec237663815fef2081fe5b81c672bbfdcace3c83ada7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/validators/__init__.py",
      "span": "L1-L16",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "83e0f035c5abea238d3f2c3968afbd511ed022b527b7c9cb60a9434cc34ff987",
      "chars": 336,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py",
      "name": "base.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L1-L876",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f818ea28c793ba42960fa4498265e2632a62c86f7b5d6aff6fa89dacc02d59ea",
      "chars": 33756,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#_load_schema",
      "name": "_load_schema",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L17-L22",
      "signature": "def _load_schema(schema_path: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4eca50134b98a79c0b453cfb40c479ecd381e80cf5b27617ace209f46c5e25fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "name": "BaseSchemaValidator",
      "kind": "class",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L24-L871",
      "signature": "class BaseSchemaValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "1129b698cadf4eeca035657883909dad3df766fbe5f0e4256fb292cd75fadb8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L106-L119",
      "signature": "def __init__(self, unpacked_dir, original_file=None, verbose=False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c0ab3a6296e03f77457b7fff83d2cb3f8452d13685de06eb3473250f018e1c93",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "name": "_clean_ignorable_namespaces",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L728-L746",
      "signature": "def _clean_ignorable_namespaces(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f819002c77f4c9b7fb43c106023c005f6b1dc955849d1d32f674c4e533bec474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "name": "_get_expected_relationship_type",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L494-L515",
      "signature": "def _get_expected_relationship_type(self, element_name)",
      "exported": false,
      "origin": "ast",
      "body_hash": "26ae698f86a2d749400220d9511ae83a615c756277caecb410190f271ab7a124",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "name": "_get_original_file_errors",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L812-L840",
      "signature": "def _get_original_file_errors(self, xml_file, schema_path=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "130cf2ef5bf05226ec37a1df58c742e695384c33f6102bef99d80c838ad3f47b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "name": "_get_schema_path",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L710-L726",
      "signature": "def _get_schema_path(self, xml_file)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2ec1f13dd5c8862034a7ff86fbde3a8aa652bb3c6a0a666b3da21453c4b81a1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "name": "_preprocess_for_mc_ignorable",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L767-L773",
      "signature": "def _preprocess_for_mc_ignorable(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "0a330f2bc2606c45a1cefd6c9b89b56fc728f1aae035249fe96fc63d053d7cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "name": "_preprocess_for_schema",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L775-L776",
      "signature": "def _preprocess_for_schema(self, xml_doc, relative_path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e62d53800b442c1d56f79b61ba1803e7cbe9be702a0192a24d6509b9f252f92f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "name": "_remove_ignorable_elements",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L748-L765",
      "signature": "def _remove_ignorable_elements(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5a7432bf0ad55dac6fb4f8807af6d70a17e39ec76b73434af009811b27c5aa6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "name": "_remove_template_tags_from_text_nodes",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L842-L871",
      "signature": "def _remove_template_tags_from_text_nodes(self, xml_doc)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9246206f66577b278b24dfe657ba39a1f578938207b9fe4194e69d1835599431",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "name": "process_text_content",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L849-L859",
      "signature": "def process_text_content(text, content_type)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c8bf1fd9c01da7ed769ebb72d2144053b482b46684453f3b8b639063815c9ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "name": "_validate_single_file_xsd",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L778-L810",
      "signature": "def _validate_single_file_xsd(self, xml_file, base_path, schema_path=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e8504a854f335f45709fa5844d3dd4ecc6ac1b0f0c2f94542d799a3d4562f6ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L124-L125",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6436276765a729adb6b5cbe0e1aef1d0ad2df44526c3f87efe142fe0ddac2af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "name": "repair_whitespace_preservation",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L127-L160",
      "signature": "def repair_whitespace_preservation(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "96c9cdd95c1b47c67993f5d515dc68e46101a7748cbc8a2b1a11152bfab8f931",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L121-L122",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc5b5e6c0b2669fa71699d476f2724fa6f36c223c9e04ce039aa0acbfd3b2afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "name": "validate_against_xsd",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L661-L708",
      "signature": "def validate_against_xsd(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95d9de05921fd5f3e0951239dacafd4be8f0728f6b2455e7a06f365e7eb52c24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "name": "validate_all_relationship_ids",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L408-L492",
      "signature": "def validate_all_relationship_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "219f87e4462705ef87d28dffee781b5fe898a8de0f24286929f114f72a58857b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_content_types",
      "name": "validate_content_types",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L517-L621",
      "signature": "def validate_content_types(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f85e505c88ebff2c51443ab46f8f16cc4942bee8dbd50aca0f45590c4791879a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "name": "validate_file_against_xsd",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L623-L659",
      "signature": "def validate_file_against_xsd(self, xml_file, verbose=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e95ad25abdb64cd6ecd0b2919d0041ebaf457809d47bab56b4d4735bbd333534",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_references",
      "name": "validate_file_references",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L310-L406",
      "signature": "def validate_file_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7af8027e7b13b6aaaa5a08fcc33a34afe42a5a2fe93856b556ef463e3dbcc7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_namespaces",
      "name": "validate_namespaces",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L189-L216",
      "signature": "def validate_namespaces(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "200e5b3d11825c433aa10cad2a5b8d0965ffa6b50f3730e9f15790ae920c8d86",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_unique_ids",
      "name": "validate_unique_ids",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L218-L308",
      "signature": "def validate_unique_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "975a00ea1cf0d677a83c5a9f996d4d5f9116e0405a714654c9e2833dfb92bd23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_xml",
      "name": "validate_xml",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/base.py",
      "span": "L162-L187",
      "signature": "def validate_xml(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee83c980cdec8a5a14485d1214b6aa515a4116d14702dee54d20dcc205954625",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BaseSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py",
      "name": "docx.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L1-L467",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "93d3444c0ef3f043d21a2285c46d2cda478426b930dc33dcf3b11265935517b5",
      "chars": 17478,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "name": "DOCXSchemaValidator",
      "kind": "class",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L19-L462",
      "signature": "class DOCXSchemaValidator(BaseSchemaValidator)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15bc269c48db0effc4f9851ff7cb6b23b2857b5463917d618148a6a4f716bcfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "name": "_parse_id_value",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L257-L258",
      "signature": "def _parse_id_value(self, val: str, base: int = 16) -> int",
      "exported": false,
      "origin": "ast",
      "body_hash": "0dd43837122cd1852439b1e88d1562c57523e031909005fd7c9829167953dcc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "name": "compare_paragraph_counts",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L246-L255",
      "signature": "def compare_paragraph_counts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7c4f7e66cbb9fd10b5bbdaab4dd945542960ef82c10227eedc4adce45fae6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "name": "count_paragraphs_in_original",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L182-L203",
      "signature": "def count_paragraphs_in_original(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "601470148cffee7278f0a1ada00dd1606fd1ab1582f29291ee862e7674d42125",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "name": "count_paragraphs_in_unpacked",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L166-L180",
      "signature": "def count_paragraphs_in_unpacked(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "079a8e5626c3e07797f756645d4d8d7a82423ce7bf14a604298c0ce5bc43c505",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L404-L407",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "05d0d5cc0dd73268ec0526a5bfe98c46d42e32b3346ecc1e6a7e8b99b57a4260",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "name": "repair_durableId",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L409-L462",
      "signature": "def repair_durableId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "3164ce4f1a96460cff17b577b98190da50814e216da57bec6a5cb3961307d9ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L27-L67",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ad58161b49145e130f7e504307b63d17b068f84b3147203705d4318989e2f6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "name": "validate_comment_markers",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L316-L402",
      "signature": "def validate_comment_markers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0713001b010cab09af475641b503320101e429da702a27e346a3937cc49e96cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "name": "validate_deletions",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L115-L164",
      "signature": "def validate_deletions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dff8053c82e0cbf61f6bf81e7c036504b4e3be7028dce73f044ff8f0c25e315",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "name": "validate_id_constraints",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L260-L314",
      "signature": "def validate_id_constraints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "938d3ca4d011cc43ac00de237f93f9fe22fd9c1f5eeb2d32c6a07a32d834b79d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "name": "validate_insertions",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L205-L244",
      "signature": "def validate_insertions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae71eea320b5cc0b2cd5962508a419be90f18afd99fdf4a24c56243edabd7421",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "name": "validate_whitespace_preservation",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/docx.py",
      "span": "L69-L113",
      "signature": "def validate_whitespace_preservation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c59f93b16ecda75c9796b875ffb61c4d6d4248327fffbbb24b868cb021280f23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DOCXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py",
      "name": "pptx.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L1-L442",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17eadad2b7a8374ccbe4cda45693bcd6a36f9d61a7d60f9c9ceef9464dec8299",
      "chars": 15966,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "name": "PPTXSchemaValidator",
      "kind": "class",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L13-L437",
      "signature": "class PPTXSchemaValidator(BaseSchemaValidator)",
      "exported": true,
      "origin": "ast",
      "body_hash": "836c39302df74562e1dae535eb6b739a97490f9a4cfdfe9cdc9bb76aac8f8c6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._get_schema_path",
      "name": "_get_schema_path",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L204-L207",
      "signature": "def _get_schema_path(self, xml_file)",
      "exported": false,
      "origin": "ast",
      "body_hash": "1eee089caa153a5cb7f923bfb98a96ff8291bd4431244711881421fd2f4800d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "name": "_looks_like_uuid",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L266-L268",
      "signature": "def _looks_like_uuid(self, value)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f273b75284a7eb91c7a1f535ea9a6c3237d9e9d5016a7869f2237d4aa8d18549",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "name": "_original_slide_defects",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L123-L151",
      "signature": "def _original_slide_defects(self, schema) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "812652d3a4cafd93f7d030723faf47d2f86e590721dc5bc770f2cac7e8002a42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "name": "_package_map",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L74-L88",
      "signature": "def _package_map(self) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "0d6617de403ca75c7ad81fc1b20216155762a001ee0bf72633ed8bce2e7e7212",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._preprocess_for_schema",
      "name": "_preprocess_for_schema",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L209-L226",
      "signature": "def _preprocess_for_schema(self, xml_doc, relative_path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3811d37ab78fe83f093902b6e4a0d3f10c267eafc36c4be3d1715b48b77a3d51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L28-L72",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dc88c9721a6bb8b26536a73fea95f331e9c5a144a2c2dfd97204c48cdbce3c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "name": "validate_charts",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L109-L121",
      "signature": "def validate_charts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "faeed3148ed9f28320a702c1d64ada1b845448b0a168ad7799337614e3b1ffce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "name": "validate_master_theme_uniqueness",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L90-L107",
      "signature": "def validate_master_theme_uniqueness(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d41d9b570113e4fba0d3def9221b2a399a14464aaeae950861f935f262667282",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "name": "validate_no_duplicate_slide_layouts",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L338-L374",
      "signature": "def validate_no_duplicate_slide_layouts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc79713db3fe9a010ab0530114c594c3504a57049a56db232ff806fcdbc3b8f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "name": "validate_notes_slide_references",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L376-L437",
      "signature": "def validate_notes_slide_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a33ea23df1bbfc453bdf461e77a19066dca8c6090fa4e1f8763fbae90617ee2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "name": "validate_slide_layout_ids",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L270-L336",
      "signature": "def validate_slide_layout_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ce7a7da6c390ddbda3d253e41ec4d6e67bc2937291802368638272d5452d7b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "name": "validate_slides",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L153-L202",
      "signature": "def validate_slides(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbfd9aa6b62584b89d9699b495fcead6825f8791560c272cf2e254afb3348783",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "name": "validate_uuid_ids",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/pptx.py",
      "span": "L228-L264",
      "signature": "def validate_uuid_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60b7d9904daab6aab999c3a5208bb981abeafc1a43bdd4f7ffc4bd69ef1dd317",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PPTXSchemaValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py",
      "name": "redlining.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L1-L300",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ed50d0885eee4b9c387f546b059bcaed64086815880a5167336244f93e305123",
      "chars": 11231,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "name": "RedliningValidator",
      "kind": "class",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L25-L295",
      "signature": "class RedliningValidator",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5fa985e9fd94180230f9a97c6d43101b59f2423c1c59ccc2cf68654c4a02338",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L27-L33",
      "signature": "def __init__(self, unpacked_dir, original_docx, verbose=False)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c64294dd23d959264cdccfb2cd5fdd0dc7612c93b8e6fba60562d4732a73394c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "name": "_extract_text_content",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L282-L295",
      "signature": "def _extract_text_content(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "89c475783c8a840f01d7526cd129d7bb16a431ab2f451924fe0f22f0bd6c0306",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "name": "_generate_detailed_diff",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L151-L179",
      "signature": "def _generate_detailed_diff(self, original_text, modified_text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4bc4c877f2b68152454666500509ae50fcbb5fcbe99b83ca56a1edb1bef6fce9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "name": "_get_git_word_diff",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L181-L250",
      "signature": "def _get_git_word_diff(self, original_text, modified_text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "616940f2bd2f517d29622b2e89f2757a5810ef29025be69acbbbf0f5183b14e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "name": "_new_tracked_changes",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L112-L149",
      "signature": "def _new_tracked_changes(self, original_root, modified_root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2e2ee2240e1573deafcfb4992ab2cdcb7584a64f1d511353fc9bc1ee6db24c00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "name": "group",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L128-L129",
      "signature": "def group(elem)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d78eb74cbbe5a6c5c7d6e5f527892f74e8c0929dc2ba759e0cf25b8bd22d729",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "name": "text_of",
      "kind": "function",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L131-L132",
      "signature": "def text_of(elems)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a33d0814e14879d0b0ea2203e7cb513d2b5382080ee71da2f36ff04856ef22e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "name": "_remove_tracked_changes",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L252-L280",
      "signature": "def _remove_tracked_changes(self, root, targets)",
      "exported": false,
      "origin": "ast",
      "body_hash": "141ddc90975c713b0c38b5d3bfeb8b4c9681c0bea03797de9877ac2946c980b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "name": "_rendered_text",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L95-L97",
      "signature": "def _rendered_text(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "67c9bb3952fe1e3b700176d43cdeb78529a3bd869c9973f0564bfa71fcc9edd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "name": "_text_elements",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L99-L105",
      "signature": "def _text_elements(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3e40f9e1833830223485f31a30f4009ec60a91794b1b084b97e41b3c04cbd393",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "name": "_tracked_change_elements",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L90-L93",
      "signature": "def _tracked_change_elements(self, root)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2c56a56bdb8346ea56c721753bbe7bcef1be707cd5e8da8190f97edd24290616",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "name": "_tracked_change_key",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L107-L110",
      "signature": "def _tracked_change_key(self, elem)",
      "exported": false,
      "origin": "ast",
      "body_hash": "6dd26b7fcff436f7315902cdbed4a05220f7789ea53e01a7cbc852d4624d30b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.repair",
      "name": "repair",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L35-L36",
      "signature": "def repair(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "59e5e12a57bac0aa730fc580572f6eabb63e2ee00625a464064ca1c4e43c53a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "name": "validate",
      "kind": "method",
      "path": "skills/xlsx/scripts/office/validators/redlining.py",
      "span": "L38-L88",
      "signature": "def validate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ca98ad6e1c370de12384af435949785055a991ee1ff1855da2b0366e42eb0df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedliningValidator"
    },
    {
      "id": "skills/xlsx/scripts/recalc.py",
      "name": "recalc.py",
      "kind": "file",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L1-L309",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "66f6e726d5a53cfabea0b6471d6669deb95e54e96cb7913b687e4388da1bb3d9",
      "chars": 10670,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#_recalc_with_profile",
      "name": "_recalc_with_profile",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L164-L279",
      "signature": "def _recalc_with_profile(filename, abs_path, timeout, profile_dir: Path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e731beef694df94df2d5551afc76dd54d622d0609e8f5af16eb36107893539bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#_stamp",
      "name": "_stamp",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L51-L53",
      "signature": "def _stamp(path)",
      "exported": false,
      "origin": "ast",
      "body_hash": "2f124bc0065bb1ba9bdf0c0c270ff8bc47124e8d7e09bc1f8433221e07f67f39",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#external_links_at_risk",
      "name": "external_links_at_risk",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L81-L121",
      "signature": "def external_links_at_risk(filename)",
      "exported": true,
      "origin": "ast",
      "body_hash": "206d39dd8c11d9c21857e3ef4ca52715d07cc3b5a6132ab9315bd7a1792a09df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#has_gtimeout",
      "name": "has_gtimeout",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L41-L48",
      "signature": "def has_gtimeout()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d8bf06c55824acee1ccb49f4d4f655212eae7d8050915bc2c6006a24b329e66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#main",
      "name": "main",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L282-L304",
      "signature": "def main()",
      "exported": true,
      "origin": "ast",
      "body_hash": "405def70725a9812e09f6c86ea008224b9533039fdef92015861fbca86eb065e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#recalc",
      "name": "recalc",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L124-L161",
      "signature": "def recalc(filename, timeout=30, force=False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c73e51057ed54d39f2187220d05e68c567bb49b7bd23ca8f28dd5784925ef59d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "skills/xlsx/scripts/recalc.py#setup_libreoffice_macro",
      "name": "setup_libreoffice_macro",
      "kind": "function",
      "path": "skills/xlsx/scripts/recalc.py",
      "span": "L56-L78",
      "signature": "def setup_libreoffice_macro(profile_dir: Path, timeout=30)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6558418f7bc6b5fe4337725fe5cbe80f8378e1a028c72202efe303923f7d5ef0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/__init__.py",
      "name": "__init__.py",
      "kind": "file",
      "path": "tests/_contract/__init__.py",
      "span": "L1-L39",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f2e1909e665678424340564dd8c8c57fb5c736a0345b18fd9048e67baea9fd2c",
      "chars": 1365,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py",
      "name": "cli.py",
      "kind": "file",
      "path": "tests/_contract/cli.py",
      "span": "L1-L212",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "43966de90c3cd0e897c8c254e6556309fcdd2425cd9fc4cb55ff94aeb386bc12",
      "chars": 8558,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#_missing_dependency",
      "name": "_missing_dependency",
      "kind": "function",
      "path": "tests/_contract/cli.py",
      "span": "L77-L99",
      "signature": "def _missing_dependency(output: str) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "fef725bad676afe69ea20cd780d2017b26761b70e778197b6fb96d381dbdbf47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#cli_scripts",
      "name": "cli_scripts",
      "kind": "function",
      "path": "tests/_contract/cli.py",
      "span": "L30-L51",
      "signature": "def cli_scripts(skill_root: Path) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9dea0315a9bbc6311a67fed636edbaafa56db06dfe8f0da0b50fe1c8c7b235d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#demo_test_case",
      "name": "demo_test_case",
      "kind": "function",
      "path": "tests/_contract/cli.py",
      "span": "L158-L211",
      "signature": "def demo_test_case( skill_root: Path, scripts: tuple[str, ...], *, timeout: int = DEFAULT_TIMEOUT, ) -> type[unittest.TestCase]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b25d928d5cfca379145453e35f0c5770ba743de9f3a11b975859dcc0f4ce969",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#demo_test_case.DemoBlockTests",
      "name": "DemoBlockTests",
      "kind": "class",
      "path": "tests/_contract/cli.py",
      "span": "L174-L208",
      "signature": "class DemoBlockTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d161c4ba84c56cbc7eaff24574e3a74ba6814ca1b2b223a8f88af97ab44864f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#demo_test_case.DemoBlockTests.test_every_demo_block_runs_clean",
      "name": "test_every_demo_block_runs_clean",
      "kind": "method",
      "path": "tests/_contract/cli.py",
      "span": "L177-L208",
      "signature": "def test_every_demo_block_runs_clean(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a53d8ba9f2e2ebd1a5056c2d86cd3485f851403c4e75cbe9d204eca04227362",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DemoBlockTests"
    },
    {
      "id": "tests/_contract/cli.py#help_test_case",
      "name": "help_test_case",
      "kind": "function",
      "path": "tests/_contract/cli.py",
      "span": "L102-L155",
      "signature": "def help_test_case( skill_root: Path, *, skip: frozenset[str] | set[str] | tuple[str, ...] = (), timeout: int = DEFAULT_TIMEOUT, ) -> type[unittest.TestCase]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb08aef6da78af496a02392eb7a2e32058c5c53844a28317279276686be885be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#help_test_case.CliHelpContractTests",
      "name": "CliHelpContractTests",
      "kind": "class",
      "path": "tests/_contract/cli.py",
      "span": "L115-L152",
      "signature": "class CliHelpContractTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c225c67b81721ba7b0a8390d2fd0ac8bed02129bf716be3779a74eb845f22c49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/cli.py#help_test_case.CliHelpContractTests.test_every_cli_answers_help",
      "name": "test_every_cli_answers_help",
      "kind": "method",
      "path": "tests/_contract/cli.py",
      "span": "L118-L152",
      "signature": "def test_every_cli_answers_help(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a1bf9eb66db35d580005c1eb6897c270d608f019fd7e3d9a40ac1cfbc7609e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliHelpContractTests"
    },
    {
      "id": "tests/_contract/cli.py#run_help",
      "name": "run_help",
      "kind": "function",
      "path": "tests/_contract/cli.py",
      "span": "L54-L63",
      "signature": "def run_help(script: Path, timeout: int = DEFAULT_TIMEOUT) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "26a623d2356a5cc582a426e0620eb54f376209a812f57189e94a8c22cfb66e9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py",
      "name": "office.py",
      "kind": "file",
      "path": "tests/_contract/office.py",
      "span": "L1-L295",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "86eed8c7630000902b6440db8b9aa36522782967f07f71e3b242221f7b4c7edd",
      "chars": 12671,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py#_tree_digest",
      "name": "_tree_digest",
      "kind": "function",
      "path": "tests/_contract/office.py",
      "span": "L78-L86",
      "signature": "def _tree_digest(office_dir: Path) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "475dc83bf6b0f16ff3710ecb4a9c9d0929a6f59c63e7593e52e1cf351b325582",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py#identical_tree_problems",
      "name": "identical_tree_problems",
      "kind": "function",
      "path": "tests/_contract/office.py",
      "span": "L89-L104",
      "signature": "def identical_tree_problems(skills_dir: Path = SKILLS_DIR) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "82a1a1aab730d1b4720ae7802ee27731dc368d6d2f9dd364c1d99fb612a5135f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py#office_test_case",
      "name": "office_test_case",
      "kind": "function",
      "path": "tests/_contract/office.py",
      "span": "L107-L294",
      "signature": "def office_test_case(skill_root: Path) -> type[unittest.TestCase]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c037847bb4011105dc5dc6beb20cc6f87668ae10a55f10dad58b7347aca3e857",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py#office_test_case.load_helpers",
      "name": "load_helpers",
      "kind": "function",
      "path": "tests/_contract/office.py",
      "span": "L111-L117",
      "signature": "def load_helpers(): # `office/` puts `helpers` and `validators` at the top level -- see the # `from helpers import ...` in validate.py -- so office/ itself goes on # the path. Safe because this repo runs one skill per process.",
      "exported": true,
      "origin": "ast",
      "body_hash": "02dea8235c37ab4808b2ce4ef958762db0da3bcdc7f2403b0ac445648c8de13d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "name": "OfficeSharedTreeTests",
      "kind": "class",
      "path": "tests/_contract/office.py",
      "span": "L119-L291",
      "signature": "class OfficeSharedTreeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "db077ecfe81c63f166cd19ac23925a428312a685e0a9d93bb6937aaf25679ee6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L122-L123",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "050453fed17d40fdfa21a32497c51f1e276ece6b3fdaba8e5942984a880d774a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_a_dot_target_resolves_to_its_own_directory",
      "name": "test_a_dot_target_resolves_to_its_own_directory",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L213-L217",
      "signature": "def test_a_dot_target_resolves_to_its_own_directory(self) -> None: # normpath collapses it rather than treating it as an error.",
      "exported": true,
      "origin": "ast",
      "body_hash": "95e218e1bcdac6b5116f205b7ca59f14bee1fd48e31e5fcf034ac03def9fb216",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_every_validator_schema_path_exists",
      "name": "test_every_validator_schema_path_exists",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L277-L291",
      "signature": "def test_every_validator_schema_path_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c14ca061c97f40758c7a405767ba0849c000f36c29d31253deaebcc071abb951",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_ooxml_family_covers_this_skill",
      "name": "test_ooxml_family_covers_this_skill",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L272-L275",
      "signature": "def test_ooxml_family_covers_this_skill(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7f802892c4ec6249fc40cc842af037d4bc9ae52441515869d237ee2761bd806",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_opc_target_ignores_external_and_scheme_targets",
      "name": "test_opc_target_ignores_external_and_scheme_targets",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L195-L201",
      "signature": "def test_opc_target_ignores_external_and_scheme_targets(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7848df8f79c5d571d1d53b1202e5d0851e1569857302f30af9ee15663eba1cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_opc_target_refuses_targets_that_escape_the_package",
      "name": "test_opc_target_refuses_targets_that_escape_the_package",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L203-L211",
      "signature": "def test_opc_target_refuses_targets_that_escape_the_package(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46afa6f49301eed9dea2e331ddb8a93be2cdbaa3f14c0f1aac4ea3922a4a23b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_opc_target_resolves_relative_and_absolute_part_names",
      "name": "test_opc_target_resolves_relative_and_absolute_part_names",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L176-L193",
      "signature": "def test_opc_target_resolves_relative_and_absolute_part_names(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0006497fad3ecd5319bd05bee99f3fa9c32b13edb2f040811ac1c38470282a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_part_text_survives_undecodable_bytes",
      "name": "test_part_text_survives_undecodable_bytes",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L227-L231",
      "signature": "def test_part_text_survives_undecodable_bytes(self) -> None: # surrogateescape, not a crash: a corrupt part must still be # reportable rather than taking the whole validation run down.",
      "exported": true,
      "origin": "ast",
      "body_hash": "be38c38e435f58c18270c6097e37f30a5a547869f05ec938badc3abc8dccbeb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_rendered_text_honours_xml_space_preserve",
      "name": "test_rendered_text_honours_xml_space_preserve",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L221-L225",
      "signature": "def test_rendered_text_honours_xml_space_preserve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d12211f0aabc76103b60ef6e7bca72988326f4996cb29614c3b911360ea13466",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_rezip_leaves_no_temporary_file_behind",
      "name": "test_rezip_leaves_no_temporary_file_behind",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L256-L268",
      "signature": "def test_rezip_leaves_no_temporary_file_behind(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac9d500446ae9a1f26b35843f3763c64617ee8ae088bc0a0c889c34dcc3e6a2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_rezip_stores_content_types_first_and_uncompressed",
      "name": "test_rezip_stores_content_types_first_and_uncompressed",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L235-L254",
      "signature": "def test_rezip_stores_content_types_first_and_uncompressed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2837f96336726390a9dcc8084666b2dc1a3a4d3a4a0110080bcd94ea3625f13d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_safe_extract_refuses_a_symlink_entry",
      "name": "test_safe_extract_refuses_a_symlink_entry",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L159-L172",
      "signature": "def test_safe_extract_refuses_a_symlink_entry(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "219c0e7ae8f0000de044e3d731cb93df408ebee789d8113ed9656d6cc7fc0617",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_safe_extract_refuses_a_traversal_entry",
      "name": "test_safe_extract_refuses_a_traversal_entry",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L145-L157",
      "signature": "def test_safe_extract_refuses_a_traversal_entry(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "101788ad805691baa414386e80c3215ef5393c4b6dfa92ab851b57c606b836b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_safe_extract_unpacks_an_ordinary_package",
      "name": "test_safe_extract_unpacks_an_ordinary_package",
      "kind": "method",
      "path": "tests/_contract/office.py",
      "span": "L127-L143",
      "signature": "def test_safe_extract_unpacks_an_ordinary_package(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cabd614cfbf6f4b74c87b86887be9e7e04922b837753d35cafa1b8daa5cc03e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OfficeSharedTreeTests"
    },
    {
      "id": "tests/_contract/office.py#shared_file_problems",
      "name": "shared_file_problems",
      "kind": "function",
      "path": "tests/_contract/office.py",
      "span": "L57-L75",
      "signature": "def shared_file_problems(skills_dir: Path = SKILLS_DIR) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0fcf65e1a20ceee0fb5ce88074d0ae9c2322b458066df88b90e81c43394b7bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py",
      "name": "schematic.py",
      "kind": "file",
      "path": "tests/_contract/schematic.py",
      "span": "L1-L285",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1c6020587ce59d4f69fc708521a40f993eb1eab69d08513db2b1aed9aeff3565",
      "chars": 12705,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case",
      "name": "review_failure_test_case",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L221-L284",
      "signature": "def review_failure_test_case( scripts_dir: Path, module_name: str, class_name: str, review_args: tuple ) -> type[unittest.TestCase]",
      "exported": true,
      "origin": "ast",
      "body_hash": "02332c017adde9232bf04950f1f903d714b74fc247736e65d64e5ffaeb87835c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.load",
      "name": "load",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L233-L236",
      "signature": "def load()",
      "exported": true,
      "origin": "ast",
      "body_hash": "5135728bb8d14dc7ea04eccc0b52501227ccad8d3d3c82cb41afda2f104f6669",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests",
      "name": "ReviewFailureTests",
      "kind": "class",
      "path": "tests/_contract/schematic.py",
      "span": "L239-L281",
      "signature": "class ReviewFailureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd353d4b8301e94ae159fdbd74ac561307820a7747af243b848512729bfac47b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L242-L246",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae52d2a9b162b097d76acbfee2634d1bbf2d929d3122746094f49e9424a12d5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewFailureTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_failed_review_is_not_reported_as_a_passing_one",
      "name": "test_a_failed_review_is_not_reported_as_a_passing_one",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L259-L271",
      "signature": "def test_a_failed_review_is_not_reported_as_a_passing_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bd26fa426325e5041367496fa081f3449945cd7cfaa73a1a10c7e9d482d896a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewFailureTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_failed_review_is_not_reported_as_a_passing_one.explode",
      "name": "explode",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L260-L261",
      "signature": "def explode(**kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b8a0b1207007b47773fd9a6b140ee46f43779d2816b8ba0c6d7fc5cd66103bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_response_with_no_choices_does_not_crash_the_run",
      "name": "test_a_response_with_no_choices_does_not_crash_the_run",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L248-L257",
      "signature": "def test_a_response_with_no_choices_does_not_crash_the_run(self) -> None: # This used to return two values into a three-value unpack, so a # rate-limited review killed a run whose image was already on disk.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8136b921d26cf0df4306edfea543bd0c992916f5c4f277640cb80db417c9d5d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewFailureTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_scored_review_is_reported_verbatim",
      "name": "test_a_scored_review_is_reported_verbatim",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L273-L281",
      "signature": "def test_a_scored_review_is_reported_verbatim(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "307c57d6991c1929a83e2047507f89dd0aedbcbd04f33e465809eba8ed1c8b33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewFailureTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case",
      "name": "review_parsing_test_case",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L137-L218",
      "signature": "def review_parsing_test_case(scripts_dir: Path, module_name: str) -> type[unittest.TestCase]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f22130182a3f613b79c0d989bea2ad2ca6d15ff297274a77e70925b1b6a8a1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.load",
      "name": "load",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L151-L154",
      "signature": "def load()",
      "exported": true,
      "origin": "ast",
      "body_hash": "5135728bb8d14dc7ea04eccc0b52501227ccad8d3d3c82cb41afda2f104f6669",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "name": "ReviewParsingTests",
      "kind": "class",
      "path": "tests/_contract/schematic.py",
      "span": "L157-L215",
      "signature": "class ReviewParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "85cb63c485406ce89549acdd6b778e33090bae0051fe0777b1fa9f0caa459753",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L160-L161",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b30f8b5751140536bf327cc6261f80e99701bb96812f6acc14694c37530e3f62",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewParsingTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_a_real_failing_verdict_is_still_recognised",
      "name": "test_a_real_failing_verdict_is_still_recognised",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L200-L209",
      "signature": "def test_a_real_failing_verdict_is_still_recognised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33f154197a423df0018c3143821ed881faad6f5d59f50f8656397297523c7f3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewParsingTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_an_unparseable_score_is_none_rather_than_a_stand_in",
      "name": "test_an_unparseable_score_is_none_rather_than_a_stand_in",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L179-L184",
      "signature": "def test_an_unparseable_score_is_none_rather_than_a_stand_in(self) -> None: # A default here reaches the review log indistinguishable from a # number the reviewer actually gave.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bd68da7f0380d94d623f1d5569b37684e82555ebb6b5effca09d3723ec9686b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewParsingTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_the_review_result_carries_whether_the_review_happened",
      "name": "test_the_review_result_carries_whether_the_review_happened",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L211-L215",
      "signature": "def test_the_review_result_carries_whether_the_review_happened(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "87d01d02f486b079060adc014ada8045fe8e718b0e60c0be44704d593184ce65",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewParsingTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_the_score_survives_the_markdown_the_reviewer_writes_it_in",
      "name": "test_the_score_survives_the_markdown_the_reviewer_writes_it_in",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L163-L177",
      "signature": "def test_the_score_survives_the_markdown_the_reviewer_writes_it_in(self) -> None: # Gemini emits \"**SCORE:** 8.5\" far more often than the bare form # the rubric asks for. A pattern that only matched the bare form # scored every one of those runs at the old hardcoded default.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d1f6ef7acf7cefa5174e6e197162c25864b8f92d61902ca5ab50c9c54824eae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewParsingTests"
    },
    {
      "id": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_the_verdict_comes_from_the_verdict_line_only",
      "name": "test_the_verdict_comes_from_the_verdict_line_only",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L186-L198",
      "signature": "def test_the_verdict_comes_from_the_verdict_line_only(self) -> None: # The rubric prompt spells out both tokens when it explains the # response format. A reviewer echoing that back must not be read # as failing the diagram.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7d7ca7eccd794eaa82f6642da721e6baca6eb93f8abf60ca9d22f781afefe16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewParsingTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case",
      "name": "schematic_test_case",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L40-L134",
      "signature": "def schematic_test_case(skill_root: Path) -> type[unittest.TestCase]",
      "exported": true,
      "origin": "ast",
      "body_hash": "793f7440f8dbbb45630118617dd3dcd363b9fce0fb3b86ecb6aeaa54c7da0700",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.load",
      "name": "load",
      "kind": "function",
      "path": "tests/_contract/schematic.py",
      "span": "L44-L47",
      "signature": "def load()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1829dffe11a3124d2f06612e8ef51d6b60598ada7a016bb9b5196340c8125a64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "name": "SchematicContractTests",
      "kind": "class",
      "path": "tests/_contract/schematic.py",
      "span": "L49-L131",
      "signature": "class SchematicContractTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cef82c4bae6c720cac4d1804b5cea7c7bdf34763c417c0f32c3ef4192e3cd6f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L52-L53",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b30f8b5751140536bf327cc6261f80e99701bb96812f6acc14694c37530e3f62",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_absent_variables_are_omitted_not_blanked",
      "name": "test_absent_variables_are_omitted_not_blanked",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L85-L88",
      "signature": "def test_absent_variables_are_omitted_not_blanked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1278c5441e3a4786e41bdad723df875bd71be64f887a13f77640e30ab84964e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_no_key_means_no_key_variable_rather_than_an_empty_one",
      "name": "test_no_key_means_no_key_variable_rather_than_an_empty_one",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L75-L83",
      "signature": "def test_no_key_means_no_key_variable_rather_than_an_empty_one(self) -> None: # An empty OPENROUTER_API_KEY would look configured to the child and # fail deep inside the request instead of at the boundary.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe7ac32ef8b349f2a630b31ad783bea2f69710a0efa783510b24e92b68cc1b85",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_only_allowlisted_variables_reach_the_subprocess",
      "name": "test_only_allowlisted_variables_reach_the_subprocess",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L55-L68",
      "signature": "def test_only_allowlisted_variables_reach_the_subprocess(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eba73b20c8f68079f10617150a65aa62746ff9082b91173064a10507d354027d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_allowlist_carries_no_credential_variables",
      "name": "test_the_allowlist_carries_no_credential_variables",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L103-L107",
      "signature": "def test_the_allowlist_carries_no_credential_variables(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dbbaacfcbb6222ff56d6f76bb7ba895b37895c2530a48cc3e02b6932f38f57d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_allowlist_covers_proxies_tls_and_windows_startup",
      "name": "test_the_allowlist_covers_proxies_tls_and_windows_startup",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L90-L101",
      "signature": "def test_the_allowlist_covers_proxies_tls_and_windows_startup(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3337b770b54df570057ad9cffa980e3c1f68ea677a50e89e266074e5ffa45612",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_allowlist_has_no_duplicates",
      "name": "test_the_allowlist_has_no_duplicates",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L109-L111",
      "signature": "def test_the_allowlist_has_no_duplicates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a37e829dd1139bdd07fbb8b604aff7832949f0de7ade27f43048d9db6c289682",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_api_key_is_injected_under_the_expected_name",
      "name": "test_the_api_key_is_injected_under_the_expected_name",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L70-L73",
      "signature": "def test_the_api_key_is_injected_under_the_expected_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "73ef602de94485693df83bb0aa9bb565b4ed43a79b93a5d22a75d2223b82a2a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_generator_script_is_shipped_alongside_the_cli",
      "name": "test_the_generator_script_is_shipped_alongside_the_cli",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L113-L114",
      "signature": "def test_the_generator_script_is_shipped_alongside_the_cli(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e1f75374fc2ab189018c85614541d24177224e18fbfbfc223b6afd52ea6c188",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_iteration_count_is_rejected_rather_than_clamped",
      "name": "test_the_iteration_count_is_rejected_rather_than_clamped",
      "kind": "method",
      "path": "tests/_contract/schematic.py",
      "span": "L116-L131",
      "signature": "def test_the_iteration_count_is_rejected_rather_than_clamped(self) -> None: # Silently clamping an out-of-range value used to send 0 to the # child, which failed there with a message about the child's own # flag. The check runs before the credential lookup, so this needs # no API key.",
      "exported": true,
      "origin": "ast",
      "body_hash": "414d4b2d05a472928dec90574fac21449106ac55c5d5c5d951816eb05cb3d964",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchematicContractTests"
    },
    {
      "id": "tests/_contract/structure.py",
      "name": "structure.py",
      "kind": "file",
      "path": "tests/_contract/structure.py",
      "span": "L1-L482",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c57362433e9483744181772c989af06cb44e82d301d124a060c8b2d826d68af9",
      "chars": 18471,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#_frontmatter",
      "name": "_frontmatter",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L115-L123",
      "signature": "def _frontmatter(skill: Path) -> str | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d803870e66e3f0ce04650df9195ea3c75ccb179bc7e32f22428d85a2d960397e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#_metadata_scalars",
      "name": "_metadata_scalars",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L136-L155",
      "signature": "def _metadata_scalars(frontmatter: str) -> list[tuple[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f954a199f7e894e8f8b52e67cd22dc88446d00febd44e51bc4da8fb2f8ad58ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#_script_paths",
      "name": "_script_paths",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L337-L338",
      "signature": "def _script_paths(skill: Path, suffix: str = \".py\") -> list[Path]",
      "exported": false,
      "origin": "ast",
      "body_hash": "8e2bba76ef68433b17e959ad004788e0a299b5763227d6778122e9d35cf9e4f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#_top_level_entries",
      "name": "_top_level_entries",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L126-L133",
      "signature": "def _top_level_entries(frontmatter: str) -> list[tuple[str, str]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a753ff425d28a0c99a7ca36695ba3be786df085f0c80d6eb66d71015a019140d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#_tracked_files",
      "name": "_tracked_files",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L244-L258",
      "signature": "def _tracked_files(skills_dir: Path = SKILLS_DIR) -> frozenset[str] | None",
      "exported": false,
      "origin": "ast",
      "body_hash": "f4d53b144887843016709a9f2f2574ccddeea7cbf0a93a1c8ad849a1cb1d94f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#all_skill_names",
      "name": "all_skill_names",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L93-L98",
      "signature": "def all_skill_names(skills_dir: Path = SKILLS_DIR) -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdfba896445c1fd7644421384411a11f5c5c0c632fcb013bbe5262faca5eb221",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#bytecode_problems",
      "name": "bytecode_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L261-L286",
      "signature": "def bytecode_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "058b5272aab6301f4ab068ee71b881b70f7c22c13610758b6c20c04bc451ba7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#compile_problems",
      "name": "compile_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L341-L352",
      "signature": "def compile_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "670e9755743d226f6a7c21d4093db3f5ecddf5e4505f5f5052a9ea1ff0a99c4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#documented_skills",
      "name": "documented_skills",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L101-L112",
      "signature": "def documented_skills(skills_dir: Path = SKILLS_DIR) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "574532eea4a15d518d5d3a6da8e063bd21eb72230f56417ecadc2d9fe79b0ef5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#dynamic_execution_problems",
      "name": "dynamic_execution_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L355-L387",
      "signature": "def dynamic_execution_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3d6befceba17b4d53323368e1ebfe4e241ee3458f68ffcf8f263f43dc46103f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#frontmatter_problems",
      "name": "frontmatter_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L158-L215",
      "signature": "def frontmatter_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c97543598ed32cb5b6a4087cb16b0949cf23da5167d03c3ca536e7d1571f2fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#length_problems",
      "name": "length_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L218-L226",
      "signature": "def length_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7890bde6a5e3582cefab6b0d64ec7c016d8bc44c46ba9beace2af4ca48758e6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#link_problems",
      "name": "link_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L289-L334",
      "signature": "def link_problems(skill: Path, known_skills: Iterable[str] | None = None) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2943e89c21247a72f0a554c4cb99ca48bb7782be479941dce22cb049531993b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#personal_path_problems",
      "name": "personal_path_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L405-L432",
      "signature": "def personal_path_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ba5a0fa5dadf5ebf2f59984969c28197df8676ac8c09573a14a217eb62f17d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#script_bearing_skills",
      "name": "script_bearing_skills",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L77-L90",
      "signature": "def script_bearing_skills(skills_dir: Path = SKILLS_DIR) -> list[Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a46e659bccc44d286028dc40339aca6358cbe844af34ef1c8e963f1a0dbffd94",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#shadow_module_problems",
      "name": "shadow_module_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L390-L402",
      "signature": "def shadow_module_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cb95658b8cd72f6935a68a1bd6254341363caaa93de5f31e69a2273d1bb27f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#shell_script_problems",
      "name": "shell_script_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L435-L452",
      "signature": "def shell_script_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c64839d53f51a67e4293a9994903237352fa74bf4b4819524018bc72c6c9663e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_contract/structure.py#stray_test_problems",
      "name": "stray_test_problems",
      "kind": "function",
      "path": "tests/_contract/structure.py",
      "span": "L229-L240",
      "signature": "def stray_test_problems(skill: Path) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "93902f855354e5171b63ec715e28aebe10c7e9ed1cabeccf236b5861febe76b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py",
      "name": "test_repo_contract.py",
      "kind": "file",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L1-L190",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a43ec44582c7d96b92a8e9db42abadeca4f547548eb074bed1664e54bd753382",
      "chars": 6960,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py#_suite_names",
      "name": "_suite_names",
      "kind": "function",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L58-L64",
      "signature": "def _suite_names() -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f20a00b3638469f3430c523422ca00af01aedba5358ffcbfd42a840a3c6eb730",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py#AgentPluginTests",
      "name": "AgentPluginTests",
      "kind": "class",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L153-L185",
      "signature": "class AgentPluginTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "193c2788b412f9ba82b1726ce8d8b45e44d8b9a59f0b86d29734ff43f04d5981",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py#AgentPluginTests.test_plugin_manifest_conforms",
      "name": "test_plugin_manifest_conforms",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L158-L175",
      "signature": "def test_plugin_manifest_conforms(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2da2594e1b5a832d12479dfa0d339dd26f58b5617fb587aea3470c28a7599545",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AgentPluginTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#AgentPluginTests.test_skills_component_is_discoverable",
      "name": "test_skills_component_is_discoverable",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L177-L185",
      "signature": "def test_skills_component_is_discoverable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7077a9dfc6637037e89810bdb08ff56a467b5645b5a0606f2b25eb2d03d36bc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AgentPluginTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#CoverageTests",
      "name": "CoverageTests",
      "kind": "class",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L67-L115",
      "signature": "class CoverageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3de907a947587ad74241afc2793307867d0daff417b4f25217700c5338beb405",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_skill_with_scripts_has_a_requirements_entry",
      "name": "test_every_skill_with_scripts_has_a_requirements_entry",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L98-L110",
      "signature": "def test_every_skill_with_scripts_has_a_requirements_entry(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3397ea74d1fcaed0c15345368d557c66abb15cbfd5ddcf9c19ae21c85e8bd787",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_skill_with_scripts_has_a_test_suite",
      "name": "test_every_skill_with_scripts_has_a_test_suite",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L72-L82",
      "signature": "def test_every_skill_with_scripts_has_a_test_suite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46ea29ef6b479c63853f646037d33b6cdc26ca7eac529509531d43e3a797f20f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_suite_has_a_test_file",
      "name": "test_every_suite_has_a_test_file",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L84-L90",
      "signature": "def test_every_suite_has_a_test_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46dccc496e2d76b1a9d4ed3e6786241e73f9fff40ece795c8e3d9218530cd798",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#CoverageTests.test_no_test_suite_is_orphaned",
      "name": "test_no_test_suite_is_orphaned",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L92-L96",
      "signature": "def test_no_test_suite_is_orphaned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9f820945b0430126e9a3df5dd33bc3723fdf08e885bf89af265dbae28ee425c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#CoverageTests.test_requirements_entries_name_real_skills",
      "name": "test_requirements_entries_name_real_skills",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L112-L115",
      "signature": "def test_requirements_entries_name_real_skills(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "70b1b2a70ebb661e32cf2d557729fcee43a49263f81a9e4c994404cb99af8993",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#SharedCopyTests",
      "name": "SharedCopyTests",
      "kind": "class",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L141-L150",
      "signature": "class SharedCopyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91f9c01dec099817836b07ac045811a528dc30a224fc001c37f596d434f015c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py#SharedCopyTests.test_docx_pptx_xlsx_ship_the_same_office_tree",
      "name": "test_docx_pptx_xlsx_ship_the_same_office_tree",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L146-L147",
      "signature": "def test_docx_pptx_xlsx_ship_the_same_office_tree(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4a252f7ed95c70d12b54ac99c18aad9de5fd6821d5b1d620de58858befeea22",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SharedCopyTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#SharedCopyTests.test_shared_scripts_are_identical_across_their_skills",
      "name": "test_shared_scripts_are_identical_across_their_skills",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L149-L150",
      "signature": "def test_shared_scripts_are_identical_across_their_skills(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "487881f6ea1d44e9300a51b5a1c888ab9976a9714eaa0c18b0bbb0b85c10d280",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SharedCopyTests"
    },
    {
      "id": "tests/_meta/test_repo_contract.py#StructuralContractTests",
      "name": "StructuralContractTests",
      "kind": "class",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L118-L138",
      "signature": "class StructuralContractTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "88d8ab09063cc9286a7180a8898c4a6815f813b244e0fe6334e9c1b8034fec80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/_meta/test_repo_contract.py#StructuralContractTests.test_all_skills_satisfy_every_structural_rule",
      "name": "test_all_skills_satisfy_every_structural_rule",
      "kind": "method",
      "path": "tests/_meta/test_repo_contract.py",
      "span": "L123-L138",
      "signature": "def test_all_skills_satisfy_every_structural_rule(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "847619f89e0cc4484fd868d773a61e82dde31a3de2d3ca173dde61eb6107ec01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralContractTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L1-L636",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8a86273ab8517b09a61666d9ebb3d1562039586b192973ad4e9e126885e62df5",
      "chars": 29393,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#_avi_adata",
      "name": "_avi_adata",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L392-L398",
      "signature": "def _avi_adata(variants, raws, cdfs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e99d7a09bc70f5fbc136de6d93e60dcdc9cda8c4af22671e2a958194066e07d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#_fi_adata",
      "name": "_fi_adata",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L400-L407",
      "signature": "def _fi_adata(variants, top_index)",
      "exported": false,
      "origin": "ast",
      "body_hash": "75751dd2a599fbaffaff55ac79db417bfe03ab96fe15dd5f9070a1c02a40f625",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#_load_script",
      "name": "_load_script",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L35-L41",
      "signature": "def _load_script(name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c2ad0873195c70276ab3091a3acd0eef8b40ed7dc0ea048102e5a7f6a53a99c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#_rna_adata",
      "name": "_rna_adata",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L420-L429",
      "signature": "def _rna_adata(variant)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e74862141cdc689566659a012e3a039a65568d792c255ac2ab06675e4e503c82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#_variant",
      "name": "_variant",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L389-L390",
      "signature": "def _variant(text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "77c2a927bd8d213556eab038842c1bf446bad4517fe733ec62896400b8714c30",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ApiKeyTests",
      "name": "ApiKeyTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L255-L275",
      "signature": "class ApiKeyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb3f1d8f19026f93e6896ff923798ee6ac1d8428f0021234fc2a247d82f274db",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_explicit_variable_name",
      "name": "test_explicit_variable_name",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L262-L264",
      "signature": "def test_explicit_variable_name(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e85221bec80fcbd42fe471e0fd5e1de053ebae05f44397ac088fcf6d4367405",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_missing_key_exits_with_signup_url",
      "name": "test_missing_key_exits_with_signup_url",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L266-L269",
      "signature": "def test_missing_key_exits_with_signup_url(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff253aa90e4a7e0a1085757278463464ee9080a1b7bd2d841ae8128580d7d0c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_portal_url_encodes_the_allele_separator",
      "name": "test_portal_url_encodes_the_allele_separator",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L271-L275",
      "signature": "def test_portal_url_encodes_the_allele_separator(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bb647a9ec786e4d97266bb2e859a1a894b02e7b78da6682dc071b82b155e782",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_primary_then_fallback_spelling",
      "name": "test_primary_then_fallback_spelling",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L256-L260",
      "signature": "def test_primary_then_fallback_spelling(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bdd851f47ca71b3e21a4abe22515b29111aa4b3a8934764ef48b443adad28ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasConversionTests",
      "name": "AtlasConversionTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L475-L522",
      "signature": "class AtlasConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8798bc5696b71ba7ae0d4df11f472af60735631bc963acf8e3ff2c588690f80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_max_abs_track_and_metadata_rows",
      "name": "test_max_abs_track_and_metadata_rows",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L510-L522",
      "signature": "def test_max_abs_track_and_metadata_rows(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0c826706dbf9201b4790c013ed2b9172769aa422b559a6c593f45a269d906fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasConversionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_computes_phred_and_top_feature",
      "name": "test_summarize_avi_computes_phred_and_top_feature",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L476-L488",
      "signature": "def test_summarize_avi_computes_phred_and_top_feature(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "007590cb827028c68afee3ac50ac25ab6d4b622ae330cc9b06e41a47545ba9ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasConversionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_without_attributions_or_quantiles",
      "name": "test_summarize_avi_without_attributions_or_quantiles",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L490-L497",
      "signature": "def test_summarize_avi_without_attributions_or_quantiles(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6388b07fd1be30c62670661ec89f908c1a3129bec9f70075c6f132e7acf8ff35",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasConversionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_tidy_atlas_scores_is_one_row_per_gene_track",
      "name": "test_tidy_atlas_scores_is_one_row_per_gene_track",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L499-L508",
      "signature": "def test_tidy_atlas_scores_is_one_row_per_gene_track(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1cc906a9fd5910a9317e1c8042391938366834e3cf6fc0bce64b9d6fd7a89fa5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasConversionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "name": "AtlasLinkTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L283-L327",
      "signature": "class AtlasLinkTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f617a4446ef0374ab410eb304a5fb47464104de6ce382502844eba97427abde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_cli_prints_url_or_markdown_and_rejects_rsids",
      "name": "test_cli_prints_url_or_markdown_and_rejects_rsids",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L318-L327",
      "signature": "def test_cli_prints_url_or_markdown_and_rejects_rsids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "25c3e7d751f32daab280037e38ee1f573d3061fae88172825a2e7cf918bdc5e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasLinkTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_gene_uses_entity_mode_and_motifs_take_zoom",
      "name": "test_gene_uses_entity_mode_and_motifs_take_zoom",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L296-L301",
      "signature": "def test_gene_uses_entity_mode_and_motifs_take_zoom(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e183a0c8ed5e10ea3b62b6782ef88921354875335c0dbb9a8dbc4bc8627467e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasLinkTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_locus_link_keeps_one_based_closed_coordinates",
      "name": "test_locus_link_keeps_one_based_closed_coordinates",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L290-L294",
      "signature": "def test_locus_link_keeps_one_based_closed_coordinates(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a95a0eab94dff3e3dcd8ca7881e545aa203ef3ed523a09ac0fe78c9db8f18ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasLinkTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_modalities_are_validated",
      "name": "test_modalities_are_validated",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L311-L316",
      "signature": "def test_modalities_are_validated(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a35dfa0c07176a8a622dda4411d3f415a1bd8156284a94bdc215a12314e62c58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasLinkTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_tf_filter_pulls_in_rna_seq_and_dnase",
      "name": "test_tf_filter_pulls_in_rna_seq_and_dnase",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L303-L309",
      "signature": "def test_tf_filter_pulls_in_rna_seq_and_dnase(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0de587cc0fa1f5f295f20c7ee3d25afc6734ac2df55366468d034019c59f09d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasLinkTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_variant_link_normalises_and_encodes",
      "name": "test_variant_link_normalises_and_encodes",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L284-L288",
      "signature": "def test_variant_link_normalises_and_encodes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1c06e6ca8c33b0ad2e5757064f915d5eb5129d341087bb2216898357bf7040a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasLinkTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "name": "AtlasQueryCliTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L526-L631",
      "signature": "class AtlasQueryCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a91a9a2f9dfd7a5b41b0898a6f72c9570600aadb05e6d2fee1676f7f2c463aaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L527-L533",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca6d272cef400edea9fb3ae5a2b077b527071c4bd77daa3f479ef3335a52b870",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_for_variants_writes_one_row_each_and_keeps_failures",
      "name": "test_avi_for_variants_writes_one_row_each_and_keeps_failures",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L535-L551",
      "signature": "def test_avi_for_variants_writes_one_row_each_and_keeps_failures(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "548cb5bc1e18cff56a6f8ebde5c4f2e9bae5d8565808d78ad52d6872cd2e3f5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_from_vcf_warns_about_indels_and_filters_by_phred",
      "name": "test_avi_from_vcf_warns_about_indels_and_filters_by_phred",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L553-L563",
      "signature": "def test_avi_from_vcf_warns_about_indels_and_filters_by_phred(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e38e1ea9e6a256d8de7be8c5f4d612301bcc12cb607e56a96b1040be94c94b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_refuses_wide_windows_and_large_stdout",
      "name": "test_avi_interval_refuses_wide_windows_and_large_stdout",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L584-L593",
      "signature": "def test_avi_interval_refuses_wide_windows_and_large_stdout(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3be3314c842e223b3832a667d435d9c21a4c2a1b2d46200643ef8e1373507c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_scans_three_variants_per_base_and_sorts",
      "name": "test_avi_interval_scans_three_variants_per_base_and_sorts",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L574-L582",
      "signature": "def test_avi_interval_scans_three_variants_per_base_and_sorts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a08a91cbc6164c1b11b9cf7f0c6c53353f07be875f0c2bbff9f7f6d7f5e7aa5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_with_tracks_adds_the_strongest_track",
      "name": "test_avi_with_tracks_adds_the_strongest_track",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L565-L572",
      "signature": "def test_avi_with_tracks_adds_the_strongest_track(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "adf63ffbfc5509ae14646aa093dd57f4984fd9c508c40863dcb04f883db40ffb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_without_inputs_exits",
      "name": "test_avi_without_inputs_exits",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L595-L597",
      "signature": "def test_avi_without_inputs_exits(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e634e6f6061fe53ebbe9fea40e56a0a6497b5f147aa77e50ef1e2a163706660d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scorers_and_tracks_subcommands",
      "name": "test_scorers_and_tracks_subcommands",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L625-L631",
      "signature": "def test_scorers_and_tracks_subcommands(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "393a1548d3be5f7b489ff77c31da97dbc479585395caf2efdcb960edd0bb3ba1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_forwards_filters_and_flattens",
      "name": "test_scores_forwards_filters_and_flattens",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L599-L614",
      "signature": "def test_scores_forwards_filters_and_flattens(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c713e6966816a1c77df55e1bfeab51d73683d82b149b7d56f765146389346965",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_min_abs_quantile_keeps_tails",
      "name": "test_scores_min_abs_quantile_keeps_tails",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L616-L623",
      "signature": "def test_scores_min_abs_quantile_keeps_tails(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8a61a33769a4949ec3bd799edb29a5885b7ae129acd12d56f171cf30a687835",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtlasQueryCliTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ChromosomeTests",
      "name": "ChromosomeTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L85-L97",
      "signature": "class ChromosomeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c874ecf029566e265333078994309cbcc533e28b26b99670da44d553e19af269",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ChromosomeTests.test_chr_prefix_is_added_once",
      "name": "test_chr_prefix_is_added_once",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L86-L89",
      "signature": "def test_chr_prefix_is_added_once(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e772f25803f1af89cb3c59927e07d012c78f5f689a4e207dabd6ccbc950f120c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChromosomeTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ChromosomeTests.test_empty_is_rejected",
      "name": "test_empty_is_rejected",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L95-L97",
      "signature": "def test_empty_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "26b87d80c1de71ce9900ef42b9bd925b4a54913591c172119687de2d93b9b6a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChromosomeTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ChromosomeTests.test_mitochondrion_spellings_collapse",
      "name": "test_mitochondrion_spellings_collapse",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L91-L93",
      "signature": "def test_mitochondrion_spellings_collapse(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffdcbaa5dbee7c7ebee7db83c811aaf14644674b44dbc0e3998f8a3495b881f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChromosomeTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ExportTests",
      "name": "ExportTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L221-L252",
      "signature": "class ExportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1552160805702b753b21ee2729f2c860a89ea7504160231327383a998f9fb82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ExportTests.test_format_follows_extension_then_flag",
      "name": "test_format_follows_extension_then_flag",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L241-L246",
      "signature": "def test_format_follows_extension_then_flag(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea163aad0e85b0bf281607ae26013248ffaf522dcc3bfe1d8946ce0957ca03e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExportTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ExportTests.test_json_to_file",
      "name": "test_json_to_file",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L233-L239",
      "signature": "def test_json_to_file(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e1348a8430d979fc001faa80498a304f095049d500f8ab58e2f40b683d5aa03",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExportTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ExportTests.test_tsv_to_stdout_orders_columns_by_first_appearance",
      "name": "test_tsv_to_stdout_orders_columns_by_first_appearance",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L224-L231",
      "signature": "def test_tsv_to_stdout_orders_columns_by_first_appearance(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "71f5997b85e1653a51c4d136fd906784fb88029ed754a97d202781943bfb27ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExportTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ExportTests.test_unknown_format_and_parquet_without_path_are_rejected",
      "name": "test_unknown_format_and_parquet_without_path_are_rejected",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L248-L252",
      "signature": "def test_unknown_format_and_parquet_without_path_are_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a14bb2fc7f6825d8be13cbf4e919454644ca8521c47418230cfff05abb62a51a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExportTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "name": "FakeAtlasClient",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L431-L471",
      "signature": "class FakeAtlasClient",
      "exported": true,
      "origin": "ast",
      "body_hash": "64acad2ff2e52ab392b40cc9123ad90860b0d32bbfe599fd1303e6980649f510",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#FakeAtlasClient.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L434-L435",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e1bce6a2df95aa377bcf24bd4b70bc8fb89fe833a0e8e6486678c089ead3b7dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAtlasClient"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_interval",
      "name": "query_interval",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L450-L465",
      "signature": "def query_interval(self, interval, requested_scorers, progress_bar=True, **filters)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8c80300c2084014e63a154b50fdcfa7041003fd31bd2e33b28e01d2716378dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAtlasClient"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_variant",
      "name": "query_variant",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L437-L448",
      "signature": "def query_variant(self, variant, requested_scorers, **filters)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e40b8763e5a8b1173f3c39b7d5ab8973e30a652dbb18983eb4c85f226aae2851",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAtlasClient"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#FakeAtlasClient.scorer_metadata",
      "name": "scorer_metadata",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L467-L471",
      "signature": "def scorer_metadata(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "793bb33ae14b18a9b9fe45c3b2cf4ee01d7a800e359ae9f1bf8ed976ea7044aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAtlasClient"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#IntervalParsingTests",
      "name": "IntervalParsingTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L132-L147",
      "signature": "class IntervalParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5d798905f0f96e93bf96f934cfd12c936e6054dc8fb8050884bcaea054e171c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_invalid_intervals_are_rejected",
      "name": "test_invalid_intervals_are_rejected",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L144-L147",
      "signature": "def test_invalid_intervals_are_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea742f07141d760ca7bec77204e62e6475ecffa0ca0800ac5c01401195edfa88",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntervalParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_one_based_closed_becomes_zero_based_half_open",
      "name": "test_one_based_closed_becomes_zero_based_half_open",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L133-L135",
      "signature": "def test_one_based_closed_becomes_zero_based_half_open(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "450d3648fc15493a247d90c925613aa92694f4008aeeb9f5cb379a4c2ee3f895",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntervalParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_single_base_window_has_width_one",
      "name": "test_single_base_window_has_width_one",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L140-L142",
      "signature": "def test_single_base_window_has_width_one(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91240aeac405b9fe305feb7403a17f48368d1eb4cdf84bda0117bfc7fd0bbedc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntervalParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_thousands_separators_and_missing_prefix",
      "name": "test_thousands_separators_and_missing_prefix",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L137-L138",
      "signature": "def test_thousands_separators_and_missing_prefix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffaa0fa4774a97fd0ff01947e8cf20a966a0c0ce1f57d5de22fc5707fccfd48a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntervalParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "name": "rows_from_tsv",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L67-L70",
      "signature": "def rows_from_tsv(text)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3f7cf3f6cf0795c429cf33c76e56708468e122add8c32ced06b2d03e3183e5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#run_main",
      "name": "run_main",
      "kind": "function",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L60-L64",
      "signature": "def run_main(module, argv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "30e3ad8c02b07648e195adadc4380b299b39ed17b45a89bd006a9f88f87c5331",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "name": "ScoreArithmeticTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L193-L218",
      "signature": "class ScoreArithmeticTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6552d7f02f41c45d6a94cfe1d8da6c2fb531a3ab270c89d7a234f5eebb0bf7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_feature_display_names_cover_all_eighteen",
      "name": "test_feature_display_names_cover_all_eighteen",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L213-L218",
      "signature": "def test_feature_display_names_cover_all_eighteen(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b76695583531ba3c0ac53374308011ba0265afce3569cbeefae08f72d9aefdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreArithmeticTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_nan_propagates",
      "name": "test_nan_propagates",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L205-L207",
      "signature": "def test_nan_propagates(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0059268accf32a70e2d6399c914c260483680ef0a44195bdd5cd348963829fa2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreArithmeticTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_phred_scale_matches_the_report",
      "name": "test_phred_scale_matches_the_report",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L194-L198",
      "signature": "def test_phred_scale_matches_the_report(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0d81f08f9c7672ddce7e6f283f0dd8aa42e6e3dd0fbcaf7d5641ac62e61e24f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreArithmeticTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_saturated_quantile_is_floored_not_infinite",
      "name": "test_saturated_quantile_is_floored_not_infinite",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L200-L203",
      "signature": "def test_saturated_quantile_is_floored_not_infinite(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "279a403184788eb2763afed02664d763fc897188aa87984760410d1796ed9d77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreArithmeticTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_top_percent",
      "name": "test_top_percent",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L209-L211",
      "signature": "def test_top_percent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "58deff82e39ceb9863e00a1df1c76192b5ee79e68dc2bcb60e766b589dc06229",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreArithmeticTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScorerSelectionTests",
      "name": "ScorerSelectionTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L353-L379",
      "signature": "class ScorerSelectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd879ebe6a99f5f7b22dd57830425a31dfd511c5dacdc1526fe1e6e8c5eab817",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_default_excludes_active_scorers",
      "name": "test_default_excludes_active_scorers",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L354-L358",
      "signature": "def test_default_excludes_active_scorers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c5e9fd5783678ec7e79339bdd5bf6a9a8f5c86ca96c1618ead1e5c9460ad99b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScorerSelectionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_list_scorers_needs_no_network",
      "name": "test_list_scorers_needs_no_network",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L374-L379",
      "signature": "def test_list_scorers_needs_no_network(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6aa97ba63e377b3f16450779045df3895a6b2888b1dc1b9c2e806a93323614de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScorerSelectionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_mouse_drops_polyadenylation",
      "name": "test_mouse_drops_polyadenylation",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L360-L365",
      "signature": "def test_mouse_drops_polyadenylation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c37cbec6b9d93f04f66ebc961f13a0f889da9f8784328a4aeda904409b67e601",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScorerSelectionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_named_selection_and_unknown_names",
      "name": "test_named_selection_and_unknown_names",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L367-L372",
      "signature": "def test_named_selection_and_unknown_names(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "18fdd7baa40dc3032f19f2dae220e23e1f778373793b560f88f2e967d1a4cdf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScorerSelectionTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#SequenceLengthTests",
      "name": "SequenceLengthTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L335-L349",
      "signature": "class SequenceLengthTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c7bdac38f6f24ac75f842ea4c26374cab6effbeac958e46bef8bff390175b74",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#SequenceLengthTests.test_lengths_match_the_sdk_constants",
      "name": "test_lengths_match_the_sdk_constants",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L344-L349",
      "signature": "def test_lengths_match_the_sdk_constants(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e8119419a207ec93931db55ed0399b8fe001427153c83b8f2326ff5a188a4eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceLengthTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#SequenceLengthTests.test_names_and_integers",
      "name": "test_names_and_integers",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L336-L341",
      "signature": "def test_names_and_integers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40f73506cca615bd60709181be35a81629c61b63c2bcb364247675979bb257af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceLengthTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "name": "VariantFileTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L150-L190",
      "signature": "class VariantFileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "31f1c95063ea2492b242150b63c018ab79df6bc3d085a07f1330a57b68808142",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests.test_collect_variants_merges_flags_and_file",
      "name": "test_collect_variants_merges_flags_and_file",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L186-L190",
      "signature": "def test_collect_variants_merges_flags_and_file(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f2bcaeaba9c270339aecf3a84f40c1e4254a8c0b2bc67eaf237bc788ad41a37",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantFileTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests.test_csv_with_variant_column_reports_unparseable_rows",
      "name": "test_csv_with_variant_column_reports_unparseable_rows",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L158-L162",
      "signature": "def test_csv_with_variant_column_reports_unparseable_rows(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "16d3b51bc1a0035455b471aaa5bd53c7108227f54c30b9faf57ea02f5256433d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantFileTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests.test_missing_columns_are_an_error",
      "name": "test_missing_columns_are_an_error",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L174-L180",
      "signature": "def test_missing_columns_are_an_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f38bcaea817f5ee02a6e24cd8d9c1cf338aba6db0f644d9da16e00648ec49d95",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantFileTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests.test_missing_file_is_an_error",
      "name": "test_missing_file_is_an_error",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L182-L184",
      "signature": "def test_missing_file_is_an_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "92c4ac9badf3e615206af50abf1856288aa87e4e9fa02f86295353371689f011",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantFileTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests.test_tsv_with_vcf_style_columns",
      "name": "test_tsv_with_vcf_style_columns",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L151-L156",
      "signature": "def test_tsv_with_vcf_style_columns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99a445c14e4a695f01269f0dd1fca95c1abc30e45add4aaa859d854b40009df5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantFileTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantFileTests.test_vcf_splits_multiallelic_and_skips_symbolic",
      "name": "test_vcf_splits_multiallelic_and_skips_symbolic",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L164-L172",
      "signature": "def test_vcf_splits_multiallelic_and_skips_symbolic(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "be51544196bfb7c879747e73be99595d9f173ae97a421afd5be3cf6a267d022c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantFileTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantParsingTests",
      "name": "VariantParsingTests",
      "kind": "class",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L100-L129",
      "signature": "class VariantParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "037ba749eee515e1956c832a89538b31ff5eac1f286e2a05643479767f46670e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_bases_are_uppercased_and_indels_kept",
      "name": "test_bases_are_uppercased_and_indels_kept",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L114-L118",
      "signature": "def test_bases_are_uppercased_and_indels_kept(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "869560462d0d330ac75a7e0c933e6c54a325664ff681a51cadf84188310e3ac0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_default_gnomad_gtex_and_open_targets_spellings_agree",
      "name": "test_default_gnomad_gtex_and_open_targets_spellings_agree",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L101-L112",
      "signature": "def test_default_gnomad_gtex_and_open_targets_spellings_agree(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13c964f83ea601ee19dd5d31eac779204630eac502742089be65c42dd1f84c25",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_rsid_and_garbage_are_rejected_with_guidance",
      "name": "test_rsid_and_garbage_are_rejected_with_guidance",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L120-L124",
      "signature": "def test_rsid_and_garbage_are_rejected_with_guidance(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf3ad10d28a1f1089e02cb22e41cbfcee4f30778c907aef1336746b411bc3544",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantParsingTests"
    },
    {
      "id": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_string_form_round_trips",
      "name": "test_string_form_round_trips",
      "kind": "method",
      "path": "tests/alphagenome/test_scripts.py",
      "span": "L126-L129",
      "signature": "def test_string_form_round_trips(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "311d474f84948f605e65b143474cee7595a260240fa6be2f880824839f080af9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VariantParsingTests"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L1-L957",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "be4b3edf5cd77a9d295cacca4047300afbedcc16c8aba8e690dd8ba096e1adfa",
      "chars": 44501,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#_load_script",
      "name": "_load_script",
      "kind": "function",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L27-L36",
      "signature": "def _load_script(name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ac5f4bdf5f8c4d1c2a2f649c9720e589e2f8bac37db7ddccbf9969c50e893e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L43-L50",
      "signature": "def run_script(name: str, *args: str) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "af29c16efb31ca83e49324b39ceaf671337000ce5e1f647bbbc5ac9dadea3a7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "name": "TestCatalogue",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L455-L519",
      "signature": "class TestCatalogue(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66833a7f013a4ef53220ebcceb68b9bfc380f15c63659f6a8d357d17354cb9eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_attribute_aliases_resolve",
      "name": "test_attribute_aliases_resolve",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L500-L505",
      "signature": "def test_attribute_aliases_resolve(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "12b0b01159dd77cb2f76664e96a95e0b6d6bef0e8d84373521cef52383ec39af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_dl_ql_factors_documented",
      "name": "test_dl_ql_factors_documented",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L516-L519",
      "signature": "def test_dl_ql_factors_documented(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bddcccf5232e71cda5705b5adc56eee924292a29fc59cc39358fc5c8a134acc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_m10_modalities_differ",
      "name": "test_m10_modalities_differ",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L456-L464",
      "signature": "def test_m10_modalities_differ(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c86f3f8cb5bbcbb31ee8f80e44833cb3881a5337a24cfddfd8593d5ed4ed4c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_m10_run_structure",
      "name": "test_m10_run_structure",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L471-L483",
      "signature": "def test_m10_run_structure(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "07bae047113f96fbc10c8e92b2068ee775cd11a8d74a87a51496dd17d0b2676b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_paywalled_frameworks_marked_not_reproducible",
      "name": "test_paywalled_frameworks_marked_not_reproducible",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L507-L511",
      "signature": "def test_paywalled_frameworks_marked_not_reproducible(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7437e0cc5a34eed0286f876c6e651084f0864725a3b497aeae16abfffb304893",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_q2r2_identity_only_needs_specificity",
      "name": "test_q2r2_identity_only_needs_specificity",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L493-L498",
      "signature": "def test_q2r2_identity_only_needs_specificity(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd896a04db9a8a113f1ea9b0757a6b60bd752c862b223fd8edd73bd6b00f4fa3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_q2r2_response_requires_five_levels",
      "name": "test_q2r2_response_requires_five_levels",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L513-L514",
      "signature": "def test_q2r2_response_requires_five_levels(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "59595eed1baf6e707b9efb791d630092bee9f013c161814c7968aac4a626d9f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_q2r2_table1_limit_test_needs_dl_not_ql",
      "name": "test_q2r2_table1_limit_test_needs_dl_not_ql",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L485-L491",
      "signature": "def test_q2r2_table1_limit_test_needs_dl_not_ql(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffba71d8cd35f6e996a68f719d07092595bcce9cabd6c22c141dc44b2be26342",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_total_error_is_lba_only",
      "name": "test_total_error_is_lba_only",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L466-L469",
      "signature": "def test_total_error_is_lba_only(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "16f26f9e0b6f51cf4eeb9da3158c786267294291514080ebb7019a3917dc766d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCatalogue"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "name": "TestCheckAccuracyPrecision",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L627-L706",
      "signature": "class TestCheckAccuracyPrecision(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b3fb7d1768a3bc10471a82973c47e8f623e4923207cc39b9522a91f5e091041",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_accuracy_reports_confidence_interval",
      "name": "test_accuracy_reports_confidence_interval",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L652-L660",
      "signature": "def test_accuracy_reports_confidence_interval(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b200833f44741b82edc95817ed71393d0d6cea4bee33a4d51f3984b082260541",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_between_day_shift_inflates_intermediate_precision",
      "name": "test_between_day_shift_inflates_intermediate_precision",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L628-L637",
      "signature": "def test_between_day_shift_inflates_intermediate_precision(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9176ffc7be51b3ad4b5fc1fa83b7177f68829e84ff9daa7bd1a636d526f2ac2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_design_meeting_neither_option_is_flagged",
      "name": "test_design_meeting_neither_option_is_flagged",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L702-L706",
      "signature": "def test_design_meeting_neither_option_is_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f095d5d85fd15753874a92c25dbe96bf070ff55bdf97b16b192a335fb02f76f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_nine_across_range_satisfies_option_a",
      "name": "test_nine_across_range_satisfies_option_a",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L697-L700",
      "signature": "def test_nine_across_range_satisfies_option_a(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "527939b03299066ae93b2abc2b7d82faa6cde7c866a35f0590f80baf66eb6e59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_no_group_column_only_repeatability",
      "name": "test_no_group_column_only_repeatability",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L673-L679",
      "signature": "def test_no_group_column_only_repeatability(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb27c4b7b34fda8cfca47d772113e81f0695e0a967985904af4c972a16c4b0a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_precision_is_reported_per_level",
      "name": "test_precision_is_reported_per_level",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L639-L650",
      "signature": "def test_precision_is_reported_per_level(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f367674eecf03b4ee1e42b0ec73b51f7a7fadc2df6e52a8a33876047a4c2b38a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_require_ci_within_limit_is_stricter",
      "name": "test_require_ci_within_limit_is_stricter",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L662-L671",
      "signature": "def test_require_ci_within_limit_is_stricter(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7a6b8aa0a12f2ed802e20139426ab44784740ea2b619c5e01b4f817635ef7a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_six_at_one_level_satisfies_option_b",
      "name": "test_six_at_one_level_satisfies_option_b",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L685-L695",
      "signature": "def test_six_at_one_level_satisfies_option_b(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32d23bc458413e4e776035fab1a6d07eceb2c6b362cd391d4f8844d5c78077cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_zero_level_rejected",
      "name": "test_zero_level_rejected",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L681-L683",
      "signature": "def test_zero_level_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "23a2a22908d460f466ae737fa21383e65c8e1a8e6e953e83fa6ad4ae4021995a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckAccuracyPrecision"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "name": "TestCheckBioanalyticalRun",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L784-L850",
      "signature": "class TestCheckBioanalyticalRun(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e25f371ffbe6a27861b851fc612b0829c678f7a497ec4f7ac712a41a3dc75bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_anchor_points_excluded_from_calibration_count",
      "name": "test_anchor_points_excluded_from_calibration_count",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L831-L838",
      "signature": "def test_anchor_points_excluded_from_calibration_count(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1540084fa89f2713b120a467b2919a361d6ec2c7b1644b4b864f2ef499d2ffe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_bad_type_column_exits_2",
      "name": "test_bad_type_column_exits_2",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L847-L850",
      "signature": "def test_bad_type_column_exits_2(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0260267e8b662e5fc30e72f849b1026371d4113c3def0a901a4eb03c82699cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_criteria_listing",
      "name": "test_criteria_listing",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L840-L845",
      "signature": "def test_criteria_listing(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d9691ad621f005d4695b70b43852e564012ecd8452351f0baed71f704a3a96a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_isr_chromatographic_vs_lba",
      "name": "test_isr_chromatographic_vs_lba",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L806-L813",
      "signature": "def test_isr_chromatographic_vs_lba(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "783873d9e08b683b5e96f72b99d5d43993e638ec6e045a71cd5c74d668817641",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_modality_is_mandatory",
      "name": "test_modality_is_mandatory",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L800-L804",
      "signature": "def test_modality_is_mandatory(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a31ffaa8dd70fa59ceae213e9f3b33110f4072498cf16807d6fff42dc8261c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_per_level_qc_rule_catches_failing_level",
      "name": "test_per_level_qc_rule_catches_failing_level",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L785-L789",
      "signature": "def test_per_level_qc_rule_catches_failing_level(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "228539b3bc47fe9ad7277d75d84ab109b746bd0d8df801dc8b7c7b532f2467c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_same_run_passes_lba_tolerances",
      "name": "test_same_run_passes_lba_tolerances",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L791-L798",
      "signature": "def test_same_run_passes_lba_tolerances(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf7fcdc6cb7048b6a9c59f39c5f1c787ea9b0977ec3eb7cbf2948a4caeea163a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_total_error_applied_for_lba",
      "name": "test_total_error_applied_for_lba",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L821-L829",
      "signature": "def test_total_error_applied_for_lba(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "90cd2a6d3cc4ba305d5373832a121f46e7fd44a0e7dcaeed76ce12e12909d25e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_total_error_rejected_for_chromatographic",
      "name": "test_total_error_rejected_for_chromatographic",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L815-L819",
      "signature": "def test_total_error_rejected_for_chromatographic(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c544ef9ad1a9fa6b433dca193872a64c0db03c95b509afffd0f2dc242934d6b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckBioanalyticalRun"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "name": "TestCheckDetectionLimits",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L709-L781",
      "signature": "class TestCheckDetectionLimits(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e4ac1b10f240dc95a89877239b4f772c033e6c8b9a9d5b540b7cac7ea05d817",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_confirm_data_without_claim_exits_2",
      "name": "test_confirm_data_without_claim_exits_2",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L745-L749",
      "signature": "def test_confirm_data_without_claim_exits_2(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cee08e707f6313764262b101c83262dad1e3ca3a12f260eed2d8d700404da23e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_dl_ql_factor_relationship",
      "name": "test_dl_ql_factor_relationship",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L720-L725",
      "signature": "def test_dl_ql_factor_relationship(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "307daf3c76289c5f1a90b146d15f7d972e8678ed140f50f6a7b06d9051d9c2fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_explicit_claim_overrides_the_conservative_default",
      "name": "test_explicit_claim_overrides_the_conservative_default",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L769-L775",
      "signature": "def test_explicit_claim_overrides_the_conservative_default(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e73d8b13576d9a4cf2a4665d11c241a284db63f92f4f1bad0d02d7b38b8d77cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_multiple_approaches_reported",
      "name": "test_multiple_approaches_reported",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L710-L718",
      "signature": "def test_multiple_approaches_reported(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66a48502f9208e8fa9dc0f8e57f6d6d8dda38c6cb85ddbfc1de3bb1d16d843ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_ql_above_reporting_threshold_flagged",
      "name": "test_ql_above_reporting_threshold_flagged",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L727-L732",
      "signature": "def test_ql_above_reporting_threshold_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ecc98054e9a1d76fcba0b0794650835cc35a5551d6e0d1750d0c10b4143f697",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_ql_confirmation_evaluated",
      "name": "test_ql_confirmation_evaluated",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L734-L743",
      "signature": "def test_ql_confirmation_evaluated(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "58d07cd7abe47751760a6b33939f41736d8bd243c70d224a6c2543575dd6a71c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_signal_to_noise_requires_level",
      "name": "test_signal_to_noise_requires_level",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L777-L781",
      "signature": "def test_signal_to_noise_requires_level(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "78418ba39654e1dcf6ecb0b695adcf1c9a174d62521066bdf030e6c294037d8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_threshold_check_uses_the_conservative_estimate",
      "name": "test_threshold_check_uses_the_conservative_estimate",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L751-L767",
      "signature": "def test_threshold_check_uses_the_conservative_estimate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "58350395b09f0eb847073c069e1671a2ca3d0808c748c611672602ec0b5a9a64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckDetectionLimits"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "name": "TestCheckResponse",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L588-L624",
      "signature": "class TestCheckResponse(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99d3fd1f62be63479eaf4e214a4c2de2140cda566b4c5e0f81aa8206e8ea2494",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_curved_response_flagged",
      "name": "test_curved_response_flagged",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L594-L598",
      "signature": "def test_curved_response_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b58074ac0c2b283a81df24ad673d5d270cc3ed820fbda4b4641776afccc74c55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckResponse"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_curved_response_has_high_r_squared",
      "name": "test_curved_response_has_high_r_squared",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L600-L608",
      "signature": "def test_curved_response_has_high_r_squared(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "487659f90e8432220828a5209803160d74f142d9c3cdbd128b034951eafb1dfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckResponse"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_good_curve_no_findings",
      "name": "test_good_curve_no_findings",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L589-L592",
      "signature": "def test_good_curve_no_findings(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32fde0cbbdb8951df8efaa3e0ff79fe8f2b896611519f8212822f84583a1b339",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckResponse"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_missing_column_exits_2",
      "name": "test_missing_column_exits_2",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L615-L618",
      "signature": "def test_missing_column_exits_2(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a9dd546fb7ef0568ca3a320920e6ece3552d068cc85251113f08f9f845c1ce2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckResponse"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_too_few_levels_flagged",
      "name": "test_too_few_levels_flagged",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L610-L613",
      "signature": "def test_too_few_levels_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4052a26945d9ed5bdc5364d3b21bbe0e0a4bc1cbacb84c057ca86bc53166057f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckResponse"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_weighting_option_accepted",
      "name": "test_weighting_option_accepted",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L620-L624",
      "signature": "def test_weighting_option_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c84ed04794255c562a602346c505e232e580bc821d1e696f24718908fc78086",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCheckResponse"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "name": "TestCompareMethods",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L853-L889",
      "signature": "class TestCompareMethods(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee933a244cf829828c160c186739be3921bcfef3d5b68aee640bf51a65cebbf4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_deming_and_ols_both_reported",
      "name": "test_deming_and_ols_both_reported",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L874-L880",
      "signature": "def test_deming_and_ols_both_reported(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cc396aa9f0fb5439ab9f0a06930828a34ca7e4009cf3b51f5eb00e41ea05f28",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompareMethods"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_equivalent_at_two_percent",
      "name": "test_equivalent_at_two_percent",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L854-L858",
      "signature": "def test_equivalent_at_two_percent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "326f2c4c65bace798793a81055df2fa4d870e87c3f5fae191d043cd72bd70c08",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompareMethods"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_margin_is_required",
      "name": "test_margin_is_required",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L882-L884",
      "signature": "def test_margin_is_required(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "06d01705879bb8fba99cd9a41e4d255af4cda6c617005b22d8e22e5763c3f2b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompareMethods"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_not_equivalent_at_one_percent",
      "name": "test_not_equivalent_at_one_percent",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L860-L864",
      "signature": "def test_not_equivalent_at_one_percent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc4d4dcaadc943d0873a4492afc53e6d57fece2b3f58d4d3254c08d5743d2f98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompareMethods"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_t_test_significant_while_tost_equivalent",
      "name": "test_t_test_significant_while_tost_equivalent",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L866-L872",
      "signature": "def test_t_test_significant_while_tost_equivalent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f3c7fe09c4bb35f614a855178d18c8e62ed728a61e5e32330e8755bcdbf0931",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompareMethods"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_too_few_pairs_exits_2",
      "name": "test_too_few_pairs_exits_2",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L886-L889",
      "signature": "def test_too_few_pairs_exits_2(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbe778d9be80329bbb1efa236432a429c769168c035756b6f918c8ced783172c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompareMethods"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "name": "TestDistributions",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L117-L180",
      "signature": "class TestDistributions(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "793fcfad3f5f5df7832da0d9bc800c836961ccc0be8df1167bb64a4e79839391",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_bad_probabilities_raise",
      "name": "test_bad_probabilities_raise",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L176-L180",
      "signature": "def test_bad_probabilities_raise(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0d0eefa91b404d305372956170a06fb8de66f135521f2551d855fcf3b455bb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_betainc_edges",
      "name": "test_betainc_edges",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L168-L174",
      "signature": "def test_betainc_edges(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "edffc6fa81e624f180ebc03024f908b0dbb443c8f37089f5156b56dcabf631eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_chi2_quantiles",
      "name": "test_chi2_quantiles",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L135-L143",
      "signature": "def test_chi2_quantiles(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfa1b9bdabaf194adbc2a58b6dd576cf843ab100239ff385fbd2f9b345fe8e43",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_f_distribution",
      "name": "test_f_distribution",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L145-L151",
      "signature": "def test_f_distribution(self): # F(1,1) upper 5% point is 161.4476",
      "exported": true,
      "origin": "ast",
      "body_hash": "090ab803af5aec245d45fd4a442cc9bbdfb907b46606362155cd861982329fb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_f_sf_does_not_underflow_to_zero",
      "name": "test_f_sf_does_not_underflow_to_zero",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L153-L166",
      "signature": "def test_f_sf_does_not_underflow_to_zero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c67b52a6a33589692dc4d6a14a97753fb8c34a301a7fd90dfa2c1cd249c1eb96",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_t_cdf_symmetry",
      "name": "test_t_cdf_symmetry",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L129-L133",
      "signature": "def test_t_cdf_symmetry(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "755d706b754f23b3390d54c4d0201b389124f8977adeae207a405bed8154c095",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_t_quantiles",
      "name": "test_t_quantiles",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L118-L127",
      "signature": "def test_t_quantiles(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f60e8e14dd6869e78824f7a7c1a231dacf9f81595ce29706209f075abeca76f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDistributions"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "name": "TestInputHandling",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L895-L947",
      "signature": "class TestInputHandling(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "506256759269c64b320672fd0a611ebe233cd5d03733c3574467b3bc0a8668a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_empty_json_array_rejected",
      "name": "test_empty_json_array_rejected",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L927-L929",
      "signature": "def test_empty_json_array_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb1d9cf674f126969d60cc9e6895a4fcfa7c2336ed0eaf820d6fa6958239a9c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_json_input_accepted",
      "name": "test_json_input_accepted",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L896-L899",
      "signature": "def test_json_input_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5fcdea89dc3a5b964934e230eb407889f4c0178854a7937f5d5ee9116706b65a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_json_row_cap_boundary_is_accepted",
      "name": "test_json_row_cap_boundary_is_accepted",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L922-L925",
      "signature": "def test_json_row_cap_boundary_is_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1755a45ad4c2185d73087240cfcf95710f110a333a76562963fb22b692d3a80f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_missing_file_exits_2",
      "name": "test_missing_file_exits_2",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L911-L913",
      "signature": "def test_missing_file_exits_2(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7402ecaba7fe912af8dde30cbf707a667da5799fc4366242ece1edab49322b6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_non_numeric_value_names_the_row",
      "name": "test_non_numeric_value_names_the_row",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L906-L909",
      "signature": "def test_non_numeric_value_names_the_row(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d93c5c806901a91e1f238936f5a60be8351bf883785c6d193a51c60bc92f2db7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_omitted_input_does_not_block_on_a_terminal",
      "name": "test_omitted_input_does_not_block_on_a_terminal",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L931-L940",
      "signature": "def test_omitted_input_does_not_block_on_a_terminal(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d54b470c75bace012e834b174ae02f35167aabeebac67ea43b538e1a333beb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_oversize_json_is_refused_not_truncated",
      "name": "test_oversize_json_is_refused_not_truncated",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L915-L920",
      "signature": "def test_oversize_json_is_refused_not_truncated(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf02a3e87f127affdf1eb0e34fa0816a7ea73be609f679d2892ea4e7c8c0699f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_stdout_carries_data_stderr_carries_notes",
      "name": "test_stdout_carries_data_stderr_carries_notes",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L942-L947",
      "signature": "def test_stdout_carries_data_stderr_carries_notes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee199638eb9af7f006866d3a925877088b99b925828ca7ba4c04b88f017d825a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_tsv_input_accepted",
      "name": "test_tsv_input_accepted",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L901-L904",
      "signature": "def test_tsv_input_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7344f52fbfbc2ce9a7393f0b813742fd52dd8aa563448f7032406b95d9055a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInputHandling"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "name": "TestMethodComparison",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L309-L449",
      "signature": "class TestMethodComparison(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fe58fae5a15fc86537b03f3b295cd043dfdfbe11a81043288d1e62cb6243e05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_bland_altman_bias_and_loa",
      "name": "test_bland_altman_bias_and_loa",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L410-L415",
      "signature": "def test_bland_altman_bias_and_loa(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "85c17f97d252aa28292ed9dbe009e1f5fd1c13108744093f865a36e077b63267",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_bland_altman_needs_three_pairs",
      "name": "test_bland_altman_needs_three_pairs",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L423-L425",
      "signature": "def test_bland_altman_needs_three_pairs(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca632e22e19181a67f81bcaed3899650eb9408dca154ed9c8404f4c1e404f617",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_bland_altman_relative",
      "name": "test_bland_altman_relative",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L417-L421",
      "signature": "def test_bland_altman_relative(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2eda751c9b659428aac31e497f9c1eeeb12bc7572ae6d50183fa33b3f7f1db9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_lambda_affects_slope",
      "name": "test_deming_lambda_affects_slope",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L317-L322",
      "signature": "def test_deming_lambda_affects_slope(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a825f9ac6694af88fffbbea8ec4c6c94e1fb7ed1035cdcb1c65966e5d3b067c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_lambda_direction_matches_documentation",
      "name": "test_deming_lambda_direction_matches_documentation",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L324-L345",
      "signature": "def test_deming_lambda_direction_matches_documentation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "330a7597a20e169f928c492ad96a072387cf0394b12fb710b667625fbbdcc6b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_recovers_unit_slope",
      "name": "test_deming_recovers_unit_slope",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L310-L315",
      "signature": "def test_deming_recovers_unit_slope(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f76b488052d8e7b76403cd37395fa3cbb84a28737daee3df314f84d971622338",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_rejects_bad_lambda",
      "name": "test_deming_rejects_bad_lambda",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L347-L349",
      "signature": "def test_deming_rejects_bad_lambda(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c98a2e6f6452116c66666f58d9d216409aba441879379c778685580ee72af5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_ci_contains_estimate_across_shapes",
      "name": "test_passing_bablok_ci_contains_estimate_across_shapes",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L401-L408",
      "signature": "def test_passing_bablok_ci_contains_estimate_across_shapes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c856a8e74de260b8be1660404ce55560266ca91350696006d257b3f8c882d04",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_ci_order_statistics",
      "name": "test_passing_bablok_ci_order_statistics",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L371-L399",
      "signature": "def test_passing_bablok_ci_order_statistics(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb5cf080c83d6068bfceb09a04c7cd8fcfcc0c0f028b0423830953a52c2ef075",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_exact_line",
      "name": "test_passing_bablok_exact_line",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L351-L356",
      "signature": "def test_passing_bablok_exact_line(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9936d511916876b5a80c1bb9d20c045a9b88d32791e35030b3d0b43795592e84",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_needs_five_points",
      "name": "test_passing_bablok_needs_five_points",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L367-L369",
      "signature": "def test_passing_bablok_needs_five_points(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9dea6bf87138e2654a93220264de1d67e3127d76c0f5bda0ac098490f9444cd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_resists_one_outlier",
      "name": "test_passing_bablok_resists_one_outlier",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L358-L365",
      "signature": "def test_passing_bablok_resists_one_outlier(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e949a1d8ae6d90717ea8fdc2b042af6e7d2b8ebbe022f4ee50492b5a6b57ac30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_ci_is_1_minus_2alpha",
      "name": "test_tost_ci_is_1_minus_2alpha",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L437-L445",
      "signature": "def test_tost_ci_is_1_minus_2alpha(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fda6909fd360666756f010438696d9d637e8dd4260a4de4520cb76bd7f3d88e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_equivalent",
      "name": "test_tost_equivalent",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L427-L430",
      "signature": "def test_tost_equivalent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d50397a386c8a00e6298dcd5dd8ea7dde46b36588d35a949a9eb6b79570c380d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_not_equivalent_when_biased",
      "name": "test_tost_not_equivalent_when_biased",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L432-L435",
      "signature": "def test_tost_not_equivalent_when_biased(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f96d123ea7f177e4982390c2a16a6cbb4a3c307506714cad0c7db72c8f3382d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_rejects_bad_margin",
      "name": "test_tost_rejects_bad_margin",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L447-L449",
      "signature": "def test_tost_rejects_bad_margin(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b65ede936ac279669612cfdd7b8ebc20540aea53ce01935ef92b89f3a0a75856",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMethodComparison"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "name": "TestPlanValidation",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L525-L585",
      "signature": "class TestPlanValidation(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f1e56d3d3ca6def2093e609e26f28b8877b46874344d9306b2b03070b6d99a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_identity_plan_marks_most_tests_not_required",
      "name": "test_identity_plan_marks_most_tests_not_required",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L545-L550",
      "signature": "def test_identity_plan_marks_most_tests_not_required(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdb179eb71b00d36497467a9757822bd1f9e2656dda9ed1a85bffb08a456f220",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_list_frameworks",
      "name": "test_list_frameworks",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L526-L533",
      "signature": "def test_list_frameworks(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f593e469e0e77cae864e69369fcceacbaaeeb5281dc757cc63f780b9eb72c070",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_chromatographic_plan_excludes_total_error",
      "name": "test_m10_chromatographic_plan_excludes_total_error",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L563-L567",
      "signature": "def test_m10_chromatographic_plan_excludes_total_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6962c51cd3a2951b9886f3bbed19ecd5426a0689f68f242f34542fdb3230e97e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_lba_plan_includes_total_error",
      "name": "test_m10_lba_plan_includes_total_error",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L557-L561",
      "signature": "def test_m10_lba_plan_includes_total_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9183652a410840c639dc422cfa937d625cf1ec6bd1b5978f3cc60f75a3d7e60f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_requires_modality",
      "name": "test_m10_requires_modality",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L552-L555",
      "signature": "def test_m10_requires_modality(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2096d1a4a1e6091b4be76256502cd55d74b057d0fac5db873184ff4bb035b739",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_paywalled_framework_refuses_to_supply_design",
      "name": "test_paywalled_framework_refuses_to_supply_design",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L580-L585",
      "signature": "def test_paywalled_framework_refuses_to_supply_design(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "497afa26f5c4c0a9ca77aa0fc1e7fccd914bc651bce350acd4ec1464abf5e7b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_protocol_skeleton_has_pre_stated_criteria_section",
      "name": "test_protocol_skeleton_has_pre_stated_criteria_section",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L573-L578",
      "signature": "def test_protocol_skeleton_has_pre_stated_criteria_section(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab1ffe20d4d5b24a68f47de54da74427bf055cf4ee24345d82a98ce0fe0b2f59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_q2r2_assay_plan",
      "name": "test_q2r2_assay_plan",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L535-L543",
      "signature": "def test_q2r2_assay_plan(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0f5c3cef60aedefab76ad86949b97fb0e50e7135724470221f84133affc188b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_unknown_framework_exits_2",
      "name": "test_unknown_framework_exits_2",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L569-L571",
      "signature": "def test_unknown_framework_exits_2(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ca3dcf1451ee12ce55701f2ec6b1e98c93a1546bda9285dd82b1fad1ed16b74",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPlanValidation"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "name": "TestRegression",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L186-L257",
      "signature": "class TestRegression(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bd77cfe7df61f639060936e23105069059c3bf12b9e1cfa253a71544f667db3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_collinear_x_raises",
      "name": "test_collinear_x_raises",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L213-L215",
      "signature": "def test_collinear_x_raises(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "93cb8866590115a7ac7cd28eabd41ea394e984e4c846d7703b4b5bf1dba40cbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_exact_line",
      "name": "test_exact_line",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L187-L192",
      "signature": "def test_exact_line(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "551c438907179642065a2ae056487a82af44b15a6b733b56efced02a7745ba68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_heteroscedasticity_ratio",
      "name": "test_heteroscedasticity_ratio",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L250-L257",
      "signature": "def test_heteroscedasticity_ratio(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1557807efaffc0ef627bd5ea1803c3af385462399b449484299679c66b0e7844",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_known_least_squares",
      "name": "test_known_least_squares",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L194-L200",
      "signature": "def test_known_least_squares(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9604bb85e74ffb23862289b7636393ab86e332d8ff51632c163ea4c6020abf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_lack_of_fit_detects_curvature",
      "name": "test_lack_of_fit_detects_curvature",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L217-L223",
      "signature": "def test_lack_of_fit_detects_curvature(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca66a9914f625325e739470f4346c2c5abd35ffc2e3eb7b46125ef686b836b76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_lack_of_fit_needs_replicates",
      "name": "test_lack_of_fit_needs_replicates",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L232-L237",
      "signature": "def test_lack_of_fit_needs_replicates(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ce40d464d38768b36b76eb8ca3a1157f6cb3a5da0c19ceb359f89a862b67921",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_lack_of_fit_passes_linear_data",
      "name": "test_lack_of_fit_passes_linear_data",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L225-L230",
      "signature": "def test_lack_of_fit_passes_linear_data(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "39e10786d826fb6886aa079b716a383e98e2f39df660d8ad8a072ef284f87ade",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_runs_test_flags_curvature",
      "name": "test_runs_test_flags_curvature",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L239-L243",
      "signature": "def test_runs_test_flags_curvature(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24fcdba827478cdfc6768c6534e403f22ee09b2015e84a2ffd3b7c609b8855f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_runs_test_small_sample_is_honest",
      "name": "test_runs_test_small_sample_is_honest",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L245-L248",
      "signature": "def test_runs_test_small_sample_is_honest(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ebdfae3f983fe425e88cbd3a34d453455b3ad1352b3c7ec70029d83edf760ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_too_few_points",
      "name": "test_too_few_points",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L209-L211",
      "signature": "def test_too_few_points(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "62b37d3eb40c381f2cb85a2d07a2b772a075a50de5c5a8832066a9efc341440f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_weighting_changes_the_fit",
      "name": "test_weighting_changes_the_fit",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L202-L207",
      "signature": "def test_weighting_changes_the_fit(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d2cf2d97b45dab808b6a80d710d3ef401c83da4d25fd7c9b40ac9415653301a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestRegression"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "name": "TestSkillStructure",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L56-L111",
      "signature": "class TestSkillStructure(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cf3c993597957acfbea5280b9c05ed0bcdeea10321f3ebde91d5404c2ed2536",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_no_bytecode_shipped",
      "name": "test_no_bytecode_shipped",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L84-L86",
      "signature": "def test_no_bytecode_shipped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d23f95c4521aa0902876b9dad1c8c4fbe7529f688a3be8a301fd082b6513cf60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_no_techniques_attributed_to_q2r2_that_it_never_mentions",
      "name": "test_no_techniques_attributed_to_q2r2_that_it_never_mentions",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L91-L100",
      "signature": "def test_no_techniques_attributed_to_q2r2_that_it_never_mentions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c706ef57293177a7ae368f9c19def3b3818a79f893c5b5f9899cd04b42c2c09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_no_tests_inside_skill",
      "name": "test_no_tests_inside_skill",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L88-L89",
      "signature": "def test_no_tests_inside_skill(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "915a980c6a4f40f9129b9997d765e6415d49eb041d654a0acb76e57630206e20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_paywalled_standards_are_not_quoted_with_numbers",
      "name": "test_paywalled_standards_are_not_quoted_with_numbers",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L102-L111",
      "signature": "def test_paywalled_standards_are_not_quoted_with_numbers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f226d1109c0fcc8a5ed7d84d23b6cf208278a031c8fe56f12484f67e62167e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_referenced_files_exist",
      "name": "test_referenced_files_exist",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L74-L82",
      "signature": "def test_referenced_files_exist(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5ae3dd156ded578e9851b2c5fcff5cfdaa22180750bbde6648b34a9498c86a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_skill_md_frontmatter",
      "name": "test_skill_md_frontmatter",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L57-L68",
      "signature": "def test_skill_md_frontmatter(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0039d4d6d3033dcc3b78dd9b415d3b009f47457f6e52106dadd50ff1e2f502ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_skill_md_under_500_lines",
      "name": "test_skill_md_under_500_lines",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L70-L72",
      "signature": "def test_skill_md_under_500_lines(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "becd8805f4e3a71c6497eed206dad8c131144117e26a4da3bea5e2a46447b663",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "name": "TestVarianceComponents",
      "kind": "class",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L263-L303",
      "signature": "class TestVarianceComponents(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "72448cd00647a1ab7ee9ffeea9fa2c58ea05c486332e22cad73f96d9127b4e1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_balanced_hand_check",
      "name": "test_balanced_hand_check",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L264-L278",
      "signature": "def test_balanced_hand_check(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60319d3d4898d731b2eacd45fcd63afa5688c5116a255342eb9227a44c3c4870",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVarianceComponents"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_between_variance_truncated_at_zero",
      "name": "test_between_variance_truncated_at_zero",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L280-L285",
      "signature": "def test_between_variance_truncated_at_zero(self): # Groups deliberately indistinguishable: MS_between < MS_within",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e06e15378e442367b23f0a89030cef1a89b59dc8e82dd30c4773c486c860380",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVarianceComponents"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_needs_two_groups",
      "name": "test_needs_two_groups",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L294-L296",
      "signature": "def test_needs_two_groups(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e24c15c19524e3114245bbcfc030ed13f99108be22a6f91e1e1ffbe01a40587a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVarianceComponents"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_sd_confidence_interval_brackets",
      "name": "test_sd_confidence_interval_brackets",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L298-L303",
      "signature": "def test_sd_confidence_interval_brackets(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "49120081cd6db944a4ee8093dbd2aeffc3f857eaeff61fc5068a7d8521649a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVarianceComponents"
    },
    {
      "id": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_unbalanced_effective_n",
      "name": "test_unbalanced_effective_n",
      "kind": "method",
      "path": "tests/analytical-method-validation/test_scripts.py",
      "span": "L287-L292",
      "signature": "def test_unbalanced_effective_n(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "41a5264c3f6cd7a61808ba27147f9ee33a286c906d9b91391bfd4f9acc3733d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVarianceComponents"
    },
    {
      "id": "tests/arbor/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/arbor/test_scripts.py",
      "span": "L1-L462",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0af9b11f063654b0de78a21290d8203e2ad8c924464774ee6e16017824cca386",
      "chars": 20426,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "name": "ArborRunTestCase",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L36-L71",
      "signature": "class ArborRunTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2bcb3616c02dbafaa99c338aee5d20713b1905e3e5fe7728d3ede936ef35df4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "name": "init",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L53-L63",
      "signature": "def init(self, **overrides: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c41ae64c82506a08935b19f82dee70aee0bc48d6471c89fe5c815767d2eefa7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArborRunTestCase"
    },
    {
      "id": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "name": "run_command",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L45-L51",
      "signature": "def run_command(self, *argv: str) -> tuple[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a90d9d672b4c7b1e739609e202f00830be525e6c0390fbdbf850b52b6eec1764",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArborRunTestCase"
    },
    {
      "id": "tests/arbor/test_scripts.py#ArborRunTestCase.run_config",
      "name": "run_config",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L70-L71",
      "signature": "def run_config(self) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5e3172153e8f9ad369d08d60460540703dd634c802f1d1c96be3051f73adf0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArborRunTestCase"
    },
    {
      "id": "tests/arbor/test_scripts.py#ArborRunTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L39-L43",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9da14243f58d6afab732655b87cb2e273db8f20d381af09e86199d094757ded8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArborRunTestCase"
    },
    {
      "id": "tests/arbor/test_scripts.py#ArborRunTestCase.tree",
      "name": "tree",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L66-L67",
      "signature": "def tree(self) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3627b6da796d58a91ecb69b073af0379f83441ccf3399b781f808d72a092ad5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArborRunTestCase"
    },
    {
      "id": "tests/arbor/test_scripts.py#CycleTests",
      "name": "CycleTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L364-L379",
      "signature": "class CycleTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "127c8beeb8f9b0ba133a50096eee667982c70076009293237dcedad8cb637cd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#CycleTests.test_cycles_count_up_and_report_the_remainder",
      "name": "test_cycles_count_up_and_report_the_remainder",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L365-L372",
      "signature": "def test_cycles_count_up_and_report_the_remainder(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6beb2f281e82e85b660de8e560c1e55f63377c042fe3149196eb72a16ed14cee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CycleTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#CycleTests.test_the_counter_keeps_going_past_the_budget",
      "name": "test_the_counter_keeps_going_past_the_budget",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L374-L379",
      "signature": "def test_the_counter_keeps_going_past_the_budget(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37ee75be2232c8ba1acefb82ba2bdfc752f7e06e9877a1b91e1ebcaae6eb9f75",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CycleTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests",
      "name": "EvidenceTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L183-L227",
      "signature": "class EvidenceTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2917ccb1f3d42caf10c892f1a291af9127114503384a4d8180106a5e23945583",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L184-L188",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ded577b5cf91c4706bf5b72092d1924ba3c31e1498292331f261ee2434d612c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests.test_a_leaf_with_ancestors_is_reminded_to_propagate",
      "name": "test_a_leaf_with_ancestors_is_reminded_to_propagate",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L220-L223",
      "signature": "def test_a_leaf_with_ancestors_is_reminded_to_propagate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c98cdc2c014db901a6e2fb51c7f496bb73246d318c51ba86df7ae2a04490479b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests.test_a_partial_update_leaves_untouched_fields_alone",
      "name": "test_a_partial_update_leaves_untouched_fields_alone",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L205-L218",
      "signature": "def test_a_partial_update_leaves_untouched_fields_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d4b00328dedaea42b4922183cac50f51e6542036cfade85b50ebc1590e68167",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests.test_a_zero_dev_score_is_recorded_rather_than_treated_as_absent",
      "name": "test_a_zero_dev_score_is_recorded_rather_than_treated_as_absent",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L225-L227",
      "signature": "def test_a_zero_dev_score_is_recorded_rather_than_treated_as_absent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6299e405fa813d52b7d932d341f5497a27f424bbbca5cc6ea64b30b4f067508",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests.test_an_explicit_status_overrides_the_default",
      "name": "test_an_explicit_status_overrides_the_default",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L199-L203",
      "signature": "def test_an_explicit_status_overrides_the_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0c335f4e876eea1b1d279e951b7482da4cd6284ffe675347755ae23a23c9b12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#EvidenceTests.test_evidence_defaults_the_status_to_executed",
      "name": "test_evidence_defaults_the_status_to_executed",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L190-L197",
      "signature": "def test_evidence_defaults_the_status_to_executed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed5e639e96266d39b2dcc5e889eb4dda03a5d8f408bd9adeacbb73c539316cfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#InitTests",
      "name": "InitTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L74-L127",
      "signature": "class InitTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d69148c7732e58e70081ecbbca9606edd9968e8e92e71fa5d63fe43d6c0b0914",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#InitTests.test_commands_before_init_explain_how_to_start",
      "name": "test_commands_before_init_explain_how_to_start",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L124-L127",
      "signature": "def test_commands_before_init_explain_how_to_start(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4af08b5377c28508326c22b4605ed1461f4d9b8853d3c60c6734d9acf085bed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InitTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#InitTests.test_force_overwrites_and_resets_the_counter",
      "name": "test_force_overwrites_and_resets_the_counter",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L104-L122",
      "signature": "def test_force_overwrites_and_resets_the_counter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc9e4abccd163ac99f8b38e99238b3663881d3e8b115997c9441cd3ffe631d63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InitTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#InitTests.test_init_creates_both_state_files_with_a_root_node",
      "name": "test_init_creates_both_state_files_with_a_root_node",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L75-L86",
      "signature": "def test_init_creates_both_state_files_with_a_root_node(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce3c1507bb2171a47c5b2064074f220c86ba925191b835c472ebf3ec2ca77e33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InitTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#InitTests.test_init_refuses_to_erase_an_existing_run",
      "name": "test_init_refuses_to_erase_an_existing_run",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L98-L102",
      "signature": "def test_init_refuses_to_erase_an_existing_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "754e01dbd5eef981318054f5f1030af4512bd638f2a50878037f6f0b0203da61",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InitTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#InitTests.test_run_config_records_the_budget_and_starts_unspent",
      "name": "test_run_config_records_the_budget_and_starts_unspent",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L88-L96",
      "signature": "def test_run_config_records_the_budget_and_starts_unspent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd752e90c4dd9458014d06955ad47d31f3d16b300e6b8b546c36344fc9a30c81",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InitTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests",
      "name": "MergeGateTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L307-L361",
      "signature": "class MergeGateTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fc7016557b5447e992cd8d050e43340a6322102a545c491d0bfff8cb4001514",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "name": "_prepare",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L308-L311",
      "signature": "def _prepare(self, direction: str = \"max\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "0b8609dd8b6d7cbb0dfc2b4d856e82aa607c9f15628619c7b006a1e0a459710c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests.test_a_negative_score_can_still_be_the_first_best",
      "name": "test_a_negative_score_can_still_be_the_first_best",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L357-L361",
      "signature": "def test_a_negative_score_can_still_be_the_first_best(self) -> None: # `better()` special-cases only `old is None`, not falsiness.",
      "exported": true,
      "origin": "ast",
      "body_hash": "061185f1843bfce25b2dc57ee3925fbf65da77b0b05af2155d7fc553729689b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests.test_a_worse_candidate_is_rejected_and_leaves_m_best_alone",
      "name": "test_a_worse_candidate_is_rejected_and_leaves_m_best_alone",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L324-L334",
      "signature": "def test_a_worse_candidate_is_rejected_and_leaves_m_best_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "330ab30ec9634f38fa497dce10257692dcf3a72b535638658455519fe164efdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests.test_an_exact_tie_does_not_displace_the_incumbent",
      "name": "test_an_exact_tie_does_not_displace_the_incumbent",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L344-L349",
      "signature": "def test_an_exact_tie_does_not_displace_the_incumbent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6199a2956efb2bd2541477b509cba5af6565fd3df0863211c364b8ef97249ff4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests.test_minimisation_runs_invert_the_comparison",
      "name": "test_minimisation_runs_invert_the_comparison",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L336-L342",
      "signature": "def test_minimisation_runs_invert_the_comparison(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2935c5b8d16664e07106ee83297108be3bdbe761dc2d08fddaf75c111a1dd1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests.test_the_first_candidate_always_passes",
      "name": "test_the_first_candidate_always_passes",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L313-L322",
      "signature": "def test_the_first_candidate_always_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e109a17c6e4a0c6904cc78020e3f012f7208bf3c126c18e352fd5f651a21db8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#MergeGateTests.test_the_node_branch_ref_is_used_when_none_is_supplied",
      "name": "test_the_node_branch_ref_is_used_when_none_is_supplied",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L351-L355",
      "signature": "def test_the_node_branch_ref_is_used_when_none_is_supplied(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aea7f1f5fb97494dbb5081d6fb740fa9dcf74addf9e9faf05592a1a1c40ec5cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeGateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests",
      "name": "NodeTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L130-L180",
      "signature": "class NodeTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "14b9431a1370f06d37b66a3267bdf66d8c2ee16c19523e95ba80d1e4c2604f5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L131-L133",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e928ab5c92bd36945675fd6a9345e426bd9e527ee7ce1d798a4a748be046cff2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.test_an_unknown_parent_is_refused_with_a_pointer_to_status",
      "name": "test_an_unknown_parent_is_refused_with_a_pointer_to_status",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L168-L171",
      "signature": "def test_an_unknown_parent_is_refused_with_a_pointer_to_status(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "abe8e3ccef98e587bf444ce2d3ffcb42d0416095973a0af9b25c9333ac0d5c7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.test_depth_one_is_a_direction_and_deeper_is_an_intervention",
      "name": "test_depth_one_is_a_direction_and_deeper_is_an_intervention",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L155-L159",
      "signature": "def test_depth_one_is_a_direction_and_deeper_is_an_intervention(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "69cd37237c0cc3441d51d913df3e96d3e1d53b731752690232ae37b9dec30351",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.test_exceeding_max_depth_warns_but_still_records",
      "name": "test_exceeding_max_depth_warns_but_still_records",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L161-L166",
      "signature": "def test_exceeding_max_depth_warns_but_still_records(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9769b8878717d30eb3ff7b7348fee74aa13d0e5ccd2ccca4a22876c570815c5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.test_ids_are_sequential_and_depth_is_derived_from_the_parent",
      "name": "test_ids_are_sequential_and_depth_is_derived_from_the_parent",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L135-L145",
      "signature": "def test_ids_are_sequential_and_depth_is_derived_from_the_parent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f260935cb19f08c2939066d89e5c6acfc8a8e2e9984f8e198cf2625fbcf9e7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.test_new_nodes_start_pending_with_empty_evidence",
      "name": "test_new_nodes_start_pending_with_empty_evidence",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L147-L153",
      "signature": "def test_new_nodes_start_pending_with_empty_evidence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fd87b65a10238afce9d9787ff1fd43e1b070925d1c41e62d8a7110a38ea0b03",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#NodeTests.test_status_must_come_from_the_documented_set",
      "name": "test_status_must_come_from_the_documented_set",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L173-L180",
      "signature": "def test_status_must_come_from_the_documented_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f00d204b2a312fa13ec406e6c956e243850b6fa59d7885e125ad3311d531be12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PersistenceTests",
      "name": "PersistenceTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L444-L457",
      "signature": "class PersistenceTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8911558681ea7e4a572a4b04208d10d82ed4ff91bfedcd18aeff068e44ad56fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#PersistenceTests.test_state_survives_a_fresh_read",
      "name": "test_state_survives_a_fresh_read",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L453-L457",
      "signature": "def test_state_survives_a_fresh_read(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "062cae6dd9bc6d0c35c6661ecbe4166f015a7f95498998840c1022c228e56388",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PersistenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PersistenceTests.test_writes_leave_no_temporary_file_behind",
      "name": "test_writes_leave_no_temporary_file_behind",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L445-L451",
      "signature": "def test_writes_leave_no_temporary_file_behind(self) -> None: # _save writes to a .tmp sibling and replaces, so a crash cannot leave # a half-written tree.json -- but it must also clean up on success.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8dbb2f5cf133b3a8ddd3880ee5e4ba9b0a4b5b554aa715aae3dd4fc654f09e2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PersistenceTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ProjectionTests",
      "name": "ProjectionTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L424-L441",
      "signature": "class ProjectionTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cd0dd0b52539738dca0d1cad995f01632ded61cbfa6933a621bd62f426673c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#ProjectionTests.test_observe_reports_the_objective_and_every_node",
      "name": "test_observe_reports_the_objective_and_every_node",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L425-L433",
      "signature": "def test_observe_reports_the_objective_and_every_node(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff8b86b5482c138622e0a399436098e058b97ee244b700b4bd128c584ed95dc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProjectionTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ProjectionTests.test_status_renders_the_tree_without_mutating_it",
      "name": "test_status_renders_the_tree_without_mutating_it",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L435-L441",
      "signature": "def test_status_renders_the_tree_without_mutating_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6932cdceffc80f343d7575a31a0bee79b664332e3ce73315f26e179259293b7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProjectionTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests",
      "name": "PropagateTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L230-L266",
      "signature": "class PropagateTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13c4444ac4e9cee575a52231d6fa4d1e86f7d4afba944badbfbd78cfb3de5b10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L231-L235",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ded577b5cf91c4706bf5b72092d1924ba3c31e1498292331f261ee2434d612c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests.test_default_propagation_reaches_only_the_immediate_parent",
      "name": "test_default_propagation_reaches_only_the_immediate_parent",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L237-L241",
      "signature": "def test_default_propagation_reaches_only_the_immediate_parent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a187195a747a9fddaa8ad322190b16992a255585f898bad92ee4a9dee55c497",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests.test_every_line_records_which_node_it_came_from",
      "name": "test_every_line_records_which_node_it_came_from",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L259-L261",
      "signature": "def test_every_line_records_which_node_it_came_from(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1570ad71621307921fe2341b9f8acdfe075457f2839977342bcc938d4f82e610",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests.test_insights_accumulate_rather_than_overwrite",
      "name": "test_insights_accumulate_rather_than_overwrite",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L251-L257",
      "signature": "def test_insights_accumulate_rather_than_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20be4ff8eb0afd90311730bf32a8b08974b939907e493020d5ce6f132d0962d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests.test_the_root_has_no_ancestors_to_propagate_to",
      "name": "test_the_root_has_no_ancestors_to_propagate_to",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L263-L266",
      "signature": "def test_the_root_has_no_ancestors_to_propagate_to(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "464ae1eb587b0a1adaa68a8b511a2cc366563cab2be3044a32b62afc02552d16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PropagateTests.test_to_root_reaches_every_ancestor",
      "name": "test_to_root_reaches_every_ancestor",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L243-L249",
      "signature": "def test_to_root_reaches_every_ancestor(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4cbcaa55f5eb1d306c47e039b45285e6625076e49898c5c83df2d1b34b5c01d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PruneTests",
      "name": "PruneTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L269-L304",
      "signature": "class PruneTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d4f36155e1b1cacc91a2708c067add5f6c29ab3a3d5edd2beb2be02d43ebf40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#PruneTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L270-L275",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4603dd9e61f2e8fce12669057195c42ced2413379f415dc223404378b50afbea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PruneTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PruneTests.test_a_merged_node_survives_a_prune_of_its_ancestor",
      "name": "test_a_merged_node_survives_a_prune_of_its_ancestor",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L291-L300",
      "signature": "def test_a_merged_node_survives_a_prune_of_its_ancestor(self) -> None: # A merged node is already in M_best; pruning its parent must not # retroactively mark the promoted work as a dead end.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fbb9067b1f216da5df47d87ba1b0791245277cfa2cbf22144ea5cdca8bebaff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PruneTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PruneTests.test_pruning_takes_the_whole_subtree",
      "name": "test_pruning_takes_the_whole_subtree",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L277-L283",
      "signature": "def test_pruning_takes_the_whole_subtree(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29f057dc228b025d30203f2ad393d37a723081f4001fd065d33f72858030e71c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PruneTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PruneTests.test_pruning_the_root_is_a_no_op",
      "name": "test_pruning_the_root_is_a_no_op",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L302-L304",
      "signature": "def test_pruning_the_root_is_a_no_op(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "220621eea92559426d6cc74b11584e6a2919153f42e4551bd2294b23edafb825",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PruneTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#PruneTests.test_the_reason_is_recorded_on_the_target_only",
      "name": "test_the_reason_is_recorded_on_the_target_only",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L285-L289",
      "signature": "def test_the_reason_is_recorded_on_the_target_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24fad5d22f0057930035bbfb361c11cbe950fb34e4616a45b71813186d7ea2c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PruneTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests",
      "name": "ValidateTests",
      "kind": "class",
      "path": "tests/arbor/test_scripts.py",
      "span": "L382-L421",
      "signature": "class ValidateTests(ArborRunTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2dca8cf203ec04a0f6eaf7c9509f26b17f2d555acf01b24e68f5627184f4c15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests._write_tree",
      "name": "_write_tree",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L388-L389",
      "signature": "def _write_tree(self, tree: dict) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "bbb393875e5a82cff803be79d04144a38a3cf0cccfa50a0ad2fb69ae8feb13f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L383-L386",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "32944c867005f234064e95c81144f5fc5163ea3379705fa634cd728d6ff721c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests.test_a_best_node_that_was_never_merged_is_caught",
      "name": "test_a_best_node_that_was_never_merged_is_caught",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L410-L415",
      "signature": "def test_a_best_node_that_was_never_merged_is_caught(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd4ac508d89430e200ea5d7f13aee7fc8c36b14983e0deb04c17b93869e682df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests.test_a_dangling_parent_is_caught",
      "name": "test_a_dangling_parent_is_caught",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L396-L401",
      "signature": "def test_a_dangling_parent_is_caught(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c01014cbd53f50c548c605caf98547a030fd2eb2eee6dd29922a79169e08e0e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests.test_a_healthy_tree_validates",
      "name": "test_a_healthy_tree_validates",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L391-L394",
      "signature": "def test_a_healthy_tree_validates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc205c8c38ff308f1b7d1c3ecb1afea879355b5e92e21c39d1b3e6e9aaa7f95c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests.test_a_merged_best_node_validates",
      "name": "test_a_merged_best_node_validates",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L417-L421",
      "signature": "def test_a_merged_best_node_validates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "27ee0f0fc7d80ae409b8dc4249a7843990c71abd1e669b0a7eec8ec15a0f5ed5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arbor/test_scripts.py#ValidateTests.test_an_invalid_status_is_caught",
      "name": "test_an_invalid_status_is_caught",
      "kind": "method",
      "path": "tests/arbor/test_scripts.py",
      "span": "L403-L408",
      "signature": "def test_an_invalid_status_is_caught(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd9631709966c57ca72642dccbb01d7f235f6507d3f222e44913085a0f21fb8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L1-L128",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "857c2c0c33d12db40f3d353e63cd20d8af0b1142484fc04b95ad922d80567ad0",
      "chars": 4998,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "name": "InferenceWrapperTests",
      "kind": "class",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L46-L109",
      "signature": "class InferenceWrapperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "08ff763f2f95c333da9664f22d56b86f9092155d7b63c4c0dfaaf5acdc484114",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "name": "run_inference",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L62-L69",
      "signature": "def run_inference(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24b6542d993f518c53e51277773e12523d8c970045225a75e3d85a59166ae981",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L47-L60",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e66923ec30bc2bb5b4742473720ac1aca381b1f21650a293ad01bbc662b218ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_a_tf_file_restricts_the_candidate_regulators",
      "name": "test_a_tf_file_restricts_the_candidate_regulators",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L83-L87",
      "signature": "def test_a_tf_file_restricts_the_candidate_regulators(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "def744e9fd2e805d240c28256141a0cb34bcac6d836c36a919e41683436fa285",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_no_index_column_is_written",
      "name": "test_no_index_column_is_written",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L105-L109",
      "signature": "def test_no_index_column_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ce879bd92dbc36a8e2fc51875ada43c2cf5b7da485af03061550d636c230ccc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_expression_matrix_is_read_with_genes_as_columns",
      "name": "test_the_expression_matrix_is_read_with_genes_as_columns",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L71-L75",
      "signature": "def test_the_expression_matrix_is_read_with_genes_as_columns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e369a40bb94dd92d576f102c8506885c82327ab4ddd3d56ff00cc2d62e043f4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_link_limit_is_forwarded_and_defaults_to_unlimited",
      "name": "test_the_link_limit_is_forwarded_and_defaults_to_unlimited",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L93-L95",
      "signature": "def test_the_link_limit_is_forwarded_and_defaults_to_unlimited(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d99c9adc56559cb08869d9e6a927b52be3954331da74ca4900ad1afb78ef648",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_network_is_written_headerless_and_tab_separated",
      "name": "test_the_network_is_written_headerless_and_tab_separated",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L97-L103",
      "signature": "def test_the_network_is_written_headerless_and_tab_separated(self) -> None: # Arboreto's own consumers expect three unlabelled columns.",
      "exported": true,
      "origin": "ast",
      "body_hash": "47bf5f2626379b2dad0a2263075e97d3ee2e3b7d859096c0f5489d23a17e08bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_seed_is_forwarded_so_runs_are_reproducible",
      "name": "test_the_seed_is_forwarded_so_runs_are_reproducible",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L89-L91",
      "signature": "def test_the_seed_is_forwarded_so_runs_are_reproducible(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "565952de837f99eb63302e23f92e088bf149e0af95ebcdff9778ac60b9ba2fe8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_without_a_tf_file_every_gene_is_a_candidate_regulator",
      "name": "test_without_a_tf_file_every_gene_is_a_candidate_regulator",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L77-L81",
      "signature": "def test_without_a_tf_file_every_gene_is_a_candidate_regulator(self) -> None: # The sentinel is the string 'all'; an empty list would silently return # an empty network.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f1fcf2701ed7fa8aafd0bbf3219e8ee5d272ff92d9d1c7518b72b8fc9ec3e2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InferenceWrapperTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#ParserTests",
      "name": "ParserTests",
      "kind": "class",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L112-L123",
      "signature": "class ParserTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a48c5f18a33583420efe6edde3287c2e62a902040a36e7d49fd03f15d63e535",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/arboreto/test_scripts.py#ParserTests.test_the_documented_flags_are_all_accepted",
      "name": "test_the_documented_flags_are_all_accepted",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L113-L117",
      "signature": "def test_the_documented_flags_are_all_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9a9b866daee6c662c7f66be903caa9457c6aa862a39025f5137d63252a3ccff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/arboreto/test_scripts.py#ParserTests.test_the_positional_arguments_are_required",
      "name": "test_the_positional_arguments_are_required",
      "kind": "method",
      "path": "tests/arboreto/test_scripts.py",
      "span": "L119-L123",
      "signature": "def test_the_positional_arguments_are_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef5a0e3154182d6821d640f462677c15697a52069e5d6d44e04d2dab52a761ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/autoskill/conftest.py",
      "name": "conftest.py",
      "kind": "file",
      "path": "tests/autoskill/conftest.py",
      "span": "L1-L6",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c27cf8d92c2522bcda29d19e684688742f8450f0e2c79959c07d6bbd1c4fca13",
      "chars": 159,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/smoke_lmstudio.py",
      "name": "smoke_lmstudio.py",
      "kind": "file",
      "path": "tests/autoskill/smoke_lmstudio.py",
      "span": "L1-L62",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "60fadd118c1a6a6eaa3d57138fae6abdb8f24a0a7cf91112619d413d4295f957",
      "chars": 2064,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/smoke_lmstudio.py#main",
      "name": "main",
      "kind": "function",
      "path": "tests/autoskill/smoke_lmstudio.py",
      "span": "L22-L57",
      "signature": "def main() -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "f368125bb6c00a789b2139fce7a952d4bc21e44e70309e7611dcd43193237997",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/smoke_lmstudio.py#main.embedder",
      "name": "embedder",
      "kind": "function",
      "path": "tests/autoskill/smoke_lmstudio.py",
      "span": "L34-L35",
      "signature": "def embedder(text: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3b06ad05425c8b3ef1996fc2a40f77f119ca84872b844bff664180b69ab6b80",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py",
      "name": "test_backends.py",
      "kind": "file",
      "path": "tests/autoskill/test_backends.py",
      "span": "L1-L122",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "6d22842de29306ce856346d992683075db3148e379fb7856f27d4ee9d14e6edf",
      "chars": 4252,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#_mock_client",
      "name": "_mock_client",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L7-L8",
      "signature": "def _mock_client(handler, base_url=\"\")",
      "exported": false,
      "origin": "ast",
      "body_hash": "238024db61b885da6e214858681e55a1b60d0c6ccfb0f8fa869ea333cefa972c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry",
      "name": "test_claude_backend_honors_custom_base_url_for_foundry",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L34-L45",
      "signature": "def test_claude_backend_honors_custom_base_url_for_foundry()",
      "exported": true,
      "origin": "ast",
      "body_hash": "26c1bc07d170907edd19b5a47ace63404d070c8ee49e563147ac91fa85b1a06d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L37-L39",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cfda4c9c6d65bc119aa4ce4fc0c9c9f99c13a3c31f175c9f23c83a6da2bc15a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers",
      "name": "test_claude_backend_posts_to_v1_messages_with_auth_headers",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L11-L31",
      "signature": "def test_claude_backend_posts_to_v1_messages_with_auth_headers()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a8b3fd8aade7a34fcd8707c52f30c1e70d960fa27c8062d575b29613ece39b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L14-L16",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "72793110c8f399b187542cbdcd48cfeeab4258253e3593cec8ba8085d0e685b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error",
      "name": "test_claude_backend_raises_on_http_error",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L48-L55",
      "signature": "def test_claude_backend_raises_on_http_error()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb4b93dee492cedcd0d770de965bf1f54ad93f76a4a03386b4bffe5738e5a622",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L49-L50",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5fcd23700379ed9425c8985a01219bc5bf4bdfb0234ded1748ea33a8e49f7a00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions",
      "name": "test_local_backend_posts_to_chat_completions",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L58-L76",
      "signature": "def test_local_backend_posts_to_chat_completions()",
      "exported": true,
      "origin": "ast",
      "body_hash": "79c5a8e3ed3abe322a5d2da337f29c21de4451a5d0af38d43f7020cbda0ea8eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L61-L65",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e4c3e2d9b781a7baab76e8c21addbb5367df925d8fb782ea6530f0fdd62f81a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_make_backend_raises_on_unknown_backend",
      "name": "test_make_backend_raises_on_unknown_backend",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L113-L115",
      "signature": "def test_make_backend_raises_on_unknown_backend()",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6c73857c3ace5478368d3e877fd7edf14c53f56482f354471427c111cee2ab0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_make_backend_raises_when_anthropic_key_missing",
      "name": "test_make_backend_raises_when_anthropic_key_missing",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L118-L121",
      "signature": "def test_make_backend_raises_when_anthropic_key_missing(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a172a4e82088466da72ccf796608cc0905edee31ab292c83fe195d55d576117",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_make_backend_returns_claude_backend_for_claude_config",
      "name": "test_make_backend_returns_claude_backend_for_claude_config",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L79-L87",
      "signature": "def test_make_backend_returns_claude_backend_for_claude_config(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6da1b8458984126c9c51a11cc51dca27b6fd5fec65eeb09985ec5acb7adb6427",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_make_backend_returns_claude_backend_with_foundry_base_url",
      "name": "test_make_backend_returns_claude_backend_with_foundry_base_url",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L90-L101",
      "signature": "def test_make_backend_returns_claude_backend_with_foundry_base_url(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "482c61321abd68de5e5417f221efdfb129f3eec8088f05b2ced065ee81f47dc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_backends.py#test_make_backend_returns_local_backend_for_local_config",
      "name": "test_make_backend_returns_local_backend_for_local_config",
      "kind": "function",
      "path": "tests/autoskill/test_backends.py",
      "span": "L104-L110",
      "signature": "def test_make_backend_returns_local_backend_for_local_config()",
      "exported": true,
      "origin": "ast",
      "body_hash": "310310f77db8ccd6d558a3016e6fb645c3f949c71af92114d1beb040e8d562cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py",
      "name": "test_cli.py",
      "kind": "file",
      "path": "tests/autoskill/test_cli.py",
      "span": "L1-L71",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8adeba1cf92ad081b2c2cfea459b9182bf7c9f2a11f15e3883863082f9e15c55",
      "chars": 1944,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_dispatches_to_doctor_subcommand",
      "name": "test_dispatches_to_doctor_subcommand",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L24-L35",
      "signature": "def test_dispatches_to_doctor_subcommand(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ebe2a2962193f27869322c19381b11ee0f9fc7e2b13e17e925140cde642a359",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_dispatches_to_doctor_subcommand.fake_doctor_main",
      "name": "fake_doctor_main",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L27-L29",
      "signature": "def fake_doctor_main(argv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba075aab51afe9aa2712a41c6844cf29f56597490f0356f73679818a31169365",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_dispatches_to_promote_subcommand",
      "name": "test_dispatches_to_promote_subcommand",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L38-L49",
      "signature": "def test_dispatches_to_promote_subcommand(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8524568b869bb03710789515ea735e28bf875cb2ea008eadcae692f05bae8e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_dispatches_to_promote_subcommand.fake_promote_main",
      "name": "fake_promote_main",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L41-L43",
      "signature": "def fake_promote_main(argv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fdb1d900a0f5ef0329e20d4264814facc8bde6773127478d44429f3dd7423927",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_dispatches_to_run_subcommand",
      "name": "test_dispatches_to_run_subcommand",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L10-L21",
      "signature": "def test_dispatches_to_run_subcommand(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff20b23a3d4e76e11f8a84a0459aa8c93a6b0e95dcb257247d3f8ba5a7d6add6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_dispatches_to_run_subcommand.fake_run_main",
      "name": "fake_run_main",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L13-L15",
      "signature": "def fake_run_main(argv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "883307b3984e5d2bba44723ff804f8e38fdc1e4a0681007c1599587e3c9259a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_missing_subcommand_errors_out",
      "name": "test_missing_subcommand_errors_out",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L58-L60",
      "signature": "def test_missing_subcommand_errors_out()",
      "exported": true,
      "origin": "ast",
      "body_hash": "371ec2271919bb719a3432aa90b1a0f3f35a746752b0bd2a52554ff9b404bea3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_propagates_nonzero_exit_code",
      "name": "test_propagates_nonzero_exit_code",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L52-L55",
      "signature": "def test_propagates_nonzero_exit_code(monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f84472537aa847f818750c20ce24eb90db1d6c02b7a5b2539a9a7e6e7a1b99a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cli.py#test_unknown_subcommand_errors_out",
      "name": "test_unknown_subcommand_errors_out",
      "kind": "function",
      "path": "tests/autoskill/test_cli.py",
      "span": "L63-L65",
      "signature": "def test_unknown_subcommand_errors_out()",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e93d67eb6849d62e991d8a2b707606ec76f0d46307200d2680eb7a95d2ea99c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py",
      "name": "test_cluster.py",
      "kind": "file",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L1-L68",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a63ca0c8044810eadb75cc8a209786032ff17ea4e05ba0524ecb6c95f04ce5ee",
      "chars": 2790,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#_evt",
      "name": "_evt",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L4-L5",
      "signature": "def _evt(ts: int, app: str, title: str = \"\", text: str = \"\") -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "c42a8d1985cdd21814d6c3b345da8ede2fb772488b602db89f06fa09b699441a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_cluster_summary_exposes_total_duration_and_example_titles",
      "name": "test_cluster_summary_exposes_total_duration_and_example_titles",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L52-L59",
      "signature": "def test_cluster_summary_exposes_total_duration_and_example_titles()",
      "exported": true,
      "origin": "ast",
      "body_hash": "03e2ab3fe0a5eaed9ac2ec6c6e65c4e084a2d879fb417e325a6b21a02f80ad15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_clusters_group_sessions_with_identical_app_signatures",
      "name": "test_clusters_group_sessions_with_identical_app_signatures",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L40-L49",
      "signature": "def test_clusters_group_sessions_with_identical_app_signatures()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4af57d724bee2a3e569da4a98a62f77a371b97a29f217b46674b0f7745e5d216",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_contiguous_events_form_one_session",
      "name": "test_contiguous_events_form_one_session",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L8-L13",
      "signature": "def test_contiguous_events_form_one_session()",
      "exported": true,
      "origin": "ast",
      "body_hash": "31da4dd2b69a43eae660e9da135778b1a1cef9911c1cc9a828336b07f864f422",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_idle_gap_splits_sessions",
      "name": "test_idle_gap_splits_sessions",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L16-L20",
      "signature": "def test_idle_gap_splits_sessions()",
      "exported": true,
      "origin": "ast",
      "body_hash": "717575790380b13b46a9ba7aae94b88bd8be14758d0adf474463f8f5b2de0c99",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_session_records_distinct_apps_in_order_of_first_appearance",
      "name": "test_session_records_distinct_apps_in_order_of_first_appearance",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L29-L37",
      "signature": "def test_session_records_distinct_apps_in_order_of_first_appearance()",
      "exported": true,
      "origin": "ast",
      "body_hash": "db96b6dde0c82653d4925bb27001ba7a42278677a59f40b79d75b41e2153172f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_sessions_below_minimum_are_dropped",
      "name": "test_sessions_below_minimum_are_dropped",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L23-L26",
      "signature": "def test_sessions_below_minimum_are_dropped()",
      "exported": true,
      "origin": "ast",
      "body_hash": "34d6c8ab07fe430bb1ed68d08c3e9cb5c3dbd294cbcb2d71ad2f093b87d8a734",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_cluster.py#test_singleton_clusters_are_dropped_when_below_min_cluster_size",
      "name": "test_singleton_clusters_are_dropped_when_below_min_cluster_size",
      "kind": "function",
      "path": "tests/autoskill/test_cluster.py",
      "span": "L62-L67",
      "signature": "def test_singleton_clusters_are_dropped_when_below_min_cluster_size()",
      "exported": true,
      "origin": "ast",
      "body_hash": "23b0b3f213517d06bbcb07abc6392c3065a8567c0f07ebf8e61f00570787dc41",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py",
      "name": "test_doctor.py",
      "kind": "file",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L1-L109",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4ccc4a4215a385e36168ca025aa64774770e669efc376788fa6912807ca8ec0e",
      "chars": 3041,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#_config",
      "name": "_config",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L6-L11",
      "signature": "def _config(tmp_path: Path) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "f14c2dc8dc2ae48b888c116940799e488e12f2e8482d8706ca9bdc68195bc154",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#_err_probe",
      "name": "_err_probe",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L18-L19",
      "signature": "def _err_probe(*_args, **_kwargs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "acaef7086c77d56e5c961a7d565fdf95744493aa858194620a10aa46ed2cea65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#_ok_probe",
      "name": "_ok_probe",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L14-L15",
      "signature": "def _ok_probe(*_args, **_kwargs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e3cc4780c78c5666a9fb0be4f6d1e74f802dd3fcef9a226341da0e0469cefa7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_check_all_green",
      "name": "test_check_all_green",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L22-L33",
      "signature": "def test_check_all_green(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbe7c25e24113f0bbc31d41283e7fa33542528b16d2e294ee031878c39cf572c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_check_flags_unknown_backend",
      "name": "test_check_flags_unknown_backend",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L68-L75",
      "signature": "def test_check_flags_unknown_backend(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "22324361c52fb450580431ac94c6bcf5f74ad632c71520d1a7d937940b394715",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_check_reports_llm_failure",
      "name": "test_check_reports_llm_failure",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L46-L53",
      "signature": "def test_check_reports_llm_failure(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b28f558795ea45173b6205bc6d3c6fd01b434d38c61e0efb91b2d437d5ca75fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_check_reports_missing_skills_dir",
      "name": "test_check_reports_missing_skills_dir",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L56-L65",
      "signature": "def test_check_reports_missing_skills_dir(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f86cb1255eb2176d378e14c9af7d8ff7128c91f7b12f0e07022adfde86c5b9e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_check_reports_screenpipe_failure",
      "name": "test_check_reports_screenpipe_failure",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L36-L43",
      "signature": "def test_check_reports_screenpipe_failure(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0855eeb9743571a4cb8ebd4377ff72453d94599904370b3c016096c289e9b44f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_cli_all_green_returns_zero",
      "name": "test_cli_all_green_returns_zero",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L78-L92",
      "signature": "def test_cli_all_green_returns_zero(tmp_path: Path, capsys, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "34daa6b35568f64ee3bb52518ea9c912d4a0f17df9c7661e03b881a25e97b2fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_doctor.py#test_cli_any_failure_returns_nonzero",
      "name": "test_cli_any_failure_returns_nonzero",
      "kind": "function",
      "path": "tests/autoskill/test_doctor.py",
      "span": "L95-L108",
      "signature": "def test_cli_any_failure_returns_nonzero(tmp_path: Path, capsys, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fb08ae438329dbae65ee61c2e4da0103c92658e880bfe8568015e00ce591423",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py",
      "name": "test_e2e.py",
      "kind": "file",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L1-L328",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bd450f70f35634a6921a1e00ae13885b15643cc200ae17508b84dd164edc4b36",
      "chars": 12148,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_base_config",
      "name": "_base_config",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L138-L141",
      "signature": "def _base_config()",
      "exported": false,
      "origin": "ast",
      "body_hash": "76fd70e47745ae8235e4b1cb7d6ca1525acf0cc6c0d02b27696728ed4b47b9fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler",
      "name": "_FakeLMStudioHandler",
      "kind": "class",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L100-L129",
      "signature": "class _FakeLMStudioHandler",
      "exported": false,
      "origin": "ast",
      "body_hash": "344e90acdf9ab23928a2a2b2000f0f8d59c3c262ec49f76842119e84cd5a589e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L106-L129",
      "signature": "def __call__(self, request)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4146c0b31e486880d75ec9b0f3ff704b76c31d9dab74b8fdb33bb1ca802d4204",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "_FakeLMStudioHandler"
    },
    {
      "id": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L103-L104",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a44c57c7a69653923aea69bbd6ab575a304fa4ed5e79580b3bdaf0938a42653",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "_FakeLMStudioHandler"
    },
    {
      "id": "tests/autoskill/test_e2e.py#_keyword_embedder",
      "name": "_keyword_embedder",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L132-L135",
      "signature": "def _keyword_embedder(text: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "dcab8854dc8240508d5b0c0a6b47536c8491d27d521b86ca08763a8295cc3c6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_ocr",
      "name": "_ocr",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L51-L54",
      "signature": "def _ocr(ts: str, app: str, title: str, text: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "b25a7eec31be2c63ce1f888c4b6a4b8f0ae8b409f2beb833010df9eb304f9444",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_realistic_day",
      "name": "_realistic_day",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L57-L79",
      "signature": "def _realistic_day() -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "0e481fcfc46da20d810220195a1e539ec1d9377f3bc36fdff746c11fb6270a87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_screenpipe_client",
      "name": "_screenpipe_client",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L82-L95",
      "signature": "def _screenpipe_client(events: list) -> httpx.Client: # Paginate in chunks of 20 to exercise fetch_window's pagination loop.",
      "exported": false,
      "origin": "ast",
      "body_hash": "50163a3e09480ff344f9053e3c131935e112f9dff6a3606cc8ecc5f1707eb76a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_screenpipe_client.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L86-L93",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b89a0d0c8d240a8c0d48bc65f41c3af0a0acd7cd0eb04ca25718db355a8612f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "name": "_seed_skills_dir",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L33-L46",
      "signature": "def _seed_skills_dir(root: Path) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "d137f716c3a9cb3770867c73d587950e24bcc83481bf02fb1c7efedd4b72f74d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#_write_skill",
      "name": "_write_skill",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L27-L30",
      "signature": "def _write_skill(root: Path, name: str, description: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "71bc17c3dfad5601855d6eeddfc556f178cc1589025967eac74a5f79bf21edff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window",
      "name": "test_auth_token_threads_through_run_into_fetch_window",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L236-L263",
      "signature": "def test_auth_token_threads_through_run_into_fetch_window(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "47313cb921b5f84193a347a52896442b7d8e46913d6b879f5c4f4ad9b72350d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L243-L247",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e8016b9f5af8145d1a7e35b66c9ca08ef2cd0aa6470fbbc6a841a682cef7f0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model",
      "name": "test_cli_dry_run_writes_plan_without_backend_or_embedding_model",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L266-L327",
      "signature": "def test_cli_dry_run_writes_plan_without_backend_or_embedding_model(tmp_path, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "14ba6c5e213565161f6e54a788ea8b86119dc4528c5a5c9e539e2c08701499ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L294-L301",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "88100201737c3900a6483ea538aad09ad282cb7526269e3f8f4f79725548d557",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "name": "test_full_pipeline_produces_report_and_drafts",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L146-L199",
      "signature": "def test_full_pipeline_produces_report_and_drafts(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de68f3a903c218b60ef744986cef89675f3805e9e074bab3c495d76fc6d515f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "name": "test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "kind": "function",
      "path": "tests/autoskill/test_e2e.py",
      "span": "L202-L233",
      "signature": "def test_pipeline_redaction_prevents_secrets_leaving_the_host(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a3a256719c65dda267347bb6079bd667f482e0d40e374d282cbe12e3a9880b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py",
      "name": "test_fetch_window.py",
      "kind": "file",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L1-L112",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1bcfb488a6f89f6f85f2658236701cb91e11f1b6e69fd69b04d970ef7bb4ae3e",
      "chars": 3774,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#_make_client",
      "name": "_make_client",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L7-L9",
      "signature": "def _make_client(handler)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c3fad9373d209329901f2648bccd4aaa404fabd18e69e1d620b1bac0ebefc956",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#_ocr_event",
      "name": "_ocr_event",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L12-L16",
      "signature": "def _ocr_event(ts: str, app: str, title: str, text: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "50c18cff19584275427b26943eda36540ebd66338ef7d75a1700b13db5c85940",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params",
      "name": "test_fetch_calls_search_endpoint_with_time_window_params",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L19-L33",
      "signature": "def test_fetch_calls_search_endpoint_with_time_window_params()",
      "exported": true,
      "origin": "ast",
      "body_hash": "77c364e70db5e88c4d5f331a4f6db16508b4c37c0ded00c9169cdb5be3c22545",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L22-L24",
      "signature": "def handler(request: httpx.Request) -> httpx.Response",
      "exported": true,
      "origin": "ast",
      "body_hash": "77551e4d76b03cc9833b1edc174169125cea21277f45178a6ce8da5ef58db1c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema",
      "name": "test_fetch_normalizes_ocr_events_into_unified_schema",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L36-L51",
      "signature": "def test_fetch_normalizes_ocr_events_into_unified_schema()",
      "exported": true,
      "origin": "ast",
      "body_hash": "89659d58b90503b3b207dff2d6b0dd45b530f8c74060efac971738336bb36771",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L37-L41",
      "signature": "def handler(request: httpx.Request) -> httpx.Response",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ce60904dcfb9f87109c0529467ff5f5a223f45526af23fa7ff2ff72bd6f12f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token",
      "name": "test_fetch_omits_auth_header_when_no_token",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L94-L103",
      "signature": "def test_fetch_omits_auth_header_when_no_token()",
      "exported": true,
      "origin": "ast",
      "body_hash": "178e644129b07572ffc0dd180c7a88685b710e0a68e5242bf7431f55c45f0b8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L97-L99",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "136683ff8bf72a613d27e91faeafc711f8226c0d723e3c0b25499b9d07cf6b49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected",
      "name": "test_fetch_paginates_until_all_results_collected",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L54-L71",
      "signature": "def test_fetch_paginates_until_all_results_collected()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9c0946d41a171ce2cf80c5a8f780d54b0d15ac29225a3a2d5cca15183088d9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L63-L66",
      "signature": "def handler(request: httpx.Request) -> httpx.Response",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d363c61b1ac156a2ff6756fc8e6a3d5149dad4cc67caecc8dfc848f34a0936d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error",
      "name": "test_fetch_raises_on_http_error",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L106-L111",
      "signature": "def test_fetch_raises_on_http_error()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f77195783b3c8849eee9fc6b0266d81b0eca62bfb8de4441a62e583c5f3dee3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L107-L108",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c682af34b11903b6c93b93807e9d83389a7c9f5334f9bfe2fc4c5f736610d78f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results",
      "name": "test_fetch_returns_empty_list_when_no_results",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L74-L79",
      "signature": "def test_fetch_returns_empty_list_when_no_results()",
      "exported": true,
      "origin": "ast",
      "body_hash": "d205b45763cda92435119154c044c69cf388d10ca27227f03d0d28a4358d8af2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L75-L76",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c90390ddb340ae9671e6361fb72a3302fad00adc03f2a0b5db5723118568f2fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided",
      "name": "test_fetch_sends_bearer_token_when_provided",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L82-L91",
      "signature": "def test_fetch_sends_bearer_token_when_provided()",
      "exported": true,
      "origin": "ast",
      "body_hash": "43400ff340c81b3d1b9dfc022288ef38ac61e66ef0bad2182149b83f00e0dbbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_fetch_window.py",
      "span": "L85-L87",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "136683ff8bf72a613d27e91faeafc711f8226c0d723e3c0b25499b9d07cf6b49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py",
      "name": "test_match_skills.py",
      "kind": "file",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L1-L76",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "65835c840ff70d8446c69de5ab20a16e6d54d72efacf6d33006cfc90f6a4e1c2",
      "chars": 2583,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#_keyword_embedder",
      "name": "_keyword_embedder",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L40-L43",
      "signature": "def _keyword_embedder(text: str): # deterministic, tiny vector indexed by known keywords",
      "exported": false,
      "origin": "ast",
      "body_hash": "33f76275b313be4919864e7a72eb21cb76b8e69a67e1f6b07986b02db6fd2852",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#_write_skill",
      "name": "_write_skill",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L15-L18",
      "signature": "def _write_skill(root: Path, name: str, description: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "71bc17c3dfad5601855d6eeddfc556f178cc1589025967eac74a5f79bf21edff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_reads_frontmatter",
      "name": "test_load_skill_descriptions_reads_frontmatter",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L21-L29",
      "signature": "def test_load_skill_descriptions_reads_frontmatter(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b07aa4e22b0618f53c193a999e1628e8307a579d442bf56af5eea3878fcb36a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_skips_directories_without_skill_md",
      "name": "test_load_skill_descriptions_skips_directories_without_skill_md",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L32-L37",
      "signature": "def test_load_skill_descriptions_skips_directories_without_skill_md(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9beda0dc52e81f1f061baaf1f0f533b2433c5896a8daf463fa454e8b78ac037",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#test_top_k_matches_handles_zero_vectors_without_crashing",
      "name": "test_top_k_matches_handles_zero_vectors_without_crashing",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L70-L75",
      "signature": "def test_top_k_matches_handles_zero_vectors_without_crashing()",
      "exported": true,
      "origin": "ast",
      "body_hash": "a52495ff41c091a9aee8ada9ff41f6a7ce4910cecbfb442608a0ceb5345f8ed6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#test_top_k_matches_ranks_by_cosine_similarity",
      "name": "test_top_k_matches_ranks_by_cosine_similarity",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L46-L58",
      "signature": "def test_top_k_matches_ranks_by_cosine_similarity()",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef45c5edffbf26be54ffd4ab532ea0d10f36900b43681a68bf619d84855eca64",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_match_skills.py#test_top_k_matches_returns_all_when_k_exceeds_skills",
      "name": "test_top_k_matches_returns_all_when_k_exceeds_skills",
      "kind": "function",
      "path": "tests/autoskill/test_match_skills.py",
      "span": "L61-L67",
      "signature": "def test_top_k_matches_returns_all_when_k_exceeds_skills()",
      "exported": true,
      "origin": "ast",
      "body_hash": "03d99ce0d6b5f1763959822b97fbbfe3d1a168dfa3803656227df09bb42d8ba5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py",
      "name": "test_promote.py",
      "kind": "file",
      "path": "tests/autoskill/test_promote.py",
      "span": "L1-L109",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "49cf26ff85aa76119722f05eac2f50ed700a51f3d9a099fdf796d6929482aaed",
      "chars": 3552,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "name": "_stage_proposed_skill",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L8-L13",
      "signature": "def _stage_proposed_skill(proposed_root: Path, kind: str, name: str, body: str = \"---\\nname: s\\ndescription: d\\n---\\n# x\") -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "18e9fb0a388937cc47bcf5746f1f23adc21be905a514fa7ffd1177297f6e663b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_cli_promotes_successfully",
      "name": "test_cli_promotes_successfully",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L63-L78",
      "signature": "def test_cli_promotes_successfully(tmp_path: Path, capsys)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f5638d2b818052463329577f5d11762e974996fc91d6808aa8b34e308eb555c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_cli_returns_nonzero_with_friendly_error_on_promote_failure",
      "name": "test_cli_returns_nonzero_with_friendly_error_on_promote_failure",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L81-L97",
      "signature": "def test_cli_returns_nonzero_with_friendly_error_on_promote_failure(tmp_path: Path, capsys)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de4e70eb6ddfdcf0082033562408c622024968f5efefe16ccd5b3f213b59888f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_preserves_nested_files",
      "name": "test_preserves_nested_files",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L40-L50",
      "signature": "def test_preserves_nested_files(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "67b6af15e2faa82c8b6cea2eb100776e112ec9d9b35d6235f0461f4cbf62b3cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_promotes_composition_recipe_into_skills_dir",
      "name": "test_promotes_composition_recipe_into_skills_dir",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L29-L37",
      "signature": "def test_promotes_composition_recipe_into_skills_dir(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5a98217d451d57bd1ce7e8c22338a07e656cadbb184dbd48d4329427a81c8fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_promotes_new_skill_into_skills_dir",
      "name": "test_promotes_new_skill_into_skills_dir",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L16-L26",
      "signature": "def test_promotes_new_skill_into_skills_dir(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d3d32226abbc3021477fd90d46ab22e451b789a9c4d59aca468f9905a7600fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_raises_when_proposed_skill_is_missing",
      "name": "test_raises_when_proposed_skill_is_missing",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L53-L60",
      "signature": "def test_raises_when_proposed_skill_is_missing(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "078b6a4bddfa8e649d9d311dbeede63010aa7666bd78735752a9630e9de292b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_promote.py#test_raises_when_target_already_exists",
      "name": "test_raises_when_target_already_exists",
      "kind": "function",
      "path": "tests/autoskill/test_promote.py",
      "span": "L100-L108",
      "signature": "def test_raises_when_target_already_exists(tmp_path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba999fa5ade64e2ee7027f5f71a06ab2d67dc636feb66445dde85776c019a91c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py",
      "name": "test_redact.py",
      "kind": "file",
      "path": "tests/autoskill/test_redact.py",
      "span": "L1-L131",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c986f41723f1dbd1835e2b56e2993e9aa855f6e73b4a1cce0fae29016092ad9f",
      "chars": 4576,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_preserves_ordinary_text",
      "name": "test_preserves_ordinary_text",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L55-L56",
      "signature": "def test_preserves_ordinary_text()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bf258a6c3084e5928d4aa78d6e1fbb07f466427ee6c0b4e9865189ce45a69c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_aws_access_key_id",
      "name": "test_redacts_aws_access_key_id",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L37-L40",
      "signature": "def test_redacts_aws_access_key_id()",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4ccd34d42442a473df0dce054d599b117894bb976868787d57c176bc8c58b08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_bearer_token_header",
      "name": "test_redacts_bearer_token_header",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L43-L46",
      "signature": "def test_redacts_bearer_token_header()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1435b5e48f9bf3b17a6e3ff73b1130475762a1226c7cc4753c0146cecfb09f77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_email_address",
      "name": "test_redacts_email_address",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L19-L22",
      "signature": "def test_redacts_email_address()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd46e830c79c4503458ebb71b2ce038084c95e6a8c80586f79fee6ba3aa6e283",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_github_token",
      "name": "test_redacts_github_token",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L31-L34",
      "signature": "def test_redacts_github_token()",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c241a261a8d8de7769b42437682ad7d9ff5e057b7d501982b9a416d9b8366d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_google_api_key",
      "name": "test_redacts_google_api_key",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L108-L111",
      "signature": "def test_redacts_google_api_key()",
      "exported": true,
      "origin": "ast",
      "body_hash": "58c19691f621fa513d498a1e664ebfbc64835372c8cfa453dfc0eb5baaa7547d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_huggingface_token",
      "name": "test_redacts_huggingface_token",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L71-L74",
      "signature": "def test_redacts_huggingface_token()",
      "exported": true,
      "origin": "ast",
      "body_hash": "034e89cbd2a72a99eaf185bec7ec511d88a1368c0cdb8b81bbacacbe96995981",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_known_secret_env_var_assignments",
      "name": "test_redacts_known_secret_env_var_assignments",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L93-L105",
      "signature": "def test_redacts_known_secret_env_var_assignments()",
      "exported": true,
      "origin": "ast",
      "body_hash": "77ba285641c293644f1a7690f5e6f798eed61f9b633c8cdcb690db1e0ed7f984",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_multiple_secrets_in_one_string",
      "name": "test_redacts_multiple_secrets_in_one_string",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L126-L130",
      "signature": "def test_redacts_multiple_secrets_in_one_string()",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9e6d999d59c583ef86ec0ea98bc6a7dc71f50deb81ade63995f66b4a05fc756",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_openai_style_api_key",
      "name": "test_redacts_openai_style_api_key",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L25-L28",
      "signature": "def test_redacts_openai_style_api_key()",
      "exported": true,
      "origin": "ast",
      "body_hash": "92e13ec1e69bd39389c2a589deade5f790926cbfc08de4f1e8531566022f7ace",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_slack_bot_token",
      "name": "test_redacts_slack_bot_token",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L65-L68",
      "signature": "def test_redacts_slack_bot_token()",
      "exported": true,
      "origin": "ast",
      "body_hash": "60c13721f5e5f770f84836e1bad16f22c466acb4c344221585444c2e7cb41a05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_ssh_private_key_block",
      "name": "test_redacts_ssh_private_key_block",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L77-L84",
      "signature": "def test_redacts_ssh_private_key_block()",
      "exported": true,
      "origin": "ast",
      "body_hash": "429820c622a6b43b1977b6c1d88af273cb0dd9341eafd16ec91065fdb406de6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_standalone_jwt",
      "name": "test_redacts_standalone_jwt",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L59-L62",
      "signature": "def test_redacts_standalone_jwt()",
      "exported": true,
      "origin": "ast",
      "body_hash": "727901a0dd00b2ce8d55890c1f3b7da33734eaa891f7d699c9033f52083c335c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_stripe_publishable_key",
      "name": "test_redacts_stripe_publishable_key",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L120-L123",
      "signature": "def test_redacts_stripe_publishable_key()",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd25c796047068ab459f3422f9eb09258c358acff6082630b0b8fe8124ca0e7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_stripe_secret_key",
      "name": "test_redacts_stripe_secret_key",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L114-L117",
      "signature": "def test_redacts_stripe_secret_key()",
      "exported": true,
      "origin": "ast",
      "body_hash": "713099db65aba2f4e252806086685d7a8b5352a9e7e7c99212d9707f9dd19922",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_us_phone_number",
      "name": "test_redacts_us_phone_number",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L49-L52",
      "signature": "def test_redacts_us_phone_number()",
      "exported": true,
      "origin": "ast",
      "body_hash": "13ab2f179736b5ba2008c704bdbc58274172938ebeb78705bf18b7d54ba20424",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_redact.py#test_redacts_us_ssn",
      "name": "test_redacts_us_ssn",
      "kind": "function",
      "path": "tests/autoskill/test_redact.py",
      "span": "L87-L90",
      "signature": "def test_redacts_us_ssn()",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0f092fb933efc47a3c76170264e026d51e2eabb5b709349986ee894192b07e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py",
      "name": "test_run.py",
      "kind": "file",
      "path": "tests/autoskill/test_run.py",
      "span": "L1-L230",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "460455bb75125761e56c7d815a0f62dc9464fef21f2c40ef835d2cf0e00b1529",
      "chars": 8111,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#_base_config",
      "name": "_base_config",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L50-L53",
      "signature": "def _base_config()",
      "exported": false,
      "origin": "ast",
      "body_hash": "76fd70e47745ae8235e4b1cb7d6ca1525acf0cc6c0d02b27696728ed4b47b9fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#_events_two_sessions",
      "name": "_events_two_sessions",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L56-L62",
      "signature": "def _events_two_sessions(app=\"Chrome\"): # two sessions of the same app, separated by > idle_gap",
      "exported": false,
      "origin": "ast",
      "body_hash": "01c3658a3b77ddf8c91145ef39314fb9ee41f17ce0ada8eb9a3b4ed2eb4e71aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#_keyword_embedder",
      "name": "_keyword_embedder",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L35-L37",
      "signature": "def _keyword_embedder(text)",
      "exported": false,
      "origin": "ast",
      "body_hash": "8a6f0fb775317b9ad776cb81efc161094c53d5151f4b14bd414ce9776afe182f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "name": "_screenpipe_client_with_events",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L19-L32",
      "signature": "def _screenpipe_client_with_events(events)",
      "exported": false,
      "origin": "ast",
      "body_hash": "12f937234aa9e17452c016ac9edc9cd2fdead6e916650991adb1ca5bb28291c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#_screenpipe_client_with_events.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L20-L31",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d2db5178126bdd3f6a4b30c2dcbd22cac9b9b6f7100203928e21599fdf04d40",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#_write_skill",
      "name": "_write_skill",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L13-L16",
      "signature": "def _write_skill(root: Path, name: str, description: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "71bc17c3dfad5601855d6eeddfc556f178cc1589025967eac74a5f79bf21edff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#StubBackend",
      "name": "StubBackend",
      "kind": "class",
      "path": "tests/autoskill/test_run.py",
      "span": "L40-L47",
      "signature": "class StubBackend",
      "exported": true,
      "origin": "ast",
      "body_hash": "993c506e6f01b22b88daac229384377160732e62f88d5c7f9df3690f7e14b8b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#StubBackend.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "tests/autoskill/test_run.py",
      "span": "L45-L47",
      "signature": "def __call__(self, prompt)",
      "exported": false,
      "origin": "ast",
      "body_hash": "c16d3ee3102be1f963b1d4002311df52639594f74450e50cbf32948f3db00194",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubBackend"
    },
    {
      "id": "tests/autoskill/test_run.py#StubBackend.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/autoskill/test_run.py",
      "span": "L41-L43",
      "signature": "def __init__(self, response_fn)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5e03b8c6578f56b75e7eeb1b077034f62599082e39176d5ed645a3cacef55956",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubBackend"
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "name": "test_run_dry_run_does_not_call_backend",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L131-L149",
      "signature": "def test_run_dry_run_does_not_call_backend(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc6f3ce9d22176de6405a62a84773ca0e6812e79da6fb61d7d7679e72f8c944d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable",
      "name": "test_run_raises_actionable_error_when_screenpipe_unreachable",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L188-L207",
      "signature": "def test_run_raises_actionable_error_when_screenpipe_unreachable(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99321dff46a5948513159106e825baefeec815d98f4a9e1c2a437b71748030da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable.handler",
      "name": "handler",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L192-L193",
      "signature": "def handler(request)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b49bbebcdfb702e63536ba6b3b66c00dc309672f7c43a90760c74a29fea46613",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "name": "test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L152-L185",
      "signature": "def test_run_redacts_secrets_from_event_text_before_any_llm_call(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "44849f0594789a39fc3af7be563cca6e3972e871130fd29191d28e7b8bfccec8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call.capture",
      "name": "capture",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L167-L169",
      "signature": "def capture(prompt, n)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f9c92280fef256ed9f67e5e267d7e1761956c78dd5e6c82bd8a239f8e587250",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_skips_clusters_below_min_cluster_size",
      "name": "test_run_skips_clusters_below_min_cluster_size",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L210-L229",
      "signature": "def test_run_skips_clusters_below_min_cluster_size(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e39dc59e360e50cf570e753e90290a3d0e04d0973a2a84c1ad7aad7340fba4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "name": "test_run_writes_composition_recipe_for_compose_verdict",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L110-L128",
      "signature": "def test_run_writes_composition_recipe_for_compose_verdict(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "44a53911816f13fe0e3a573b822d0278fb826f9a42f5ef914ce870ceede0d5ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "name": "test_run_writes_new_skill_draft_for_novel_verdict",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L89-L107",
      "signature": "def test_run_writes_new_skill_draft_for_novel_verdict(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0437357e383c783089d58b5be6ec7c6d39db33ae34764f1b8f5dbc8421b6237a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "name": "test_run_writes_report_into_timestamped_proposed_dir",
      "kind": "function",
      "path": "tests/autoskill/test_run.py",
      "span": "L65-L86",
      "signature": "def test_run_writes_report_into_timestamped_proposed_dir(tmp_path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "89aae6df11aa2c6dddb77bed964a9956b7f3457f1d2d44d330da3668b8bb5cb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py",
      "name": "test_synthesize.py",
      "kind": "file",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L1-L97",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "cd3901c17236ceca7b42568b58a139501b59acba38c70aa934e0cec457228255",
      "chars": 3143,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#_cluster",
      "name": "_cluster",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L18-L24",
      "signature": "def _cluster()",
      "exported": false,
      "origin": "ast",
      "body_hash": "641f74b0e041f9dcd7cf042dd7d58bbb5b1f1f83e9d687bb3ef3ebba95835d90",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#_top_k",
      "name": "_top_k",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L27-L31",
      "signature": "def _top_k()",
      "exported": false,
      "origin": "ast",
      "body_hash": "8b41e405f359ce1b025ad69522c7718840408d6fcf30c80af708142cdbcf3ba5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#StubBackend",
      "name": "StubBackend",
      "kind": "class",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L8-L15",
      "signature": "class StubBackend",
      "exported": true,
      "origin": "ast",
      "body_hash": "d48734bb5b754f675d81381880efec82b0f28df9fa103cda8252f6b4a1375a36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#StubBackend.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L13-L15",
      "signature": "def __call__(self, prompt: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "c5be91c8f29ac3406972461236b9bc8d65b3abd38f12763394c8bed5f0e80596",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubBackend"
    },
    {
      "id": "tests/autoskill/test_synthesize.py#StubBackend.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L9-L11",
      "signature": "def __init__(self, response: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "22e39456a9927bd5c155d4ecd97ea413185ba181dfb794eef5659bd13ef74195",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubBackend"
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_parses_compose_verdict_and_returns_skill_body",
      "name": "test_parses_compose_verdict_and_returns_skill_body",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L53-L64",
      "signature": "def test_parses_compose_verdict_and_returns_skill_body()",
      "exported": true,
      "origin": "ast",
      "body_hash": "96ac9621eaabfc5da9dcb404b2078587b0223a3eab0bf806a03dcd748c2b7510",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_parses_novel_verdict_and_returns_skill_body",
      "name": "test_parses_novel_verdict_and_returns_skill_body",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L67-L77",
      "signature": "def test_parses_novel_verdict_and_returns_skill_body()",
      "exported": true,
      "origin": "ast",
      "body_hash": "190f2d99bff6dcb18084e85e8561320b03b5dd6952d7035b94324aaa723fca57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_parses_reuse_verdict",
      "name": "test_parses_reuse_verdict",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L44-L50",
      "signature": "def test_parses_reuse_verdict()",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd77bd142deff585aaec06b7a31ccaddcf57fe67e10480064bfa72ece5422875",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_prompt_includes_cluster_and_candidate_skills",
      "name": "test_prompt_includes_cluster_and_candidate_skills",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L34-L41",
      "signature": "def test_prompt_includes_cluster_and_candidate_skills()",
      "exported": true,
      "origin": "ast",
      "body_hash": "8768a6206269c06590624e429ed9e058371b08c0aeb9bec83bf7be1d3c184426",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_raises_on_unknown_verdict",
      "name": "test_raises_on_unknown_verdict",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L93-L96",
      "signature": "def test_raises_on_unknown_verdict()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ef70284708697878d4b96f9eebebfac07178730940667707167a037583b4c8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_raises_on_unparseable_response",
      "name": "test_raises_on_unparseable_response",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L87-L90",
      "signature": "def test_raises_on_unparseable_response()",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cfd6f03ef690fa9ce6549e1967047c4417548c295f040121c98b975ca8d791e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/autoskill/test_synthesize.py#test_tolerates_json_wrapped_in_markdown_fence",
      "name": "test_tolerates_json_wrapped_in_markdown_fence",
      "kind": "function",
      "path": "tests/autoskill/test_synthesize.py",
      "span": "L80-L84",
      "signature": "def test_tolerates_json_wrapped_in_markdown_fence()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a192afd01b8623ef74755d4a2f2a7e3846ebc7551f340fce9e61da46162596b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/bids/test_scripts.py",
      "span": "L1-L148",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8ab80944e95f9c503619a51a6d42b75012380bd309d1d6f06edcca233ad7bdab",
      "chars": 6567,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py#BepsWriteTests",
      "name": "BepsWriteTests",
      "kind": "class",
      "path": "tests/bids/test_scripts.py",
      "span": "L90-L110",
      "signature": "class BepsWriteTests(TemporaryReferencesTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b54cfb9ab10f3255a297560f420c445e493b8c2b5c8e008e2c5359fd10244dc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py#BepsWriteTests.test_beps_are_written_verbatim_and_counted",
      "name": "test_beps_are_written_verbatim_and_counted",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L91-L104",
      "signature": "def test_beps_are_written_verbatim_and_counted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8698fb2715695fceed45a41aa7631742749fe0b11d5f51f2580b1cc4a4b9d549",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BepsWriteTests"
    },
    {
      "id": "tests/bids/test_scripts.py#BepsWriteTests.test_the_counter_matches_the_format_of_the_shipped_file",
      "name": "test_the_counter_matches_the_format_of_the_shipped_file",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L106-L110",
      "signature": "def test_the_counter_matches_the_format_of_the_shipped_file(self) -> None: # The count is a byte-substring search, so it only stays correct while # upstream keeps this exact indentation. Pin it against the real file.",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd2c03a5515d1335f6600964d7af9997bb183f348e60f6d8dc30bb6582817cbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BepsWriteTests"
    },
    {
      "id": "tests/bids/test_scripts.py#FetchTests",
      "name": "FetchTests",
      "kind": "class",
      "path": "tests/bids/test_scripts.py",
      "span": "L113-L128",
      "signature": "class FetchTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac1bc1e14ecc302d068257945631e6a718d148e7aaad10b47ca61a959a8c0912",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py#FetchTests.test_requests_carry_an_identifying_user_agent",
      "name": "test_requests_carry_an_identifying_user_agent",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L114-L122",
      "signature": "def test_requests_carry_an_identifying_user_agent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c2081ea4eb8412ab45e00f5517b4054dab31790d550fa55f05d606e9028d0bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FetchTests"
    },
    {
      "id": "tests/bids/test_scripts.py#FetchTests.test_the_default_sources_are_https_and_upstream",
      "name": "test_the_default_sources_are_https_and_upstream",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L124-L128",
      "signature": "def test_the_default_sources_are_https_and_upstream(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf9de3537b9f827075f6bdefbad2ec31023904761abfc34f480fdaa94e74a14f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FetchTests"
    },
    {
      "id": "tests/bids/test_scripts.py#SchemaWriteTests",
      "name": "SchemaWriteTests",
      "kind": "class",
      "path": "tests/bids/test_scripts.py",
      "span": "L47-L87",
      "signature": "class SchemaWriteTests(TemporaryReferencesTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a00e9b29850ca1e869937a54b9c481bc9769179064f2c0c2ebc2e633394de82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py#SchemaWriteTests.test_a_non_json_response_fails_before_anything_is_written",
      "name": "test_a_non_json_response_fails_before_anything_is_written",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L83-L87",
      "signature": "def test_a_non_json_response_fails_before_anything_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa8733fab0c44e881020b722a715987fe8e6fb679a260580c552e3444479aebc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchemaWriteTests"
    },
    {
      "id": "tests/bids/test_scripts.py#SchemaWriteTests.test_a_schema_without_version_fields_reports_unknown",
      "name": "test_a_schema_without_version_fields_reports_unknown",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L76-L81",
      "signature": "def test_a_schema_without_version_fields_reports_unknown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1ad2f35ca8864a14feb9a6a92890e9af40cea0ed492ea520e92227d30cd21e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchemaWriteTests"
    },
    {
      "id": "tests/bids/test_scripts.py#SchemaWriteTests.test_downloaded_schema_is_reserialised_with_stable_formatting",
      "name": "test_downloaded_schema_is_reserialised_with_stable_formatting",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L54-L65",
      "signature": "def test_downloaded_schema_is_reserialised_with_stable_formatting(self) -> None: # Upstream ships minified JSON; the script re-indents so the checked-in # copy diffs sanely on the next update.",
      "exported": true,
      "origin": "ast",
      "body_hash": "264e6c8463939cc38343dd418b78342508bc2bf1cdd888cfddf1a255a2fe4890",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchemaWriteTests"
    },
    {
      "id": "tests/bids/test_scripts.py#SchemaWriteTests.test_the_reported_versions_come_from_the_payload",
      "name": "test_the_reported_versions_come_from_the_payload",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L67-L74",
      "signature": "def test_the_reported_versions_come_from_the_payload(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab3e88979dc087084c4bf7edf762494dc7d75bd5dbeb204fc097aee25bb16405",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchemaWriteTests"
    },
    {
      "id": "tests/bids/test_scripts.py#ShippedReferenceTests",
      "name": "ShippedReferenceTests",
      "kind": "class",
      "path": "tests/bids/test_scripts.py",
      "span": "L131-L143",
      "signature": "class ShippedReferenceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "51001a61737bbfc333a9ff9de345b4549456d7c264973359ab2e97cc326e7c0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py#ShippedReferenceTests.test_the_references_directory_is_where_the_script_writes",
      "name": "test_the_references_directory_is_where_the_script_writes",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L140-L143",
      "signature": "def test_the_references_directory_is_where_the_script_writes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fbaffee2a9def75240e50a56510e7838e75c836bf0adc80aa0cb56ccc7e35d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShippedReferenceTests"
    },
    {
      "id": "tests/bids/test_scripts.py#ShippedReferenceTests.test_the_shipped_schema_parses_and_is_versioned",
      "name": "test_the_shipped_schema_parses_and_is_versioned",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L134-L138",
      "signature": "def test_the_shipped_schema_parses_and_is_versioned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40d84d80211e9f79b10f232143a34202188f73a4a6187eee835fa9e616a2d3d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShippedReferenceTests"
    },
    {
      "id": "tests/bids/test_scripts.py#TemporaryReferencesTestCase",
      "name": "TemporaryReferencesTestCase",
      "kind": "class",
      "path": "tests/bids/test_scripts.py",
      "span": "L35-L44",
      "signature": "class TemporaryReferencesTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e3d5d855f2683979f0e9cdc90ac57ebcb5301ad267b2c0d640579336ef0612e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bids/test_scripts.py#TemporaryReferencesTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bids/test_scripts.py",
      "span": "L38-L44",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "158b8c04115707e17a2c3b0854ee1f13d3d99f746a6b87dc9b1e57d4afa70925",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryReferencesTestCase"
    },
    {
      "id": "tests/bioservices/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L1-L939",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bd83d3021321fbe5180f14a13e28fc167dea586189301d19b444111cae33b2eb",
      "chars": 40205,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "name": "BatchConversionTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L151-L258",
      "signature": "class BatchConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4214cf48f903be7fdd7472fa007884cc6221ec1aa7d4036defef9157fc5c8f47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "name": "convert",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L170-L173",
      "signature": "def convert(self, ids, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "459f3bdc4f268b00597d4a4de5257bd050ea15a680e7554beeed116a0cd1ed46",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.requests",
      "name": "requests",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L166-L168",
      "signature": "def requests(self) -> list[dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0612e3da51bb03568b4543db3c1c838b6a490e0ca53814bab586af9cc453a672",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L152-L163",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c65bb857d28b6891e343f744e7d1791e802c7b70eb92601a128e6bfa45abf75a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_chunk_size_larger_than_the_list_still_sends_one_request",
      "name": "test_a_chunk_size_larger_than_the_list_still_sends_one_request",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L203-L205",
      "signature": "def test_a_chunk_size_larger_than_the_list_still_sends_one_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18f85c604a000cd4b90eaa009c11e14b44c1adffabdebb23e7a5eeba8ed18558",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_failed_chunk_is_retried_one_identifier_at_a_time",
      "name": "test_a_failed_chunk_is_retried_one_identifier_at_a_time",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L222-L238",
      "signature": "def test_a_failed_chunk_is_retried_one_identifier_at_a_time(self) -> None: # UniProt rejects a whole batch when one identifier in it is malformed, # so the per-identifier retry is what rescues the rest.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca71b4a30fc6f93b5baa7af46025f36d66e9dc5a252bbc00bc83be83f2cd4ab5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_failed_chunk_is_retried_one_identifier_at_a_time.responder",
      "name": "responder",
      "kind": "function",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L225-L230",
      "signature": "def responder(query: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b84045e330b403d230fa3b512c5a15445d49d1b2f75fbc55258ebc572882c1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_long_list_is_split_into_chunks_of_the_requested_size",
      "name": "test_a_long_list_is_split_into_chunks_of_the_requested_size",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L184-L201",
      "signature": "def test_a_long_list_is_split_into_chunks_of_the_requested_size(self) -> None: # 250 identifiers at 100 per request is 3 requests: 100, 100, 50.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f963c02a3b2c060db070ddfa3f01277309f16275b7a57319e5aea8a0ff41ec0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_retry_that_also_fails_records_the_identifier_once",
      "name": "test_a_retry_that_also_fails_records_the_identifier_once",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L240-L247",
      "signature": "def test_a_retry_that_also_fails_records_the_identifier_once(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc1ab179257db6b7d0076f2ac243b576874a617afdd3d7cd908138b890501bde",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_retry_that_also_fails_records_the_identifier_once.responder",
      "name": "responder",
      "kind": "function",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L241-L242",
      "signature": "def responder(query: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac8bf9405e5a019287362048b54310b01b8f8fd5c2377afd28d3dbdd4b8c4dc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_short_list_is_one_comma_separated_request",
      "name": "test_a_short_list_is_one_comma_separated_request",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L175-L182",
      "signature": "def test_a_short_list_is_one_comma_separated_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5cc6c83c40dd552a3e25f4813e2793f6dffed519315bd06379c38fb9933a162",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_an_empty_response_marks_the_whole_chunk_failed",
      "name": "test_an_empty_response_marks_the_whole_chunk_failed",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L216-L220",
      "signature": "def test_an_empty_response_marks_the_whole_chunk_failed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bf731a1fbc46c9679dcb4331ec1940aa07837a3fcb32d51b58580ba633088a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_identifiers_that_never_map_are_reported_as_failed",
      "name": "test_identifiers_that_never_map_are_reported_as_failed",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L207-L214",
      "signature": "def test_identifiers_that_never_map_are_reported_as_failed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c08a8d4bf67ec31a98037a00efa2d5b36ac9dce1eb61ae262bde009769adea6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_no_delay_is_taken_when_it_is_switched_off",
      "name": "test_no_delay_is_taken_when_it_is_switched_off",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L256-L258",
      "signature": "def test_no_delay_is_taken_when_it_is_switched_off(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c95798e7ad72694223268107c2ba39e7e49585038fd49177efb9b133e19841b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BatchConversionTests.test_the_delay_is_only_taken_between_chunks",
      "name": "test_the_delay_is_only_taken_between_chunks",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L249-L254",
      "signature": "def test_the_delay_is_only_taken_between_chunks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9129b942fdb3eda44192deeacb4461f5c5afad1eb5b3df6149fdbd71e2178449",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchConversionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests",
      "name": "BlastGuardTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L784-L835",
      "signature": "class BlastGuardTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec354e20790e0078b20b0dad2bda80e96e832815ef5f3c25e513d9c80bbeb87a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever",
      "name": "test_a_failed_job_returns_nothing_rather_than_polling_forever",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L822-L835",
      "signature": "def test_a_failed_job_returns_nothing_rather_than_polling_forever(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "59ebfd15977552075cf6d59e13a3bb3431d7a89476bf66965786ae09889d2152",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlastGuardTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast",
      "name": "FailingBlast",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L823-L831",
      "signature": "class FailingBlast",
      "exported": true,
      "origin": "ast",
      "body_hash": "f846de574831a3d60ca3ac920aa5f2aaabbabb3b6af053a080e541c0711f5e6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L824-L825",
      "signature": "def __init__(self, verbose: bool = True) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "c0f1976e73cc6867912360fc91d988015400fabe7737afafa27f92c2adb8331b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FailingBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast.getStatus",
      "name": "getStatus",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L830-L831",
      "signature": "def getStatus(self, jobid)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ebae4d0874650a72ddda9ef8c183e6e459488c934cd055589faa3992cfea8bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FailingBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast.run",
      "name": "run",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L827-L828",
      "signature": "def run(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "daf5c2ccffda1e551ff6f496164ce3d6df0de933d0ccaac75231835e89ed670a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FailingBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result",
      "name": "test_a_finished_job_returns_its_result",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L798-L820",
      "signature": "def test_a_finished_job_returns_its_result(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "330fc85755550a32ce1e799bf5ce067de8be864800b80da8f9bd843f752fb8bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlastGuardTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "name": "FakeBlast",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L799-L811",
      "signature": "class FakeBlast",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ef7d8f24cab278aabfd4e0a6daa148c4edcd6109e903be8fd48ef45e4c39e6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L800-L801",
      "signature": "def __init__(self, verbose: bool = True) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1c2b62d113245b2d03d37676869961d89299b0e28a360fb18697830618b1592d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.getResult",
      "name": "getResult",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L810-L811",
      "signature": "def getResult(self, jobid, kind)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e65b3e937d74bbebd0009f66092ca1c28f1d702103953adaa4a5cbfea1c67205",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.getStatus",
      "name": "getStatus",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L807-L808",
      "signature": "def getStatus(self, jobid)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fbf1deff789b0f20ff7d8eecbc019bbc01516d1fdbcb734f42b651a0a027aa3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.run",
      "name": "run",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L803-L805",
      "signature": "def run(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9f674af261461dd472e990bb54830be6ab39765a458d193eb16ed9a8cce0cfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeBlast"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_blast_is_not_submitted_when_explicitly_skipped",
      "name": "test_blast_is_not_submitted_when_explicitly_skipped",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L791-L796",
      "signature": "def test_blast_is_not_submitted_when_explicitly_skipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d00720c03fadde8833c056f250e025dbbbf922bbbd630929317898c86ec9fde",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlastGuardTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#BlastGuardTests.test_blast_is_not_submitted_without_a_contact_address",
      "name": "test_blast_is_not_submitted_without_a_contact_address",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L785-L789",
      "signature": "def test_blast_is_not_submitted_without_a_contact_address(self) -> None: # EBI rejects anonymous submissions; sending one wastes a job slot.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6bf4996b4884556928873385399fa24123376c37b6a17f42e54071d7d16fe23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlastGuardTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "name": "ChebiAndChemblTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L411-L488",
      "signature": "class ChebiAndChemblTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2ba0c0fa6fdb46d250461cc4e8c9927360fee43d630f114eccb9be3e3520548",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request",
      "name": "test_a_bare_chebi_number_is_prefixed_before_the_request",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L412-L434",
      "signature": "def test_a_bare_chebi_number_is_prefixed_before_the_request(self) -> None: # The ChEBI service requires the \"CHEBI:\" namespace.",
      "exported": true,
      "origin": "ast",
      "body_hash": "737720ce8e3c688cdec3ea4bebbdccc5edf3e0646d610257e0a8c2a41381bdc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChebiAndChemblTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request.FakeChebi",
      "name": "FakeChebi",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L416-L428",
      "signature": "class FakeChebi",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac937ba274adcd839ae2ab9f3d6c3525ec61fd60de47d05fbb229765f4a42702",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request.FakeChebi.getCompleteEntity",
      "name": "getCompleteEntity",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L417-L428",
      "signature": "def getCompleteEntity(self, identifier)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b0ffee84ff154dc39f8569884e4dcf4ad11dc7910604d3542d591a6f82d647e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeChebi"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result",
      "name": "test_a_chembl_error_is_swallowed_into_a_none_result",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L482-L488",
      "signature": "def test_a_chembl_error_is_swallowed_into_a_none_result(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "221c5cb8f2495ff7631b40627a4456a510d1b1c83734d321730ac174688ac310",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChebiAndChemblTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result.Broken",
      "name": "Broken",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L483-L485",
      "signature": "class Broken",
      "exported": true,
      "origin": "ast",
      "body_hash": "9458bd0c8a0f5fc1aae3a9092e87fa1446d3f586cc28efc041806e8b01bf3d76",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result.Broken.get_molecule",
      "name": "get_molecule",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L484-L485",
      "signature": "def get_molecule(self, identifier)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f9e28a7cec1c7ac2d542db56fdd8ebf45d708d7980294647ff48b0d4ac1e21b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Broken"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice",
      "name": "test_an_already_prefixed_identifier_is_not_prefixed_twice",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L436-L446",
      "signature": "def test_an_already_prefixed_identifier_is_not_prefixed_twice(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "83a55ccced0d8b62b9eb69742bb3b8f6e040e03f7559cadab87064cac57daa2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChebiAndChemblTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice.FakeChebi",
      "name": "FakeChebi",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L439-L442",
      "signature": "class FakeChebi",
      "exported": true,
      "origin": "ast",
      "body_hash": "7444d2a742dd3172ff8e8557ac3dff4ee91428d6255e41a52e2d5a62a01b67a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice.FakeChebi.getCompleteEntity",
      "name": "getCompleteEntity",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L440-L442",
      "signature": "def getCompleteEntity(self, identifier)",
      "exported": true,
      "origin": "ast",
      "body_hash": "534b942f8b80e900727bd0b944322e01206bdc09f70f7b4ce5fc0c7065dea1da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeChebi"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_no_chebi_identifier_means_no_request_at_all",
      "name": "test_no_chebi_identifier_means_no_request_at_all",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L448-L451",
      "signature": "def test_no_chebi_identifier_means_no_request_at_all(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b136f95777a83b0b42f75e4399193b6c569709583725f5f2bd719898dba89057",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChebiAndChemblTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_no_chembl_identifier_means_no_request",
      "name": "test_no_chembl_identifier_means_no_request",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L477-L480",
      "signature": "def test_no_chembl_identifier_means_no_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "05f5166e0f52a8a58c4195aa6f3de07bbf48a96128d96bd66ac55b3da76d27e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChebiAndChemblTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name",
      "name": "test_the_chembl_lookup_uses_the_current_method_name",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L453-L475",
      "signature": "def test_the_chembl_lookup_uses_the_current_method_name(self) -> None: # `get_compound_by_chemblId` was removed after bioservices 1.6; the # current release exposes `get_molecule`, and the installed class must # actually have whatever the script calls.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5af80fb0c5aca2b277e8a9ea5fab6170b6e73ec4c6abbd0daf9fb56dd4a6e5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChebiAndChemblTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name.FakeChembl",
      "name": "FakeChembl",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L463-L470",
      "signature": "class FakeChembl",
      "exported": true,
      "origin": "ast",
      "body_hash": "821ab22327c6d02f44a829c5d6f8757647c21b37287c116673db37eeabffc339",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name.FakeChembl.get_molecule",
      "name": "get_molecule",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L464-L470",
      "signature": "def get_molecule(self, identifier)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c27d5ec7ea62ffc49c10281e0929a5f11e4188488e6a089e0f2b463baeb9f2af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeChembl"
    },
    {
      "id": "tests/bioservices/test_scripts.py#CompoundReportTests",
      "name": "CompoundReportTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L491-L526",
      "signature": "class CompoundReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3ff464188cad16159d72b5b52f104b8b91a588d82fc0ee6934a281a21610d9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#CompoundReportTests.test_a_report_without_kegg_information_still_writes",
      "name": "test_a_report_without_kegg_information_still_writes",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L518-L526",
      "signature": "def test_a_report_without_kegg_information_still_writes(self) -> None: # The compound may resolve in ChEMBL but not in KEGG.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f5f8fbfa23cd87757faffc12f406a4e324fdf362a530bc72b7e42fdfcb3470b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompoundReportTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#CompoundReportTests.test_the_report_records_every_identifier_that_was_resolved",
      "name": "test_the_report_records_every_identifier_that_was_resolved",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L492-L516",
      "signature": "def test_the_report_records_every_identifier_that_was_resolved(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec4157c074be172699abc34d090d635bfaa3905b06ba93999f8fe99c6789688f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompoundReportTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "name": "DatabaseCodeTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L79-L106",
      "signature": "class DatabaseCodeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "453a6b883a5650707fe230932032e18a5876634427220b3959c253c3eab52a19",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_aliases_are_matched_case_insensitively",
      "name": "test_aliases_are_matched_case_insensitively",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L87-L89",
      "signature": "def test_aliases_are_matched_case_insensitively(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e9eef940f45b10f58560a0d2e3722202d885a5718ae89ffb94d319333a5d707",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatabaseCodeTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_an_official_code_survives_normalisation",
      "name": "test_an_official_code_survives_normalisation",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L91-L95",
      "signature": "def test_an_official_code_survives_normalisation(self) -> None: # Rewriting a valid code would break the mapping request.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cb599dfdc1e11434b723c76e5a563ecb1b47906f242d29ae0dddf908581f9d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatabaseCodeTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_an_unknown_code_is_passed_through_rather_than_rejected",
      "name": "test_an_unknown_code_is_passed_through_rather_than_rejected",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L103-L106",
      "signature": "def test_an_unknown_code_is_passed_through_rather_than_rejected(self) -> None: # UniProt supports far more codes than the alias table lists.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9c58aaf69ceb6360002301b0a3bf5355ceafeb508ccdbe56eb12f058838c31c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatabaseCodeTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_every_alias_maps_to_a_code_that_is_itself_stable",
      "name": "test_every_alias_maps_to_a_code_that_is_itself_stable",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L97-L101",
      "signature": "def test_every_alias_maps_to_a_code_that_is_itself_stable(self) -> None: # Normalisation must be idempotent, or a second pass would corrupt it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "742c94d60ba5be86fa0d9e542b5040289dd773ab3e84c81fa01d86c7298db4f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatabaseCodeTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_lowercase_aliases_resolve_to_the_official_code",
      "name": "test_lowercase_aliases_resolve_to_the_official_code",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L82-L85",
      "signature": "def test_lowercase_aliases_resolve_to_the_official_code(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8171cc7e2e1e9cebce83d35a20af6f4718623dd604d9af58329f63bf7435e770",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatabaseCodeTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKegg",
      "name": "FakeKegg",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L313-L327",
      "signature": "class FakeKegg",
      "exported": true,
      "origin": "ast",
      "body_hash": "f425a55eb7c7b2b1de0978f35548ac687587ab827ca106b735e287aab2c6822d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKegg.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L316-L319",
      "signature": "def __init__(self, find_result: str = \"\", entries: dict | None = None) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "50dd6bab6f98acf63eb8f7240e1b89d22dad1c3783b4d0e5a2d39412fbc7cead",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeKegg"
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKegg.find",
      "name": "find",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L321-L323",
      "signature": "def find(self, database: str, query: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "164d37cf4d0f31f333e5d5946a4d829313ef772125284244cd8d01f3168129ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeKegg"
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKegg.get",
      "name": "get",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L325-L327",
      "signature": "def get(self, identifier: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dcd03c31aa461b2de57ce02f3583a3858eaff61d0b9f17f51acd2d08494d786",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeKegg"
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "name": "FakeKgmlKegg",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L529-L544",
      "signature": "class FakeKgmlKegg",
      "exported": true,
      "origin": "ast",
      "body_hash": "03c82553975fe56f8884489dee27534ead1fd99211bc7a9b0a37bac7121e5a1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKgmlKegg.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L532-L535",
      "signature": "def __init__(self, parsed: dict | None = None, entry: str = \"\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4b61798c04bfb4fdbf8061e9699297035bfceba5173a3d66d97f541105deda01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeKgmlKegg"
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKgmlKegg.get",
      "name": "get",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L543-L544",
      "signature": "def get(self, pathway_id: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ad27c31cabda9e8aafb5f0488ee73ee2607711891f0f8dd7fc6c0a2c4d262fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeKgmlKegg"
    },
    {
      "id": "tests/bioservices/test_scripts.py#FakeKgmlKegg.parse_kgml_pathway",
      "name": "parse_kgml_pathway",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L537-L541",
      "signature": "def parse_kgml_pathway(self, pathway_id: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a441e4becfa5bf10c7df853092e872f93e5f4507b1e2acddc14a6ee12aecd82",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeKgmlKegg"
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "name": "GoAnnotationTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L891-L934",
      "signature": "class GoAnnotationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a5da2a03c7f603ee8c6a82e4373fdd7def7a79a0ef6c193daf1ab853fe08050",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "name": "annotations",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L900-L910",
      "signature": "def annotations(self, payload: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "29317063909bea2cac29549f78a08adcf7d783281724df26aaa12c178de7aebd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoAnnotationTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations.FakeQuickGo",
      "name": "FakeQuickGo",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L903-L906",
      "signature": "class FakeQuickGo",
      "exported": true,
      "origin": "ast",
      "body_hash": "130c7e8ccb22cc534d2af1c1965815c8aad2d575adf92fee443dfb3d8cabf4fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations.FakeQuickGo.Annotation",
      "name": "Annotation",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L904-L906",
      "signature": "def Annotation(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f0598182ddd2391ba034aea16a28604bc753b61d5fb991d47332146bda17424",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeQuickGo"
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_a_header_only_response_yields_empty_aspects",
      "name": "test_a_header_only_response_yields_empty_aspects",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L932-L934",
      "signature": "def test_a_header_only_response_yields_empty_aspects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb9543177117cc6192277493769431f31d30f3f3f9ce40935a753baa94d163d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoAnnotationTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_an_unknown_aspect_letter_is_discarded",
      "name": "test_an_unknown_aspect_letter_is_discarded",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L920-L926",
      "signature": "def test_an_unknown_aspect_letter_is_discarded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "707c8c22d8525c66e9c12639a015a0474dbe74ce56de367c135916292d2a6d55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoAnnotationTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_no_annotations_yields_an_empty_list",
      "name": "test_no_annotations_yields_an_empty_list",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L928-L930",
      "signature": "def test_no_annotations_yields_an_empty_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed9da51c99d74550b230500f0be914d82d44dd0655fa16e935247b0afe61d7f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoAnnotationTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_terms_are_grouped_by_the_three_go_aspects",
      "name": "test_terms_are_grouped_by_the_three_go_aspects",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L912-L918",
      "signature": "def test_terms_are_grouped_by_the_three_go_aspects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fceaf933f0105e6ac15929fd100ef2b585bffcd57699cba90ee26b94e0dc4336",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GoAnnotationTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "name": "IdentifierFileTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L109-L134",
      "signature": "class IdentifierFileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d74e04324080ff7613205f6c6bd80923d4ba2a49e3b80cbeabfb110ca6bef8d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests.read",
      "name": "read",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L115-L118",
      "signature": "def read(self, text: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0ebc920b4aea4566cd1817626e348feb2218b418b7598e0978fa355aa7e0abb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifierFileTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L110-L113",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifierFileTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_a_missing_file_raises",
      "name": "test_a_missing_file_raises",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L132-L134",
      "signature": "def test_a_missing_file_raises(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4adaf88bb511427bc4723a274a991908f93119ee5d6fcd291e4abc36a552679",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifierFileTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_an_empty_file_yields_no_identifiers",
      "name": "test_an_empty_file_yields_no_identifiers",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L129-L130",
      "signature": "def test_an_empty_file_yields_no_identifiers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cf3359527a8c987cfe9395f6c465edc986e60caff8b813352885c7d461830af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifierFileTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_comments_and_blank_lines_are_ignored",
      "name": "test_comments_and_blank_lines_are_ignored",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L123-L127",
      "signature": "def test_comments_and_blank_lines_are_ignored(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a303cce169a4aeccbc80e9fa9df999a4394560a66823e9ac46cee489706da3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifierFileTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_identifiers_are_read_one_per_line_and_trimmed",
      "name": "test_identifiers_are_read_one_per_line_and_trimmed",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L120-L121",
      "signature": "def test_identifiers_are_read_one_per_line_and_trimmed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fc81b3db921947a6ad09c2ee14a5b46ec20d1ce64c2c95793b34057b7c7f53f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifierFileTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests",
      "name": "InteractionTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L838-L888",
      "signature": "class InteractionTests(unittest.TestCase): #: A PSI-MI TAB record: the first 12 columns are what the parser reads.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a3758f0cac979597b3e406f219fb0a16925c5255e98eedcecd2caf4d5500730",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_a_release_without_psicquic_skips_the_step",
      "name": "test_a_release_without_psicquic_skips_the_step",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L884-L888",
      "signature": "def test_a_release_without_psicquic_skips_the_step(self) -> None: # bioservices 1.16.0 does not ship PSICQUIC; the workflow must degrade # rather than fail, and must not try to construct it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f0a4c17ae88e4b582116ec626437ac06ad510ea30534313730dfc6284534fdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InteractionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed",
      "name": "test_a_truncated_record_is_ignored_rather_than_indexed",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L868-L874",
      "signature": "def test_a_truncated_record_is_ignored_rather_than_indexed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "576cb7dca83361d3d19a93dcb660388f2f5bab98d9ee5e17e4cd07c3e4fe102b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InteractionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed.FakePsicquic",
      "name": "FakePsicquic",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L869-L871",
      "signature": "class FakePsicquic",
      "exported": true,
      "origin": "ast",
      "body_hash": "6eddf5bc77de78102a5a9134dcc5d28edb8e6a1fdd4a6cda58f48cfbc17c57fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed.FakePsicquic.query",
      "name": "query",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L870-L871",
      "signature": "def query(self, database, query)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a73fe5c8542dc408ac8323098331d9f35a8fc86f27317711b517297b7e787da7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakePsicquic"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list",
      "name": "test_no_interactions_returns_an_empty_list",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L876-L882",
      "signature": "def test_no_interactions_returns_an_empty_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9663ba675281725d73cd0d99b3cf41e727823ce9cdcccf5845ace22f4e8ad725",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InteractionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list.FakePsicquic",
      "name": "FakePsicquic",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L877-L879",
      "signature": "class FakePsicquic",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0696edf1260ab2ebc653e5b1545baac1df3bc6a85ad874347497e1ed35bc5ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list.FakePsicquic.query",
      "name": "query",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L878-L879",
      "signature": "def query(self, database, query)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f7159e89277951536ccc606d696335b54f24b435955b6e0503cc8a67931d7aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakePsicquic"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column",
      "name": "test_the_query_is_scoped_to_human_and_parsed_by_column",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L851-L866",
      "signature": "def test_the_query_is_scoped_to_human_and_parsed_by_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9217dcf8466f48f06691bf2a2afcfb6f8ccb6c3468ed2d2e459148c6b1f1dfd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InteractionTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column.FakePsicquic",
      "name": "FakePsicquic",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L855-L858",
      "signature": "class FakePsicquic",
      "exported": true,
      "origin": "ast",
      "body_hash": "f08c73e8c694527a44b61f54afed17754d8ac0804b212a61b1fa8c5a4765130c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column.FakePsicquic.query",
      "name": "query",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L856-L858",
      "signature": "def query(self, database, query)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef23496ebc54373dc9f8ab8d11236d4d81a40dd1eb99bc44183368e42f8895ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakePsicquic"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "name": "KeggCompoundSearchTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L330-L360",
      "signature": "class KeggCompoundSearchTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "afa2776b861a9123dc50cdd9a2665e12a4f7ba5368cdcae0fa3017d529b77d83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "name": "search",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L331-L335",
      "signature": "def search(self, find_result: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb04201116926cc152e7e0c6303022e5f03d0c8f02cc0d5d92d0464e467ac4ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggCompoundSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising",
      "name": "test_a_service_error_returns_no_identifier_rather_than_raising",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L353-L360",
      "signature": "def test_a_service_error_returns_no_identifier_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8179ea2c876f213274b785acaabcf8b0503940a39d86c901e501f44ecad24a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggCompoundSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising.Broken",
      "name": "Broken",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L354-L356",
      "signature": "class Broken",
      "exported": true,
      "origin": "ast",
      "body_hash": "77ef543ccc24a6ccb7181135691bf03e5b0c1a0efc88d5ced6fae3cbe2cd8f49",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising.Broken.find",
      "name": "find",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L355-L356",
      "signature": "def find(self, *args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c05e830f78ca94d4f40a232c967469f82e1b4f4410684fec4fd515600342e9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Broken"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_no_results_returns_no_identifier",
      "name": "test_no_results_returns_no_identifier",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L347-L351",
      "signature": "def test_no_results_returns_no_identifier(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d26e99c59d315acad978d6104aa6306d15c8d82ad16f0c37166e23a6e85b2416",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggCompoundSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_the_compound_database_is_searched_by_name",
      "name": "test_the_compound_database_is_searched_by_name",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L337-L339",
      "signature": "def test_the_compound_database_is_searched_by_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d5b0ce1815d608fdfd360c3579614d9cc67bd7df1b1659f62eb8b91f6009c29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggCompoundSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_the_cpd_prefix_is_stripped_from_the_first_hit",
      "name": "test_the_cpd_prefix_is_stripped_from_the_first_hit",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L341-L345",
      "signature": "def test_the_cpd_prefix_is_stripped_from_the_first_hit(self) -> None: # Downstream calls rebuild \"cpd:<id>\", so keeping the prefix here would # produce \"cpd:cpd:C00002\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "01073f0092ea4c579968f86cfa824002062740f47fad7913142aee9e8de35576",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggCompoundSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "name": "KeggEntryParsingTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L363-L408",
      "signature": "class KeggEntryParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e4b5fd30e93fde49bb96bc9f80497a1bd74b9157b2e5aa26c9f821d2adce8d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L366-L368",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "12b99fc40a25953319b9fbc506a00c4c1d89dfc561eb0c5959c111f42a7ed438",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_empty_response_is_reported_as_no_information",
      "name": "test_an_empty_response_is_reported_as_no_information",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L407-L408",
      "signature": "def test_an_empty_response_is_reported_as_no_information(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "00e127a357f2bd893cc06049faaa8d782c30917434b51f59819c82c910bdde14",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_entry_without_a_pathway_block_has_no_pathways",
      "name": "test_an_entry_without_a_pathway_block_has_no_pathways",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L398-L405",
      "signature": "def test_an_entry_without_a_pathway_block_has_no_pathways(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "58005887f18ba9d7047d52dacfb8578444e7e4cc44dd1ed57164df13af4227ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_only_the_pathway_block_becomes_pathways",
      "name": "test_only_the_pathway_block_becomes_pathways",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L386-L396",
      "signature": "def test_only_the_pathway_block_becomes_pathways(self) -> None: # Three PATHWAY lines. The indented DBLINKS lines that follow must not # be collected, or the pathway count is inflated by database links.",
      "exported": true,
      "origin": "ast",
      "body_hash": "caf0ac3f6ad016ff0f04e3f607e1ad5981b7c1c835b3a2a43b2b8740d728cdf9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_chebi_identifier_is_pulled_out_of_dblinks",
      "name": "test_the_chebi_identifier_is_pulled_out_of_dblinks",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L382-L384",
      "signature": "def test_the_chebi_identifier_is_pulled_out_of_dblinks(self) -> None: # ATP is CHEBI:15422.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f5e9edee2bed4d278beadf7faad7c6f3e9495fe9026478723c83dbe7fd8eb13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_entry_is_requested_with_the_cpd_prefix",
      "name": "test_the_entry_is_requested_with_the_cpd_prefix",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L370-L371",
      "signature": "def test_the_entry_is_requested_with_the_cpd_prefix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8c788faacc179c0d3d81ebbb9646367c922b2da50b65f1a7008ad6a4fbf50e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_name_loses_its_trailing_semicolon",
      "name": "test_the_name_loses_its_trailing_semicolon",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L378-L380",
      "signature": "def test_the_name_loses_its_trailing_semicolon(self) -> None: # KEGG separates synonyms with \";\"; keeping it would corrupt the label.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ba08281361b0b173fce2d070895656e370aef7f26ff73312f9939e8d244ee23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_published_formula_and_masses_are_extracted",
      "name": "test_the_published_formula_and_masses_are_extracted",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L373-L376",
      "signature": "def test_the_published_formula_and_masses_are_extracted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d63b019218797aea9e1850d47b6274d4fae492a4ce621fae98cf72682807e617",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeggEntryParsingTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "name": "MappingCsvTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L261-L310",
      "signature": "class MappingCsvTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0ac345625f7fd3a9ec41111211a1773aeb0e3dcc905004c38895a1f99c21de7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L262-L275",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "690066d3603913ee0fa160f9ae49a1fb99067d38bf603c8671c6750a183dbb34",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.test_an_unmapped_identifier_is_written_as_an_empty_failed_row",
      "name": "test_an_unmapped_identifier_is_written_as_an_empty_failed_row",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L294-L297",
      "signature": "def test_an_unmapped_identifier_is_written_as_an_empty_failed_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6abb3dbf1a0586081c84103d2fa8dcf8876525176eb8849d95399c97f89f5474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.test_failed_identifiers_are_saved_only_when_there_are_some",
      "name": "test_failed_identifiers_are_saved_only_when_there_are_some",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L303-L310",
      "signature": "def test_failed_identifiers_are_saved_only_when_there_are_some(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5335732b89eb7d6ea81ba02621b7d1831212c1ae340ff04291c35a051bda2e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.test_multiple_targets_are_joined_with_semicolons",
      "name": "test_multiple_targets_are_joined_with_semicolons",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L288-L292",
      "signature": "def test_multiple_targets_are_joined_with_semicolons(self) -> None: # A comma would collide with the CSV delimiter.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd4caedb42d0069924ec928d9ebe199cb1398ef7fee18742b30bffb8dd088654",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.test_rows_are_sorted_by_source_identifier",
      "name": "test_rows_are_sorted_by_source_identifier",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L283-L286",
      "signature": "def test_rows_are_sorted_by_source_identifier(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30e818b15c8eb0f88f5e65dbf1b641cb6e9cd22a683db2d7f5b5288f33d42157",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.test_the_header_is_the_documented_five_columns",
      "name": "test_the_header_is_the_documented_five_columns",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L277-L281",
      "signature": "def test_the_header_is_the_documented_five_columns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9cde1edafb048d5b0d47e535ba34c8aecf52d382ce6520d33fe228a7e381851",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#MappingCsvTests.test_the_source_and_target_databases_are_recorded_on_every_row",
      "name": "test_the_source_and_target_databases_are_recorded_on_every_row",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L299-L301",
      "signature": "def test_the_source_and_target_databases_are_recorded_on_every_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cd17de47877065526e0a39a31c85fb94c56928d9f1ea0fef825618b7452c5f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MappingCsvTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "name": "NcbiEmailTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L668-L693",
      "signature": "class NcbiEmailTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab19e88cf894720f3e2c669442e7183b1b42b8a08b8b91d9d8410feada11a2c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_a_valid_address_on_the_command_line_wins",
      "name": "test_a_valid_address_on_the_command_line_wins",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L671-L675",
      "signature": "def test_a_valid_address_on_the_command_line_wins(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d024f60c0cccf4419fefa4c19b3b096c98bb3818087a54496f6e4efb13bce5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NcbiEmailTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_malformed_addresses_are_refused",
      "name": "test_malformed_addresses_are_refused",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L689-L693",
      "signature": "def test_malformed_addresses_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "146518e5d587fa075d25b066e4664ea63af8fe40e9d20479f800a11871d17939",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NcbiEmailTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_no_address_anywhere_yields_none",
      "name": "test_no_address_anywhere_yields_none",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L684-L687",
      "signature": "def test_no_address_anywhere_yields_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9310cbea0c46194d95653a2862287d20e3c47324a5b0403ded2c9a30ac32adfd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NcbiEmailTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_surrounding_whitespace_is_stripped",
      "name": "test_surrounding_whitespace_is_stripped",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L681-L682",
      "signature": "def test_surrounding_whitespace_is_stripped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eea6294b5aff1cce35323a8189c6cdf8452e83378475fd05a52bf6799c9a7312",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NcbiEmailTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_the_environment_is_the_fallback",
      "name": "test_the_environment_is_the_fallback",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L677-L679",
      "signature": "def test_the_environment_is_the_fallback(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bd4a3f28d49ce99f4b390dbd6eb0b8ce1d8b40b989447bed4928b97260ab2a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NcbiEmailTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "name": "PathwayAnalysisTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L559-L665",
      "signature": "class PathwayAnalysisTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a15cb5d24359400a9c67c0090be482a5b16514b17764e46b6561cad5d83d0906",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "name": "analyse",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L565-L566",
      "signature": "def analyse(self, kegg, pathway_id: str = \"hsa04115\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "df9dadb10374f87aac0bb1888178c1934e31ef9717c58e9eb1dc06aed1e63c6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L560-L563",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_missing_name_falls_back_to_unknown",
      "name": "test_a_missing_name_falls_back_to_unknown",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L585-L587",
      "signature": "def test_a_missing_name_falls_back_to_unknown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "006b93365b4e620fd184266fe7e73fc0772bc2660e949789733e42d9668650da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_pathway_without_kgml_is_skipped_not_fatal",
      "name": "test_a_pathway_without_kgml_is_skipped_not_fatal",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L581-L583",
      "signature": "def test_a_pathway_without_kgml_is_skipped_not_fatal(self) -> None: # Many KEGG pathways have no KGML; one of them must not end the run.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc40e3db7b92fe23d3dcad11cfb50a715bcf35fa06f21f9d92fcbe5d7dc07c78",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_an_empty_pathway_reports_zero_rather_than_failing",
      "name": "test_an_empty_pathway_reports_zero_rather_than_failing",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L589-L592",
      "signature": "def test_an_empty_pathway_reports_zero_rather_than_failing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd4f71388a22a343ec6ee95386e6120c5a14627afc83bcc14b9be7af2bf4e90f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_entries_and_relations_are_counted_and_typed",
      "name": "test_entries_and_relations_are_counted_and_typed",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L568-L579",
      "signature": "def test_entries_and_relations_are_counted_and_typed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e28214300d4ee49b85363245afeca004fa52afc9f1bfa9e78c64fbf16fbdd444",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch",
      "name": "test_failed_pathways_are_dropped_from_the_batch",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L594-L604",
      "signature": "def test_failed_pathways_are_dropped_from_the_batch(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbc563169a590372c3b1b81b6aa17010c63cbfb4bf1a6c8e30f0a8ba13a46608",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky",
      "name": "Flaky",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L595-L599",
      "signature": "class Flaky(FakeKgmlKegg)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ddb95b36f661e526270ea13a697afa81df30451a6596171c03543fcfacb4f22",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky.parse_kgml_pathway",
      "name": "parse_kgml_pathway",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L596-L599",
      "signature": "def parse_kgml_pathway(self, pathway_id)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9eef023e56ef723763138105222e251eff6141f0930b2b2f0dd27edcf89e1b79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Flaky"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_interactions_are_written_as_three_column_sif",
      "name": "test_interactions_are_written_as_three_column_sif",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L639-L648",
      "signature": "def test_interactions_are_written_as_three_column_sif(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b800a7d7ef2c70e07e63500935ddb31067325c95915075fab5eea07ad3820d0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_per_pathway_files_are_named_without_a_colon",
      "name": "test_per_pathway_files_are_named_without_a_colon",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L650-L655",
      "signature": "def test_per_pathway_files_are_named_without_a_colon(self) -> None: # \"path:hsa04115\" would be an illegal filename on some systems.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3045b23315089670f3ff20a56152e6726e77645070211efbf01c38380ac7483",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_limit_truncates_the_pathway_list",
      "name": "test_the_limit_truncates_the_pathway_list",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L606-L612",
      "signature": "def test_the_limit_truncates_the_pathway_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b01256d9c49835df0313b3ef9bb55406e292121f652856e7d5904faf4131e5fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways",
      "name": "test_the_organism_is_set_on_the_client_before_listing_pathways",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L657-L665",
      "signature": "def test_the_organism_is_set_on_the_client_before_listing_pathways(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6c57a3954f885827d0448122ebb656a04a7d401b2b9157afd6fe7748292d700",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways.FakeKeggOrganism",
      "name": "FakeKeggOrganism",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L658-L660",
      "signature": "class FakeKeggOrganism",
      "exported": true,
      "origin": "ast",
      "body_hash": "e84b03ebee818f7b6b65764b90e3015e5dde05b7111318ec15f1d5743daed7ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_summary_buckets_the_four_named_interaction_types",
      "name": "test_the_summary_buckets_the_four_named_interaction_types",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L614-L637",
      "signature": "def test_the_summary_buckets_the_four_named_interaction_types(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd8679aca72fff708dd5f54fbf49ea27ea5b6c2e7a044303180e005424e27bb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathwayAnalysisTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "name": "ProteinSearchTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L696-L750",
      "signature": "class ProteinSearchTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1dc6f66574f4876ce1afe26f8aab9038bf6899ebfa65761499ffcdb15ec25411",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt",
      "name": "FakeUniProt",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L703-L717",
      "signature": "class FakeUniProt",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f51a932df4b5960be685754dd42b88bd8c9b28f95be41940686a477689458ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L704-L707",
      "signature": "def __init__(self, verbose: bool = True, retrieve=None, search=\"\") -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "30d84e4d2f138175645a7fb5cba9b323e2569b9f75e165d978b874bff5a71beb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt.retrieve",
      "name": "retrieve",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L709-L713",
      "signature": "def retrieve(self, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea25bf14b3a739cb2e2bd586387f4175c0e39ed45351fed3c599c97b61a853c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt.search",
      "name": "search",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L715-L717",
      "signature": "def search(self, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "48e8009461ded5b40354e26bbf1c646ccc8d560e882899920e0823cdf109a722",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "name": "run_search",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L719-L723",
      "signature": "def run_search(self, query: str, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6aedf7f3458ccec7d35bcebdc2a6cf25bf271d630e802eba16e3e257f425975",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProteinSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_failed_direct_retrieval_falls_back_to_search",
      "name": "test_a_failed_direct_retrieval_falls_back_to_search",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L737-L740",
      "signature": "def test_a_failed_direct_retrieval_falls_back_to_search(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c6031406d0f14ee5d4ead3bc41c196083b9bf46d912f51e608f83d696c6ce07",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProteinSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_header_only_response_finds_nothing",
      "name": "test_a_header_only_response_finds_nothing",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L742-L746",
      "signature": "def test_a_header_only_response_finds_nothing(self) -> None: # One line means the table had no data rows; indexing lines[1] would # raise instead of reporting \"not found\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "120392afef684afee18adc0ad57872221e8bc12dbfdbd2838528ded2137855d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProteinSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_name_query_falls_through_to_search",
      "name": "test_a_name_query_falls_through_to_search",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L732-L735",
      "signature": "def test_a_name_query_falls_through_to_search(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "63e9848bba90a80181e80ff5d5f4ca7caaaab3aed261982074993321f3e488d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProteinSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_an_accession_shaped_query_is_retrieved_directly",
      "name": "test_an_accession_shaped_query_is_retrieved_directly",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L725-L730",
      "signature": "def test_an_accession_shaped_query_is_retrieved_directly(self) -> None: # P43403 is six characters starting with P, so it is fetched rather # than searched -- one request instead of a full-text query.",
      "exported": true,
      "origin": "ast",
      "body_hash": "46ec9a2b09da41b586cf366fd00d56a43842049af6b81471280b2f83ca237b3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProteinSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_an_empty_response_finds_nothing",
      "name": "test_an_empty_response_finds_nothing",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L748-L750",
      "signature": "def test_an_empty_response_finds_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "391e5e7ff488e092824ef92c70651a6d9f48ee4006ef65020b4c0b8aa5a2c0c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProteinSearchTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#quietly",
      "name": "quietly",
      "kind": "function",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L73-L76",
      "signature": "def quietly(function, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a62b975200098dc9ae6464682189bd0e6fd5e7e606588ef3faf72680f1ef48d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#RecordingUniProt",
      "name": "RecordingUniProt",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L137-L148",
      "signature": "class RecordingUniProt",
      "exported": true,
      "origin": "ast",
      "body_hash": "bedfdfd464986a86fcfb437f3eb587b4dc58a7d86b6c7fa9656eb013c06ad53d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#RecordingUniProt.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L140-L142",
      "signature": "def __init__(self, verbose: bool = True) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "7e0ef320ec970ba881e51120d771c463b38e1987cd41e9867c15557c3c35a618",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#RecordingUniProt.mapping",
      "name": "mapping",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L146-L148",
      "signature": "def mapping(self, fr: str, to: str, query: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3863fdbbd29ddcfe21cf329b457249ad4c68ab528a13f4f3baa3ccc541a1220",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests",
      "name": "SequenceRetrievalTests",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L753-L781",
      "signature": "class SequenceRetrievalTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab91222fbf8608311efa640aa75b5643ae0a32f4247de35ce330d92c2eb27904",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt",
      "name": "FakeUniProt",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L754-L761",
      "signature": "class FakeUniProt",
      "exported": true,
      "origin": "ast",
      "body_hash": "66f98f8ac183f290ccab276f82e3ba2d4cd8bb3d787a0a5133e7d442fa64cbcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L755-L757",
      "signature": "def __init__(self, fasta) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ab57dc1bb804d2ad667f52b796a9fcacb8f24560b203bf67113b8d4606adf0a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt.retrieve",
      "name": "retrieve",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L759-L761",
      "signature": "def retrieve(self, identifier, frmt=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c73841194e26932befa3e4c294e23a9cb1cce592845a7e01f2fd27aff0a830b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeUniProt"
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence",
      "name": "test_a_service_error_yields_no_sequence",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L776-L781",
      "signature": "def test_a_service_error_yields_no_sequence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b20323a16229fbda66a67087974f5b90526d4018bc897d915c5bd6fdcb37009",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceRetrievalTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence.Broken",
      "name": "Broken",
      "kind": "class",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L777-L779",
      "signature": "class Broken",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5283f15b7440189fe923403b78fa5cde5fe72eb834d6e4e25bfc262b373caff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence.Broken.retrieve",
      "name": "retrieve",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L778-L779",
      "signature": "def retrieve(self, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6383cf060862681fc562277de81e1fac0fa507a40b8d06811a5a6926c939e4f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Broken"
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_an_empty_response_yields_no_sequence",
      "name": "test_an_empty_response_yields_no_sequence",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L771-L774",
      "signature": "def test_an_empty_response_yields_no_sequence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "97a687f4efea150a88f1c1b8f81685af5952c03c5a067b69bc85421152275d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceRetrievalTests"
    },
    {
      "id": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_the_fasta_header_is_dropped_and_the_lines_joined",
      "name": "test_the_fasta_header_is_dropped_and_the_lines_joined",
      "kind": "method",
      "path": "tests/bioservices/test_scripts.py",
      "span": "L763-L769",
      "signature": "def test_the_fasta_header_is_dropped_and_the_lines_joined(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ec327ce526aa40bbfb5fe64a37fc4c1f71ab19651e138b8777ec44a63055627",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceRetrievalTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L1-L385",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a822e180b5dda210142b48757ef1d8f157210b204781b2c397412acadf0f7fd1",
      "chars": 16776,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "name": "CountsMatrixTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L302-L380",
      "signature": "class CountsMatrixTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee7dfed138ddae62bd93e8c126d3e7389693fade84dba5ab1d0e093f682c0ed4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests._star_table",
      "name": "_star_table",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L308-L316",
      "signature": "def _star_table(self, sample: str, rows: str) -> None: # STAR tables sit flat in the directory, named <sample>.ReadsPerGene.out.tab.",
      "exported": false,
      "origin": "ast",
      "body_hash": "06e03699f5292a0e79b86be7c6fb9aeada460edcf73d9ff274ec65d990fb67bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L303-L306",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_an_empty_directory_exits_with_a_message",
      "name": "test_an_empty_directory_exits_with_a_message",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L349-L352",
      "signature": "def test_an_empty_directory_exits_with_a_message(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41e1f45661c270365748e2220788f5f91c04f35311d4d111f7ce0ab03737252c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_featurecounts_output_is_reduced_to_genes_by_samples",
      "name": "test_featurecounts_output_is_reduced_to_genes_by_samples",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L354-L368",
      "signature": "def test_featurecounts_output_is_reduced_to_genes_by_samples(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "68d90ca63c6a8c4a9bc1dfc6c5308354ce2a92a3d76583674921aad60dde5220",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_genes_absent_from_one_sample_become_zero_not_nan",
      "name": "test_genes_absent_from_one_sample_become_zero_not_nan",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L335-L340",
      "signature": "def test_genes_absent_from_one_sample_become_zero_not_nan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f558f41a2233844160ce62acdad3d77fb40659e810b25378fed1e0ccc5c214b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_outputs_are_written_where_downstream_steps_expect_them",
      "name": "test_outputs_are_written_where_downstream_steps_expect_them",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L370-L380",
      "signature": "def test_outputs_are_written_where_downstream_steps_expect_them(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3be78ec4c9fc22acac3679e11b524bacc1646a1180d9c2904349578c255f43c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_star_counts_are_assembled_from_per_sample_tables",
      "name": "test_star_counts_are_assembled_from_per_sample_tables",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L318-L326",
      "signature": "def test_star_counts_are_assembled_from_per_sample_tables(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8add24948d5d6f74ce97ad56063d2101f7b1258c2bbf212fa808370b0cd2835a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_star_summary_rows_are_excluded_from_the_gene_matrix",
      "name": "test_star_summary_rows_are_excluded_from_the_gene_matrix",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L328-L333",
      "signature": "def test_star_summary_rows_are_excluded_from_the_gene_matrix(self) -> None: # The first four rows are alignment statistics, not genes; counting # them would inflate the library size for every sample.",
      "exported": true,
      "origin": "ast",
      "body_hash": "14e14eade295aaab4c8a76ffa70ed367146fb09c94b7e56918c8c99d395208ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_the_strand_choice_selects_a_different_column",
      "name": "test_the_strand_choice_selects_a_different_column",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L342-L347",
      "signature": "def test_the_strand_choice_selects_a_different_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "65bf947baaff6c9b2d046b9fbf5da8f508d0821799702fc87b7b50599a39e0d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountsMatrixTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "name": "FileExistenceTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L159-L192",
      "signature": "class FileExistenceTests(SamplesheetTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc85c2dd091caac96c45664843c81490e9c9e61591afdf562fc07286726bf592",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_absent_local_reads_are_errors_when_checking_is_on",
      "name": "test_absent_local_reads_are_errors_when_checking_is_on",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L160-L162",
      "signature": "def test_absent_local_reads_are_errors_when_checking_is_on(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1db1c6e2cffa28e19964aab8e86d6d2f00a6765e03a5fd55db8775246d8e179",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileExistenceTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_an_unusual_extension_on_an_existing_file_is_only_a_warning",
      "name": "test_an_unusual_extension_on_an_existing_file_is_only_a_warning",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L171-L177",
      "signature": "def test_an_unusual_extension_on_an_existing_file_is_only_a_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f58ac0d451c6139d36dad45c56e9d55e370e3e78255a7955ae321866d1dc789e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileExistenceTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_nothing_is_checked_when_file_checking_is_off",
      "name": "test_nothing_is_checked_when_file_checking_is_off",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L190-L192",
      "signature": "def test_nothing_is_checked_when_file_checking_is_off(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "85e0c6415a837c42e51ed79e4e1d1b68ecea23fa6869d53624c4042f1db936a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileExistenceTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_present_local_reads_pass",
      "name": "test_present_local_reads_pass",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L164-L169",
      "signature": "def test_present_local_reads_pass(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "57149c54c2017886a81a5cec8229fdb53a360dbf6b505cda04874d79f15dd7e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileExistenceTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_remote_urls_are_skipped_rather_than_reported_missing",
      "name": "test_remote_urls_are_skipped_rather_than_reported_missing",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L179-L188",
      "signature": "def test_remote_urls_are_skipped_rather_than_reported_missing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9404f92b72f479e19a8fbfcf537bba4b8ae44bbcef0b3ec3e4ec8aeaaeab03f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileExistenceTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "name": "MetadataTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L195-L264",
      "signature": "class MetadataTests(SamplesheetTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a2845e91bf533feea8eff619a5bc4b3e068ab6ed8b7f642d197cfd4121ae3ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "name": "_validate_metadata",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L196-L204",
      "signature": "def _validate_metadata(self, metadata: str, sheet_text: str = GOOD_SHEET, condition_col: str = \"condition\", min_rep: int = 3)",
      "exported": false,
      "origin": "ast",
      "body_hash": "377edd1729290ea583323ffbcfcb3d31e33ccfa553a13cf09529b5256b275811",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_crossed_batch_design_is_not_flagged",
      "name": "test_a_crossed_batch_design_is_not_flagged",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L262-L264",
      "signature": "def test_a_crossed_batch_design_is_not_flagged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "299ce78b02a55da704d8a30975cfa82b0f3ac6a064eae5ca1c82af71d82fed29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_matching_design_passes_apart_from_the_replicate_advisory",
      "name": "test_a_matching_design_passes_apart_from_the_replicate_advisory",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L206-L208",
      "signature": "def test_a_matching_design_passes_apart_from_the_replicate_advisory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9863caff86597b206de0ba86f35452dcd0803ccf422fa2f45e0b2c9113fcac5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_missing_condition_column_names_the_columns_it_found",
      "name": "test_a_missing_condition_column_names_the_columns_it_found",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L210-L213",
      "signature": "def test_a_missing_condition_column_names_the_columns_it_found(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d39815c84fcba5fdfe3928dcef6f5f006e93726aea24cd15cb421e6eb48c570b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_singleton_group_cannot_estimate_variance_and_is_fatal",
      "name": "test_a_singleton_group_cannot_estimate_variance_and_is_fatal",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L228-L239",
      "signature": "def test_a_singleton_group_cannot_estimate_variance_and_is_fatal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab9cf011ef86953b05bc63a7c8b7780413550ae4ee8af74f5d6f8fa011256976",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_an_entirely_empty_condition_column_is_fatal",
      "name": "test_an_entirely_empty_condition_column_is_fatal",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L246-L250",
      "signature": "def test_an_entirely_empty_condition_column_is_fatal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae8a30a8b2dee9a09d3bb87bdb10dd8f631b2b4949b8e589184376abc7c5e36f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_batch_fully_nested_in_condition_is_flagged_as_confounded",
      "name": "test_batch_fully_nested_in_condition_is_flagged_as_confounded",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L252-L260",
      "signature": "def test_batch_fully_nested_in_condition_is_flagged_as_confounded(self) -> None: # Each batch holding a single condition means the batch effect and the # biology cannot be told apart -- the most expensive silent mistake here.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0d4a3d6d13f683b5641ec41e3ccd05ba11ec5a1a8f57490d530c7d7ae0a5bfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_extra_metadata_samples_are_only_a_warning",
      "name": "test_extra_metadata_samples_are_only_a_warning",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L221-L226",
      "signature": "def test_extra_metadata_samples_are_only_a_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "421eaa5b00369a8e5a0334fc4ba64eda09ad9abd1a433c5528840c03b5d86cc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_samples_missing_from_the_metadata_are_an_error",
      "name": "test_samples_missing_from_the_metadata_are_an_error",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L215-L219",
      "signature": "def test_samples_missing_from_the_metadata_are_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f40c720f54d0ea70e87d9f66d25afaf7b9dca6c3aadbad2174887f7d52fa655b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_two_replicates_pass_but_warn_below_the_recommended_minimum",
      "name": "test_two_replicates_pass_but_warn_below_the_recommended_minimum",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L241-L244",
      "signature": "def test_two_replicates_pass_but_warn_below_the_recommended_minimum(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d59ba9a554d9d9a1f998be98d4d5c515a1ace5c6f029b3fd4a33f7a99c0df2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#ReportTests",
      "name": "ReportTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L267-L278",
      "signature": "class ReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5411c057f472834739fd7445a0b5d5ef7a2b24f54c8f4314d922a6854ec57968",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#ReportTests.test_errors_fail_the_run_and_warnings_do_not",
      "name": "test_errors_fail_the_run_and_warnings_do_not",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L268-L278",
      "signature": "def test_errors_fail_the_run_and_warnings_do_not(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e05e196e9f28cc7f0f488f2df33562aa95613e65cb9ef1b4c14e7f27cd4df4b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests",
      "name": "SampleNameTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L281-L299",
      "signature": "class SampleNameTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d9fe1e341d53147a6919bb2bc0bfe4c80157014a8b54402f5928beb6b10a63a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests.test_cleaning_is_idempotent",
      "name": "test_cleaning_is_idempotent",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L288-L291",
      "signature": "def test_cleaning_is_idempotent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ace414c28ed575da23b0dfba7f439fd6f804f97fb1258eddd50e62edb1e6029a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleNameTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests.test_common_quantifier_suffixes_are_stripped",
      "name": "test_common_quantifier_suffixes_are_stripped",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L282-L286",
      "signature": "def test_common_quantifier_suffixes_are_stripped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "728fe5da5f9aef773d7a92becdf87f2c9185588eeeedc9f37745dac061e76f52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleNameTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests.test_the_star_strand_columns_match_the_documented_layout",
      "name": "test_the_star_strand_columns_match_the_documented_layout",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L293-L299",
      "signature": "def test_the_star_strand_columns_match_the_documented_layout(self) -> None: # STAR's ReadsPerGene.out.tab puts unstranded/forward/reverse in # columns 1-3; picking the wrong one silently halves the counts.",
      "exported": true,
      "origin": "ast",
      "body_hash": "81cb4ba97580a6828a3aaabd9747551147c0aee2a10deff925c3835f54a91453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleNameTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "name": "SamplesheetContentTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L105-L156",
      "signature": "class SamplesheetContentTests(SamplesheetTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d99ad9c3a74a7f02a9c5d936eae068b50c4b3236385b9ebb58f5547b518ebfc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_a_reused_read_one_file_is_an_error",
      "name": "test_a_reused_read_one_file_is_an_error",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L116-L120",
      "signature": "def test_a_reused_read_one_file_is_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cc3b5a9586eee08d3a5ca57a84ba9310106e564e6f47a713912fb7725a1f9eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_empty_sample_or_read_cells_are_errors_with_a_row_number",
      "name": "test_empty_sample_or_read_cells_are_errors_with_a_row_number",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L106-L109",
      "signature": "def test_empty_sample_or_read_cells_are_errors_with_a_row_number(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29c141e06444623fb3225016ad380cd2b08343fd05a07b46688bb24e9ee24461",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_every_documented_strandedness_value_is_accepted",
      "name": "test_every_documented_strandedness_value_is_accepted",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L126-L132",
      "signature": "def test_every_documented_strandedness_value_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a5a89a8f0537c12cc74da0a2a09d1810c3dbd3130b4857202e6da6d8567237d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_mixing_paired_and_single_rows_for_one_sample_is_an_error",
      "name": "test_mixing_paired_and_single_rows_for_one_sample_is_an_error",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L148-L156",
      "signature": "def test_mixing_paired_and_single_rows_for_one_sample_is_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "da6b86ed24b021ff1970431f94ba75df0363429866f5cb6b6816025dbefef085",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_one_sample_across_lanes_warns_but_does_not_fail",
      "name": "test_one_sample_across_lanes_warns_but_does_not_fail",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L138-L146",
      "signature": "def test_one_sample_across_lanes_warns_but_does_not_fail(self) -> None: # nf-core merges lanes, so this is normal -- it must stay a warning.",
      "exported": true,
      "origin": "ast",
      "body_hash": "54649f420665ce5d9e011767ddc1ccebf28a3a3b6b3246c6e0c224962bb62d42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_strandedness_is_matched_case_insensitively",
      "name": "test_strandedness_is_matched_case_insensitively",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L134-L136",
      "signature": "def test_strandedness_is_matched_case_insensitively(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cf23e81deb4a3379cbf8afe97b9f836feba6f46508145b80d894b8f13773ee4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_the_same_file_in_both_read_columns_is_an_error",
      "name": "test_the_same_file_in_both_read_columns_is_an_error",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L111-L114",
      "signature": "def test_the_same_file_in_both_read_columns_is_an_error(self) -> None: # A copy-paste that would silently halve the library.",
      "exported": true,
      "origin": "ast",
      "body_hash": "52d56ea00d967cfbf447bba5708bd966f3d6943ee83151e26872c6803c6a0ef6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_unknown_strandedness_values_are_rejected",
      "name": "test_unknown_strandedness_values_are_rejected",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L122-L124",
      "signature": "def test_unknown_strandedness_values_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "377a37c222cdf3082eaad4a4e186256f3baee3800c346bbd697cf26239e0f1f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetContentTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "name": "SamplesheetShapeTests",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L70-L102",
      "signature": "class SamplesheetShapeTests(SamplesheetTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9af83001735ad5e34707f8166f0600a303cc0150303559f0c859609a471a3ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_missing_file_is_an_error_not_a_crash",
      "name": "test_a_missing_file_is_an_error_not_a_crash",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L78-L83",
      "signature": "def test_a_missing_file_is_an_error_not_a_crash(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10fcbc88256325bffe04b9c69e4f3692c2e8f5dd846b24501a583397ce8ebcb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetShapeTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_missing_strandedness_column_is_only_advisory",
      "name": "test_a_missing_strandedness_column_is_only_advisory",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L99-L102",
      "signature": "def test_a_missing_strandedness_column_is_only_advisory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e20e5861307cec9c06c7c0631856db5fe6cad1b85963360d94069fc16af11a8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetShapeTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_well_formed_sheet_passes_cleanly",
      "name": "test_a_well_formed_sheet_passes_cleanly",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L71-L76",
      "signature": "def test_a_well_formed_sheet_passes_cleanly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0601988d46821ccc6bb4b084a34d7340b6d3708cdc8bfe60e28dedcaca8d485",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetShapeTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_the_required_columns_are_sample_and_fastq_1",
      "name": "test_the_required_columns_are_sample_and_fastq_1",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L85-L89",
      "signature": "def test_the_required_columns_are_sample_and_fastq_1(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "293b22a98b1a0f3d06a5c736288684c3c1922ebfe6e98c6c9edc84bb83b26bd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetShapeTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_whitespace_around_headers_and_values_is_stripped",
      "name": "test_whitespace_around_headers_and_values_is_stripped",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L91-L97",
      "signature": "def test_whitespace_around_headers_and_values_is_stripped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb0b4e33c6af281462d48a829574256071dbb818ba48179ae51957cabd29b828",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetShapeTests"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "name": "SamplesheetTestCase",
      "kind": "class",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L52-L67",
      "signature": "class SamplesheetTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f295f785e9bbb381b268199d1c661ff74c798a8907fb21bc1a1d06904b251918",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L53-L57",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cd9f85999ee51d1b027b9198ccfc2d09b72e7b5d4b635e2a83173992f5cd858",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetTestCase"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "name": "validate",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L64-L67",
      "signature": "def validate(self, text: str, check_files: bool = False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "57944e4c9fc55624d8f46e4718672b56797a6c4f9d904c5f91e91d33ff5819ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetTestCase"
    },
    {
      "id": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.write",
      "name": "write",
      "kind": "method",
      "path": "tests/bulk-rnaseq/test_scripts.py",
      "span": "L59-L62",
      "signature": "def write(self, name: str, text: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8b13993675bd29a7a78faa4758fd96efc5e2cfaa79d631ded99047038cc0beb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SamplesheetTestCase"
    },
    {
      "id": "tests/citation-management/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L1-L649",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d29fcc9317a7b1da24ef1b3015fc5194dd192ba0aeb0a14ab2903f43292cf2b4",
      "chars": 27903,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "name": "BibTeXTestCase",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L61-L71",
      "signature": "class BibTeXTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f1973d2f6acdd9284aae15f4c06948af04434d0c031a46a2b5faa0c2b7248d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "name": "bib",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L68-L71",
      "signature": "def bib(self, text: str = BIBLIOGRAPHY) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3d052bd05755f9d84e2dcbf3a7191b137b2492b7cc9f73fea37aff534870858",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXTestCase"
    },
    {
      "id": "tests/citation-management/test_scripts.py#BibTeXTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L62-L66",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf1596c6b09ec41743cc5a69dba65a74b865d73b01012ec81bcd3f3db5f1f5a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BibTeXTestCase"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "name": "CitationKeyTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L470-L503",
      "signature": "class CitationKeyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3650b78f2750c25f4d5edf234f225d88af3e332e7edddbfd98512ff3ec3573ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_comma_separated_name_uses_the_surname",
      "name": "test_a_comma_separated_name_uses_the_surname",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L471-L475",
      "signature": "def test_a_comma_separated_name_uses_the_surname(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fd4aee8d430d9351ad2f2cb3920bf29664da85a5d08599d68a9ea1770abe2c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_key_is_always_safe_to_use",
      "name": "test_a_key_is_always_safe_to_use",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L490-L494",
      "signature": "def test_a_key_is_always_safe_to_use(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "520e090b4801a1585ac73cc13ed4233ab69a00cee7c109250c1653d2daeb7d6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_missing_year_becomes_a_placeholder",
      "name": "test_a_missing_year_becomes_a_placeholder",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L496-L497",
      "signature": "def test_a_missing_year_becomes_a_placeholder(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf1cde5b2d937d341230ad9687ed69142d89c738a7a86cbcc08d017c8e3ba828",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_pubmed_style_name_uses_the_leading_surname",
      "name": "test_a_pubmed_style_name_uses_the_leading_surname",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L477-L479",
      "signature": "def test_a_pubmed_style_name_uses_the_leading_surname(self) -> None: # `Smith JA` is surname-first; taking the last token yields `JA`.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac2829f0534a659fbfc054ff16d276f40b28e10bd712d1a464ea0a3431eeed5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_western_style_name_uses_the_trailing_surname",
      "name": "test_a_western_style_name_uses_the_trailing_surname",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L481-L482",
      "signature": "def test_a_western_style_name_uses_the_trailing_surname(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8fbad473f7d6b9ce468b0d5e390995825365aa2d63eff9d6b805a7420b92d5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_accents_and_punctuation_are_removed",
      "name": "test_accents_and_punctuation_are_removed",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L484-L488",
      "signature": "def test_accents_and_punctuation_are_removed(self) -> None: # A key reaches LaTeX and sometimes a file path, and its source is a # publisher-controlled record.",
      "exported": true,
      "origin": "ast",
      "body_hash": "216d6446b011c9bf66714e29f9bd682a76b0128c15281418f573283f76dc21f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#CitationKeyTests.test_the_same_paper_from_two_sources_gets_the_same_key",
      "name": "test_the_same_paper_from_two_sources_gets_the_same_key",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L499-L503",
      "signature": "def test_the_same_paper_from_two_sources_gets_the_same_key(self) -> None: # This is what makes cross-source deduplication possible at all.",
      "exported": true,
      "origin": "ast",
      "body_hash": "73578ef5e0bd797793f6b03936fa322ba79b1a3c9dfd4b0ebc5178a926cdc98e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationKeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "name": "DeduplicationTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L205-L237",
      "signature": "class DeduplicationTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbebb168e9347372b8d3443fe818332899782ed1afbe7fe81282f3777e09e507",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "name": "_entries",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L206-L209",
      "signature": "def _entries(self, *specs) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "f392e03368e8ba8b80bbef41e16a90907cd8c804be6827b0e47355f9cc06f723",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests.test_distinct_entries_all_survive",
      "name": "test_distinct_entries_all_survive",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L221-L225",
      "signature": "def test_distinct_entries_all_survive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad4079f367f0103914de31ba3e264f65493735871594824adec712a35799df4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_sharing_a_citation_key_collapse_to_one",
      "name": "test_entries_sharing_a_citation_key_collapse_to_one",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L217-L219",
      "signature": "def test_entries_sharing_a_citation_key_collapse_to_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd00ded65381605fe5dcb97b608545f595e466e89f98550c94a03caa076e57ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_sharing_a_doi_collapse_to_one",
      "name": "test_entries_sharing_a_doi_collapse_to_one",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L211-L215",
      "signature": "def test_entries_sharing_a_doi_collapse_to_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "136c75e57f8c213a0cb9a23c4802dc606430636c818804f742180ae09e06aec4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_without_a_doi_are_deduplicated_by_key_alone",
      "name": "test_entries_without_a_doi_are_deduplicated_by_key_alone",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L235-L237",
      "signature": "def test_entries_without_a_doi_are_deduplicated_by_key_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "136a2bb15542b79ec0c3bc2b560f21a5138e3c11d3a67c0ebf84200349f65802",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#DeduplicationTests.test_the_first_occurrence_is_kept",
      "name": "test_the_first_occurrence_is_kept",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L227-L233",
      "signature": "def test_the_first_occurrence_is_kept(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "af87bc1cae7f4ebaf4d86e446640abc36fc8fb9fb76481e084cb0114c2dfd6a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EndToEndTests",
      "name": "EndToEndTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L339-L354",
      "signature": "class EndToEndTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5be9323a4376c4c872db5c8f2466fe2a8cec812db1a4b76a22741ed72338259",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#EndToEndTests.test_formatting_a_file_applies_every_fix",
      "name": "test_formatting_a_file_applies_every_fix",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L340-L349",
      "signature": "def test_formatting_a_file_applies_every_fix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2f3ab6789e45b1cbe069086df78b52619ef47d39f85e0af85e795d787d95a98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EndToEndTests.test_the_result_still_parses",
      "name": "test_the_result_still_parses",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L351-L354",
      "signature": "def test_the_result_still_parses(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b3c8f7fe1a0834ebf1abd6351664e455bcc6512489fd6c757d01b8328a7deea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "name": "EntryRenderingTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L539-L601",
      "signature": "class EntryRenderingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7d48eb3deb9bb13bfadb68e046e2f608fb342d5bc5c4e32ecc7d04004ec4076",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "name": "_fields",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L545-L546",
      "signature": "def _fields(self, bibtex: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "dbaf185725e1d928e69d879e5a770a46afccb867bc9af591f6cf79787b5ce9a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L542-L543",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71b19cc2ebb11fc832ac3be5e4d6f5a5151b18acc2aa1accea71fb317b6d6b21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_book_keeps_its_publisher",
      "name": "test_a_book_keeps_its_publisher",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L548-L555",
      "signature": "def test_a_book_keeps_its_publisher(self) -> None: # `publisher` was extracted from Crossref and then dropped by the # writer, so every @book failed its own required-field check.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7de2d2f42a5f37df8dbff00dd442a4b95a310fae31d9d691ec0f25e5d5bf3e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_chapter_uses_booktitle_rather_than_journal",
      "name": "test_a_chapter_uses_booktitle_rather_than_journal",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L564-L570",
      "signature": "def test_a_chapter_uses_booktitle_rather_than_journal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "00b1db322e824c40635901f6607106da26f971f8abbc55b1d79ea7a1cfc184a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_published_preprint_gains_its_journal",
      "name": "test_a_published_preprint_gains_its_journal",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L583-L585",
      "signature": "def test_a_published_preprint_gains_its_journal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a7154229d9f349bb91eb419b7b7b2d5c4a4f1a9124dc8f303b73bec3a44d943",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_pubmed_entry_key_is_shared_scheme_and_pages_expand",
      "name": "test_a_pubmed_entry_key_is_shared_scheme_and_pages_expand",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L595-L601",
      "signature": "def test_a_pubmed_entry_key_is_shared_scheme_and_pages_expand(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f54bb282b773ea0388e8093d564f4b172cd9a699c4582bb443471771c82d9495",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_report_maps_its_publisher_to_institution",
      "name": "test_a_report_maps_its_publisher_to_institution",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L557-L562",
      "signature": "def test_a_report_maps_its_publisher_to_institution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "86facb42a3946bbf45b0ad1612e3db6e5dc5cca038f2e8fd0f2155b1d8911772",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_an_unpublished_preprint_is_misc_not_a_journalless_article",
      "name": "test_an_unpublished_preprint_is_misc_not_a_journalless_article",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L572-L581",
      "signature": "def test_an_unpublished_preprint_is_misc_not_a_journalless_article(self) -> None: # arXiv mints DOIs for unpublished preprints, so a DOI alone must not # promote an entry to @article -- that yields an article with no # journal, which fails validation every time.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a39c18285e6df52defea293723fb4f1a3aac6699e55a041b21960d636dfc5f60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_only_one_note_field_is_emitted",
      "name": "test_only_one_note_field_is_emitted",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L587-L593",
      "signature": "def test_only_one_note_field_is_emitted(self) -> None: # Two `note` lines in one entry is a BibTeX error.",
      "exported": true,
      "origin": "ast",
      "body_hash": "faed5874554bd70df136b5cc05adde62e4a74415fa9c0b9933873736fd2587ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EntryRenderingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests",
      "name": "FixTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L151-L202",
      "signature": "class FixTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bbe12d58e45d7fb63373b36be4cc2bb4ba4dbd410a1817982ceb507ae1032f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "name": "_fixed_fields",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L152-L154",
      "signature": "def _fixed_fields(self, **fields) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "3b684b3a1f5b8503cf32faa8c01a7bbe09984907a2300c480122f8c0d6851768",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_a_bare_doi_is_untouched",
      "name": "test_a_bare_doi_is_untouched",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L178-L179",
      "signature": "def test_a_bare_doi_is_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22abede8f36a59a5b44ccfcea87ed22369f052b3892f5a027a49be247863c945",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_a_doi_loses_its_url_prefix",
      "name": "test_a_doi_loses_its_url_prefix",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L168-L176",
      "signature": "def test_a_doi_loses_its_url_prefix(self) -> None: # A DOI stored as a URL fails every downstream Crossref lookup.",
      "exported": true,
      "origin": "ast",
      "body_hash": "46131a3e8cdfc6df0085f1155b62ff8945e95a7ce0817692eaa2f26938e1a824",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_a_doubled_and_is_collapsed",
      "name": "test_a_doubled_and_is_collapsed",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L191-L194",
      "signature": "def test_a_doubled_and_is_collapsed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3256e89489ef4952ff54fdfa722cd9844995e8a532cbfa20d96a6313cd530d9e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_a_pp_prefix_is_stripped",
      "name": "test_a_pp_prefix_is_stripped",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L163-L166",
      "signature": "def test_a_pp_prefix_is_stripped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0740b05d523b7d49ee7bcb58ed015817842815eae0b40df497643c73e6a672da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_a_single_hyphen_page_range_becomes_an_en_dash_range",
      "name": "test_a_single_hyphen_page_range_becomes_an_en_dash_range",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L156-L158",
      "signature": "def test_a_single_hyphen_page_range_becomes_an_en_dash_range(self) -> None: # BibTeX renders `583-589` as a hyphen, not an en dash.",
      "exported": true,
      "origin": "ast",
      "body_hash": "781fdcae1c1ef13060ace9947357cf949987568c542440b56f3ad7fe44ed8142",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_absent_fields_are_not_invented",
      "name": "test_absent_fields_are_not_invented",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L201-L202",
      "signature": "def test_absent_fields_are_not_invented(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "438888b9f00d148fe49302f17ba51ac419f1da5f2ace8c0053921c89c4bf1c94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_an_already_correct_range_is_left_alone",
      "name": "test_an_already_correct_range_is_left_alone",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L160-L161",
      "signature": "def test_an_already_correct_range_is_left_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e4bc2f48c97c426e9030e53d8058bb7cdbf322be832fd07bf6ea2a1845c363d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_author_separators_are_normalised_to_and",
      "name": "test_author_separators_are_normalised_to_and",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L181-L189",
      "signature": "def test_author_separators_are_normalised_to_and(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b35b389ce13ac660cfaf08964645611ba00d3b12839f87339e2ff48957b6fcfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#FixTests.test_fixing_does_not_mutate_the_original_entry",
      "name": "test_fixing_does_not_mutate_the_original_entry",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L196-L199",
      "signature": "def test_fixing_does_not_mutate_the_original_entry(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "017c94299bf1d26c7f4341a656311fb3d344825d60c4fe873952f46208bd0499",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FixTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "name": "OpenAlexTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L605-L644",
      "signature": "class OpenAlexTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38264bbbe817ca4284ef2edba4dd79cb7d7c5cdf9eb7504981b04d2d4bad8f56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L606-L607",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aac06ea4f269cf392eb5395ad54adcba5b56b7d6a631683bfacfb0e6b400e94e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests.test_a_preprint_renders_as_misc",
      "name": "test_a_preprint_renders_as_misc",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L639-L644",
      "signature": "def test_a_preprint_renders_as_misc(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f46f043fc7af1555529dfc6938da86babd82520620883ca2f3ab871d7ace45fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests.test_a_single_page_work_does_not_become_a_range",
      "name": "test_a_single_page_work_does_not_become_a_range",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L635-L637",
      "signature": "def test_a_single_page_work_does_not_become_a_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49e42a0232130b861a0c60ff07977aaa7e226b65b6b7df66116f0e33362c887a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests.test_a_work_is_flattened_to_the_shared_metadata_shape",
      "name": "test_a_work_is_flattened_to_the_shared_metadata_shape",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L618-L633",
      "signature": "def test_a_work_is_flattened_to_the_shared_metadata_shape(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "66530b36e19a361230c7f706136b84cfd511bdc16a5611639a2ab3e8823f5f7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests.test_an_absent_abstract_yields_an_empty_string",
      "name": "test_an_absent_abstract_yields_an_empty_string",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L615-L616",
      "signature": "def test_an_absent_abstract_yields_an_empty_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a21886b15427866bbe97d4de6ae9ee1d9ad281562973becc6f1c8c5bbd5dd4fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#OpenAlexTests.test_an_abstract_is_rebuilt_from_its_inverted_index",
      "name": "test_an_abstract_is_rebuilt_from_its_inverted_index",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L609-L613",
      "signature": "def test_an_abstract_is_rebuilt_from_its_inverted_index(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "764c68be597d6bdbaef5d8b9aaf9f06d7477613f4f486e4059fb1237bb614f58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests",
      "name": "PageTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L441-L467",
      "signature": "class PageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a40dba71bd5d0f41a6830cfb489e619e723784737a0a071ecc56e0ad13fce54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_a_pp_prefix_is_stripped",
      "name": "test_a_pp_prefix_is_stripped",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L460-L461",
      "signature": "def test_a_pp_prefix_is_stripped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c237bafe505afea444014480a63321f8538eb199124c7e6e3e8b5bfb313dd82d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_a_single_hyphen_range_becomes_an_en_dash_range",
      "name": "test_a_single_hyphen_range_becomes_an_en_dash_range",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L442-L443",
      "signature": "def test_a_single_hyphen_range_becomes_an_en_dash_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4d32c89ac2f8f3bfc298e49541a7c99892869a8e7af02c05de9bdefeaf0a4e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_an_abbreviated_end_page_is_expanded",
      "name": "test_an_abbreviated_end_page_is_expanded",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L449-L453",
      "signature": "def test_an_abbreviated_end_page_is_expanded(self) -> None: # PubMed's MedlinePgn abbreviates the end page; `1123--30` is not a # page range any reader or reference manager can resolve.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e598fa95056dd0091dffcfc1bc613b4028f0f607429545ea3cc3803f9922f940",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_an_already_correct_range_is_not_doubled",
      "name": "test_an_already_correct_range_is_not_doubled",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L445-L447",
      "signature": "def test_an_already_correct_range_is_not_doubled(self) -> None: # A blanket `replace('-', '--')` turned this into `583----589`.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a331b785f14ca97bbe4796fa4f87eed1d9ce7599e6eaee47ba4acea71025a52c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_an_article_number_is_left_alone",
      "name": "test_an_article_number_is_left_alone",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L455-L458",
      "signature": "def test_an_article_number_is_left_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "333a1d02cb0c652d1965b32c8421c572125594a2c0e3cc348d46aff69bfbfc29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_an_empty_value_yields_an_empty_string",
      "name": "test_an_empty_value_yields_an_empty_string",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L466-L467",
      "signature": "def test_an_empty_value_yields_an_empty_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d30437e3fbb9991a8d72137d2bc9805a88b4ff9d8b432d25b9a9a8fff78a091a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#PageTests.test_an_en_dash_is_normalised",
      "name": "test_an_en_dash_is_normalised",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L463-L464",
      "signature": "def test_an_en_dash_is_normalised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bb24c9b34721d898591dcd9d5d223fec592c0281b5a06d29b8d126d71abf6c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests",
      "name": "ParsingTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L74-L148",
      "signature": "class ParsingTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80eeff35dec3d265b38a45149277a52cb4a9c06c9ab7e9f96062a1330ac57140",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_a_comma_inside_a_field_does_not_split_the_field",
      "name": "test_a_comma_inside_a_field_does_not_split_the_field",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L122-L127",
      "signature": "def test_a_comma_inside_a_field_does_not_split_the_field(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0faa82d2bfd9d045144bbd1f3fefdbfadd2bd885dca85a9eec0b501f032f325b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_a_nested_brace_in_a_title_survives_parsing",
      "name": "test_a_nested_brace_in_a_title_survives_parsing",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L106-L120",
      "signature": "def test_a_nested_brace_in_a_title_survives_parsing(self) -> None: # Capitalisation protection puts braces inside a field value. A # `\\{([^}]*)\\}` field pattern truncates at the inner brace and silently # corrupts the bibliography, which is what this guards.",
      "exported": true,
      "origin": "ast",
      "body_hash": "73ca7cbe390b238f4eed77e1ec92c748f5f2902f090a8d05ff2a3c07eaa30c83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_an_empty_file_parses_to_no_entries",
      "name": "test_an_empty_file_parses_to_no_entries",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L83-L84",
      "signature": "def test_an_empty_file_parses_to_no_entries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "848688c8070ef618c594a663eb7ff2bc8e71daee94436d1633a7da9f2f9c158a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_an_entry_closed_on_the_same_line_is_recognised",
      "name": "test_an_entry_closed_on_the_same_line_is_recognised",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L97-L104",
      "signature": "def test_an_entry_closed_on_the_same_line_is_recognised(self) -> None: # Single-line entries are legal BibTeX. The brace-depth parser reads # them; the regex it replaced anchored on `\\n}` and skipped them.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdc28cc546711a3e9e8de073512e4169fe32aa5f8b348f04541eebde49ca0069",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_an_unreadable_file_returns_no_entries_rather_than_raising",
      "name": "test_an_unreadable_file_returns_no_entries_rather_than_raising",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L145-L148",
      "signature": "def test_an_unreadable_file_returns_no_entries_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7886021f8b898b125bc7e5596dfad005a8a036714230627e2c38cd6cf42b6382",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_comments_outside_entries_are_ignored",
      "name": "test_comments_outside_entries_are_ignored",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L86-L95",
      "signature": "def test_comments_outside_entries_are_ignored(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "565befa10b62caa10ba9b6ee7f9628a86f7533ae51edbf2ea9e098a714d259eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_entries_are_parsed_with_type_key_and_fields",
      "name": "test_entries_are_parsed_with_type_key_and_fields",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L75-L81",
      "signature": "def test_entries_are_parsed_with_type_key_and_fields(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f51f4ff1a25e8ea0ca21d1226353cd7dca9b21d1897c3c3024c20a153393582e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_quoted_field_values_are_read_as_well_as_braced_ones",
      "name": "test_quoted_field_values_are_read_as_well_as_braced_ones",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L139-L143",
      "signature": "def test_quoted_field_values_are_read_as_well_as_braced_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbc0fee9e831b7f754889b828b074773457c569744d366d80aaca6a15a08daa7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ParsingTests.test_string_and_comment_blocks_are_not_treated_as_entries",
      "name": "test_string_and_comment_blocks_are_not_treated_as_entries",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L129-L137",
      "signature": "def test_string_and_comment_blocks_are_not_treated_as_entries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ff94404caf6168196aa707707b7e13eee7dac67ff18f3053e5ce3ed5d9527f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParsingTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RekeyTests",
      "name": "RekeyTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L522-L535",
      "signature": "class RekeyTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "220143d5a55931f9acba6bc26abf45b570485a1fad007dc7f77ce23b650b133d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#RekeyTests.test_a_key_collision_gets_a_suffix",
      "name": "test_a_key_collision_gets_a_suffix",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L528-L535",
      "signature": "def test_a_key_collision_gets_a_suffix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "98ebbc4c644cf8070234a16ffec069c26082440391a548a5ae6db6b3392d33a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RekeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RekeyTests.test_entries_are_rekeyed_to_the_shared_scheme",
      "name": "test_entries_are_rekeyed_to_the_shared_scheme",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L523-L526",
      "signature": "def test_entries_are_rekeyed_to_the_shared_scheme(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb20b0bb0e608722f69db920558c8fa12a3052027fd015846f5e94b8343329b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RekeyTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RenderTests",
      "name": "RenderTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L285-L336",
      "signature": "class RenderTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "65a7671465b25593e11e688f3d562e131a97ea1372e0d30a784099b94f5a407e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#RenderTests.test_a_formatted_entry_reparses_to_the_same_fields",
      "name": "test_a_formatted_entry_reparses_to_the_same_fields",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L286-L296",
      "signature": "def test_a_formatted_entry_reparses_to_the_same_fields(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40a23e05beb5bba443f34c58ce06bae108d62fd0e751a08da4032599dfd389dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RenderTests.test_a_protected_title_round_trips_without_losing_a_brace",
      "name": "test_a_protected_title_round_trips_without_losing_a_brace",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L314-L329",
      "signature": "def test_a_protected_title_round_trips_without_losing_a_brace(self) -> None: # The regression that motivated the parser rewrite: this pipeline # previously emitted `{... with {AlphaFold}` -- one brace short, so the # file no longer compiled and every later entry was swallowed.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d12a6e2816b34c96095e5d3bd42b96859c06b8c7b3792513f5e18ca54b520e4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RenderTests.test_braces_are_balanced",
      "name": "test_braces_are_balanced",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L308-L312",
      "signature": "def test_braces_are_balanced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "88eacf07108d441c408b05fb5d029b783d9208c5af89d2c1689798a471407869",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RenderTests.test_fields_are_emitted_in_the_documented_order",
      "name": "test_fields_are_emitted_in_the_documented_order",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L298-L306",
      "signature": "def test_fields_are_emitted_in_the_documented_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f969132cf831921beb7e5c2f796d8de5f4ef1a0b7c1b5bfe7a2cd0170c953e7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#RenderTests.test_formatting_is_idempotent",
      "name": "test_formatting_is_idempotent",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L331-L336",
      "signature": "def test_formatting_is_idempotent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1468e82726e8885188403557ee917fbc2eb284d8b950076f899856408b6a44a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests",
      "name": "SortTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L240-L282",
      "signature": "class SortTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c092a970d4e04f5c45bca698d28ca90ddd04577c39ac466a62ebb781c607612b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L241-L246",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "825f9a0bd2133b35d4d4ac852c5c129b705a95b13908a973e1f27086c0c62033",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests.test_an_unknown_sort_field_falls_back_to_the_key",
      "name": "test_an_unknown_sort_field_falls_back_to_the_key",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L278-L282",
      "signature": "def test_an_unknown_sort_field_falls_back_to_the_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8afb2aa53c0d9bf89bf14e9b218bfa2e7a551e2d676f0b72b067016ba4e3c961",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests.test_descending_reverses_the_order",
      "name": "test_descending_reverses_the_order",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L267-L271",
      "signature": "def test_descending_reverses_the_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a58a0d1601f6709d1e1d165dd26c92bf5f8d2e8e998e6722196ee4b7a07c556",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests.test_entries_missing_the_sort_field_go_last",
      "name": "test_entries_missing_the_sort_field_go_last",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L273-L276",
      "signature": "def test_entries_missing_the_sort_field_go_last(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9551f0a2d002fa7d4f28871c6852390821ed9b11d1558fb44454d060c2306279",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests.test_sorting_by_year_author_and_title",
      "name": "test_sorting_by_year_author_and_title",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L254-L265",
      "signature": "def test_sorting_by_year_author_and_title(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b842ccd8aec3324a7ef19b4e08d9910d94039be847e0ecc8802763323f479366",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#SortTests.test_the_default_sort_is_by_citation_key",
      "name": "test_the_default_sort_is_by_citation_key",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L248-L252",
      "signature": "def test_the_default_sort_is_by_citation_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2353d62235c0fff7158d6609c56e0abc6699f4f9917f5c476f906557a94a9c7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SortTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#TitleProtectionTests",
      "name": "TitleProtectionTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L506-L519",
      "signature": "class TitleProtectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd8402dd64f7337d9a011fc2d69fd143cfe3eeb0a38f2af78dee030cae4b0b53",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#TitleProtectionTests.test_an_acronym_inside_a_longer_word_is_untouched",
      "name": "test_an_acronym_inside_a_longer_word_is_untouched",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L517-L519",
      "signature": "def test_an_acronym_inside_a_longer_word_is_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d6bc2edb3c60527dd26395fd3d89829fb456c78547badcdc773d1e25e28f9f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TitleProtectionTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#TitleProtectionTests.test_an_acronym_is_braced",
      "name": "test_an_acronym_is_braced",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L507-L511",
      "signature": "def test_an_acronym_is_braced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c462876d7ea60f2557db96b569c2e4a3582c7689d5c918e6aec9014063b35ef2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TitleProtectionTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#TitleProtectionTests.test_protection_is_idempotent",
      "name": "test_protection_is_idempotent",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L513-L515",
      "signature": "def test_protection_is_idempotent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1573ae591188b38b051643bdca4dd9b5166cb2bf182068fcc2b0542bb0793491",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TitleProtectionTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests",
      "name": "ValidationTests",
      "kind": "class",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L357-L438",
      "signature": "class ValidationTests(BibTeXTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f71bc41285cef0cb7e7e4e3d9e47645143b36479333c99b0af228ffe36add33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L358-L360",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b974e20db79c1ec885384d9372b155e35039340384a11fbe7fe11ee9fc3d4ac5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_a_complete_article_raises_no_errors",
      "name": "test_a_complete_article_raises_no_errors",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L362-L374",
      "signature": "def test_a_complete_article_raises_no_errors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2171b683bd3c24ad08aa5c187e406137689efe6867eb978fdf6a22ba282dd512",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_a_manuscript_with_no_citations_yields_none",
      "name": "test_a_manuscript_with_no_citations_yields_none",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L405-L408",
      "signature": "def test_a_manuscript_with_no_citations_yields_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d8a3cb01be499cf1953f153989f68b6598d8108c60d5f313e2f4e698353249f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_a_missing_required_field_is_reported",
      "name": "test_a_missing_required_field_is_reported",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L376-L384",
      "signature": "def test_a_missing_required_field_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad709f4bc37744a7d6821ac0b705afa818730efe770a7e0e5ebac5c5e2745a05",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_a_venue_shortfall_is_a_warning_not_an_error",
      "name": "test_a_venue_shortfall_is_a_warning_not_an_error",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L420-L429",
      "signature": "def test_a_venue_shortfall_is_a_warning_not_an_error(self) -> None: # Reference-list length is editorial judgement, so falling under a # venue rule of thumb must not fail the run.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe5c0ebb74c18864a64b81061661226e1b8177820165d6da2c43ee5782f3453a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_an_explicit_min_count_is_enforced_as_an_error",
      "name": "test_an_explicit_min_count_is_enforced_as_an_error",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L431-L435",
      "signature": "def test_an_explicit_min_count_is_enforced_as_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "378301fb34ba1bba078a09338fa0013e6916c2dda6a24466fb7c9f29636251e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_distinct_entries_are_not_reported_as_duplicates",
      "name": "test_distinct_entries_are_not_reported_as_duplicates",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L390-L392",
      "signature": "def test_distinct_entries_are_not_reported_as_duplicates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "74aea3f87f10d6a569ec2e2b3efb4460fab0a6d14e144860eaecdac072b2f3c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_duplicate_detection_finds_repeated_entries",
      "name": "test_duplicate_detection_finds_repeated_entries",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L386-L388",
      "signature": "def test_duplicate_detection_finds_repeated_entries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24f8419b2fff9c3fd1126bf4df9aee2f6fdda5b3915c9dac4ce8e09db64f2efd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_manuscript_citation_keys_are_extracted",
      "name": "test_manuscript_citation_keys_are_extracted",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L394-L403",
      "signature": "def test_manuscript_citation_keys_are_extracted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4689d63e69f3e3d073dac5241b2b80ecf2fec15f741c1766a82d44929ddeacb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_the_valid_entry_count_never_goes_negative",
      "name": "test_the_valid_entry_count_never_goes_negative",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L410-L418",
      "signature": "def test_the_valid_entry_count_never_goes_negative(self) -> None: # Several errors can land on one entry. Subtracting the error *count* # from the entry count reported `Valid entries: -2` for a one-entry # file, so the figure counts distinct failing entries instead.",
      "exported": true,
      "origin": "ast",
      "body_hash": "26734b21efa680c516877c6d00cca5c2271a16d11f51623b108d2c3e6022c2f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/citation-management/test_scripts.py#ValidationTests.test_venue_standards_are_available_without_running_a_validation",
      "name": "test_venue_standards_are_available_without_running_a_validation",
      "kind": "method",
      "path": "tests/citation-management/test_scripts.py",
      "span": "L437-L438",
      "signature": "def test_venue_standards_are_available_without_running_a_validation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "98adb86a7fd0480538c187a7f4e077ac101c7b984457df68359afbd24e243bc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L1-L257",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "34aeb0c6c2c3586056d2a6e3f6e181508cfdbb49432543a7ebfe18d5ea41b52b",
      "chars": 11281,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests",
      "name": "AggregateEvaluationTests",
      "kind": "class",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L184-L202",
      "signature": "class AggregateEvaluationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c366fdfbf58e0929042cb1f6902561d2e0927204271bb7f13160dc814a0a182a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests.test_cohort_table_applies_complementary_suppression",
      "name": "test_cohort_table_applies_complementary_suppression",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L196-L202",
      "signature": "def test_cohort_table_applies_complementary_suppression(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "038d43fa7a77a5a23ec2967730b427b1aa5ff5d4c0235c117d8cc72289ba1022",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AggregateEvaluationTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests.test_model_evaluation_is_aggregate_and_bounded",
      "name": "test_model_evaluation_is_aggregate_and_bounded",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L185-L194",
      "signature": "def test_model_evaluation_is_aggregate_and_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "611d20cb701b29d22a348fc742299eb156591ade26499d4d8a52af93d58fb698",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AggregateEvaluationTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests",
      "name": "ArtifactValidatorTests",
      "kind": "class",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L106-L143",
      "signature": "class ArtifactValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df7d2c8432a998c56227f8b0aec77b72102aba59b187320417d55a43844615ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests.test_completed_safe_artifact_passes_structural_checks",
      "name": "test_completed_safe_artifact_passes_structural_checks",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L115-L143",
      "signature": "def test_completed_safe_artifact_passes_structural_checks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fabaf525cce5d2daba015bc7129b740c432f9bbef43be59795133132c1a157d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactValidatorTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests.test_unresolved_artifact_template_fails_closed",
      "name": "test_unresolved_artifact_template_fails_closed",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L107-L113",
      "signature": "def test_unresolved_artifact_template_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "03808e17705b10b4e0ae4baecbbc7ff2511105253d2156b2ac68742b2583644b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactValidatorTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests",
      "name": "EvidenceProfileTests",
      "kind": "class",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L146-L181",
      "signature": "class EvidenceProfileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb39b4f678db5b6a6f7c2c6c798002ca6d9f13da7ea3af9d6181cabb29a32069",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_complete_human_profile_passes_without_auto_grading",
      "name": "test_complete_human_profile_passes_without_auto_grading",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L156-L181",
      "signature": "def test_complete_human_profile_passes_without_auto_grading(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d92d456c1ac674e4b06272b75c5d484c0b3d28c765c2f2c23ff9559b09addbd7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceProfileTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_unresolved_template_requires_human_judgments",
      "name": "test_unresolved_template_requires_human_judgments",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L147-L154",
      "signature": "def test_unresolved_template_requires_human_judgments(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9c62cb7be6ed251094f9b81da9d3a270c71c564dfe01c05331efd91de3aa32d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceProfileTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "name": "load_asset",
      "kind": "function",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L31-L32",
      "signature": "def load_asset(filename: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "043b94d29a3496a82e8b82ccbe5f23c6d63211a508c75eb69f0f02f016bd9bc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests",
      "name": "PlanAndTraceabilityTests",
      "kind": "class",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L205-L219",
      "signature": "class PlanAndTraceabilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5d5632b07ec9b3748d9c9c7deaf0f44d0e2df36df9224a812eddb111771f6c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests.test_survival_plan_passes_with_recorded_review_warning",
      "name": "test_survival_plan_passes_with_recorded_review_warning",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L206-L210",
      "signature": "def test_survival_plan_passes_with_recorded_review_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2023940a4cee53e227df946763381f098703b7bb91f46539061624f60a1a10e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanAndTraceabilityTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests.test_traceability_matrix_is_non_executable",
      "name": "test_traceability_matrix_is_non_executable",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L212-L219",
      "signature": "def test_traceability_matrix_is_non_executable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a7a304f39101cb6def145918bb43563080adb6db79330d3fe6c2f60f75f5174",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanAndTraceabilityTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests",
      "name": "PrivacyChecklistTests",
      "kind": "class",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L222-L247",
      "signature": "class PrivacyChecklistTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fe62e014cabca1f18ae2d550a39f1cec3d37af9af6ef02e0100b83f01750b77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_complete_safe_harbor_documentation_is_not_compliance_claim",
      "name": "test_complete_safe_harbor_documentation_is_not_compliance_claim",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L230-L247",
      "signature": "def test_complete_safe_harbor_documentation_is_not_compliance_claim(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a44addfa364ff0482238c1dc9d5bfe760a69931592a1764e4518b0e6316d0f54",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrivacyChecklistTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_unresolved_template_fails_closed",
      "name": "test_unresolved_template_fails_closed",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L223-L228",
      "signature": "def test_unresolved_template_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c113cd3c2a69993c6a706035883787a30b4ec3efdb85a84457bf19af18673f85",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrivacyChecklistTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#resolve_placeholders",
      "name": "resolve_placeholders",
      "kind": "function",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L35-L45",
      "signature": "def resolve_placeholders(value)",
      "exported": true,
      "origin": "ast",
      "body_hash": "218ec148f2c2c3f4b4d696623aeeb7ada6fbc430e865af66ad0e887276563670",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests",
      "name": "StaticSafetyTests",
      "kind": "class",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L48-L103",
      "signature": "class StaticSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8dd51f5dcef306a4e0de61a60be229cb3c8f6d3dbd639febbd1cd489d3c19830",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_assets_declare_safety_fields",
      "name": "test_assets_declare_safety_fields",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L86-L92",
      "signature": "def test_assets_declare_safety_fields(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37f7343ae5f5ab3ade79f5fde4a111770c544fe96d06e9f4cf2d99dbf90a22e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_scripts_have_no_network_secret_or_dynamic_code_imports",
      "name": "test_scripts_have_no_network_secret_or_dynamic_code_imports",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L49-L84",
      "signature": "def test_scripts_have_no_network_secret_or_dynamic_code_imports(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b620a90ed6b3b8b2b0e41324a133fcb72234e52d621802edd38e4ef86d9623f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_skill_is_progressively_disclosed_and_versioned",
      "name": "test_skill_is_progressively_disclosed_and_versioned",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L98-L103",
      "signature": "def test_skill_is_progressively_disclosed_and_versioned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1cb151f878028d4ecf78f929017cbf63de5026e893c74012aaa7f069ccd95cef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_url_like_input_path_is_rejected",
      "name": "test_url_like_input_path_is_rejected",
      "kind": "method",
      "path": "tests/clinical-decision-support/test_scripts.py",
      "span": "L94-L96",
      "signature": "def test_url_like_input_path_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3aadbe346286465bfb0d3795875de7c674c3b266d3b896d6fa7fa88a41ba5efc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L1-L498",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "138d72c2a7c827632589fb6e29f904e97db9074969ab187bbee2489b6e6422a2",
      "chars": 21609,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests",
      "name": "AggregateFormatterTests",
      "kind": "class",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L259-L292",
      "signature": "class AggregateFormatterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad1470ef4686d2edba907fad7b0018292babf852371f2b3e1e1caa1c99b3a593",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_formats_synthetic_aggregate_rows",
      "name": "test_formats_synthetic_aggregate_rows",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L260-L280",
      "signature": "def test_formats_synthetic_aggregate_rows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1ab6efe2c964e9a4fb23f215041fe2db8d0d5b5bf91d3657fa2f6598b4b1c25",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AggregateFormatterTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_rejects_row_level_identifier_column",
      "name": "test_rejects_row_level_identifier_column",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L282-L292",
      "signature": "def test_rejects_row_level_identifier_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49fced634875d8ed6ddaacf99c0b23c5fcacd3fcca75c264d24a09e6fd64753c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AggregateFormatterTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests",
      "name": "AssetAndGeneratorTests",
      "kind": "class",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L462-L488",
      "signature": "class AssetAndGeneratorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b68785392e706ac6802355ecb163e0edc2f8323455e6a241b863fe329d03bb72",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_bundled_path_references_exist",
      "name": "test_bundled_path_references_exist",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L463-L468",
      "signature": "def test_bundled_path_references_exist(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9cf21e0dc61eadf8d96add4ed421f99239694ba9b72e96de09cdd942dc3635e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AssetAndGeneratorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_every_json_asset_parses_and_contains_no_obvious_real_phi",
      "name": "test_every_json_asset_parses_and_contains_no_obvious_real_phi",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L470-L480",
      "signature": "def test_every_json_asset_parses_and_contains_no_obvious_real_phi(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "463a0f9d2e7d384ba235628e1a81d55b7317f808b464583b4d12f8f1d3453a06",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AssetAndGeneratorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_generator_copies_blocked_template_without_interpolation",
      "name": "test_generator_copies_blocked_template_without_interpolation",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L482-L488",
      "signature": "def test_generator_copies_blocked_template_without_interpolation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec0b795affe7a93bd77d8c4ae8fe40442de4a6a9ea3aeedad850edb2cd079cf4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AssetAndGeneratorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests",
      "name": "ProcessAndSchemaTests",
      "kind": "class",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L295-L459",
      "signature": "class ProcessAndSchemaTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bfe6569a83c47617d17cc2012e49b717fb5524e94e7f64ca5e4db2478509f83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_consistency_detects_denominator_mismatch",
      "name": "test_consistency_detects_denominator_mismatch",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L433-L459",
      "signature": "def test_consistency_detects_denominator_mismatch(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc7619c0b8cd041b1d59ba24dcb322cf16bc502a25a09e2bdf432694d2942253",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessAndSchemaTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_provenance_links_verified_fact_without_content",
      "name": "test_provenance_links_verified_fact_without_content",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L393-L431",
      "signature": "def test_provenance_links_verified_fact_without_content(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3da4d5360a6b1578b84f18aa34427ee403555d50df1dc20424b8101c9258d7a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessAndSchemaTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_synthetic_deidentification_process_never_claims_compliance",
      "name": "test_synthetic_deidentification_process_never_claims_compliance",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L329-L391",
      "signature": "def test_synthetic_deidentification_process_never_claims_compliance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d95473c75385f1ccf4c103452bc81048850002ff1c6c91216a785f81d940a253",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessAndSchemaTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_terminology_local_dictionary_match_is_not_clinical_validation",
      "name": "test_terminology_local_dictionary_match_is_not_clinical_validation",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L296-L327",
      "signature": "def test_terminology_local_dictionary_match_is_not_clinical_validation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee90a689b8be2b71f81764236a3947352d08484a65d861961082d3c8ba6a7d93",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessAndSchemaTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "name": "StructuralValidatorTests",
      "kind": "class",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L164-L256",
      "signature": "class StructuralValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7be51c565c60f983ab79f28f043d85a282c2cb39fd1825da8147b35ede5629b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_case_structure_still_requires_review",
      "name": "test_complete_case_structure_still_requires_review",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L165-L168",
      "signature": "def test_complete_case_structure_still_requires_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54a3728bd0ab3c0a6a8b8492edcd380be1a863555eef45bdd76f78bb8fada042",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralValidatorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_consort_2025_coverage_still_requires_review",
      "name": "test_complete_consort_2025_coverage_still_requires_review",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L189-L222",
      "signature": "def test_complete_consort_2025_coverage_still_requires_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "776aab7b0a8171b1b1dadd397feb8135cb4010b0cf83da1b5cf4a015d564c462",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralValidatorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_ich_e3_structure_still_requires_review",
      "name": "test_complete_ich_e3_structure_still_requires_review",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L184-L187",
      "signature": "def test_complete_ich_e3_structure_still_requires_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5508206daba6dc8676532d40e183ef178ad095075c557a330f8e35581eb8368f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralValidatorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_spirit_2025_coverage_still_requires_review",
      "name": "test_complete_spirit_2025_coverage_still_requires_review",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L224-L256",
      "signature": "def test_complete_spirit_2025_coverage_still_requires_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd67d17a645d38b8109fd09282c2b70dd3aacab3e8de7194893284f763e384f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralValidatorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_missing_case_item_blocks",
      "name": "test_missing_case_item_blocks",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L170-L175",
      "signature": "def test_missing_case_item_blocks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "55945776ec99259c3da043a66263994b12a480d8e8aa0f485e259217b37f54bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralValidatorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_unknown_case_field_blocks",
      "name": "test_unknown_case_field_blocks",
      "kind": "method",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L177-L182",
      "signature": "def test_unknown_case_field_blocks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "793491ca35a2977484e66bbaaf2fd6810ff62891e555ed5099743d9e13f50986",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralValidatorTests"
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#valid_aggregate_metadata",
      "name": "valid_aggregate_metadata",
      "kind": "function",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L120-L161",
      "signature": "def valid_aggregate_metadata(input_name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "5796740fcd863fa2375a4a4c1f324786be01cd7c5a4e2622182f23bed1dde990",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#valid_case_manifest",
      "name": "valid_case_manifest",
      "kind": "function",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L37-L73",
      "signature": "def valid_case_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef148928f9666ec6f5725c4b3cff55a46ca6eaf3a48d48d437451f8cfe0aaa33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/clinical-reports/test_scripts.py#valid_csr_manifest",
      "name": "valid_csr_manifest",
      "kind": "function",
      "path": "tests/clinical-reports/test_scripts.py",
      "span": "L76-L117",
      "signature": "def valid_csr_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd1609102aafaabc944cf971d6b0a219c92300538804d8e9927f2abba3a94288",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/conftest.py",
      "name": "conftest.py",
      "kind": "file",
      "path": "tests/conftest.py",
      "span": "L1-L106",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "105520d5866dbd7ea87f0f9989b70f52e7009625e210243c19e14294c1f92ef6",
      "chars": 3994,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/conftest.py#_install_contract",
      "name": "_install_contract",
      "kind": "function",
      "path": "tests/conftest.py",
      "span": "L39-L61",
      "signature": "def _install_contract() -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ed7b1befda27dc63b6d24579c81181cfcac35616fa25bc51d0f8ce2b2613cef9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/conftest.py#_skill_dirs",
      "name": "_skill_dirs",
      "kind": "function",
      "path": "tests/conftest.py",
      "span": "L67-L93",
      "signature": "def _skill_dirs(config: pytest.Config) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "3e69c17727d101fb332244401267563ab3bdf67aceb8e3de5eb0995f68d43d13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/conftest.py#pytest_sessionstart",
      "name": "pytest_sessionstart",
      "kind": "function",
      "path": "tests/conftest.py",
      "span": "L96-L105",
      "signature": "def pytest_sessionstart(session: pytest.Session) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0d2a53cbf088b97e7f456be38309d8c29146b8f7ad7198d3e2d6063b9034086",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L1-L449",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "aede96824877fe25f52730dffa615ee3e13aba8d479e329612ecbd2530c7e30d",
      "chars": 19674,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "name": "ArgumentValidationTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L409-L444",
      "signature": "class ArgumentValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "48ce5bfdca67b0bc02b6328a7375af453f466ec1292aa7f8ed2c04004f1b29fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#ArgumentValidationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L412-L415",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidationTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_a_gnn_run_needs_a_dataset_or_a_csv",
      "name": "test_a_gnn_run_needs_a_dataset_or_a_csv",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L417-L420",
      "signature": "def test_a_gnn_run_needs_a_dataset_or_a_csv(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ff2c4fca13d9810ea5f18188ea50c9f71bf3b23c73f0b0a5d5decce19115217",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidationTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_a_gnn_run_refuses_both_a_dataset_and_a_csv",
      "name": "test_a_gnn_run_refuses_both_a_dataset_and_a_csv",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L422-L429",
      "signature": "def test_a_gnn_run_refuses_both_a_dataset_and_a_csv(self) -> None: # Silently preferring one would train on data the user did not ask for.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5782b526c437e44b3941515affbe39473eaf335953c05d105e938958a01fd641",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidationTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_transfer_learning_refuses_both_input_sources",
      "name": "test_transfer_learning_refuses_both_input_sources",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L437-L444",
      "signature": "def test_transfer_learning_refuses_both_input_sources(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8415368e696fb21671c0872b3576fe625c5eece900f3f230353fffe7bb042707",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidationTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_transfer_learning_requires_a_pretrained_model",
      "name": "test_transfer_learning_requires_a_pretrained_model",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L431-L435",
      "signature": "def test_transfer_learning_requires_a_pretrained_model(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18feb31d187454987bccbb3b734829392765bda6d62d55e6587c239f277b487f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidationTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "name": "CustomDatasetTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L329-L375",
      "signature": "class CustomDatasetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "23e0bc512d29d9d33607e51a7bc5737c1842fd86fcfa43604e7674a05d66fcc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#CustomDatasetTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L332-L340",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3957089b50ef73fbfba5b5ba2c1508a12243b4098a038b8ff28e74a535b9e4fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDatasetTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_a_fingerprint_model_gets_a_2048_bit_vector",
      "name": "test_a_fingerprint_model_gets_a_2048_bit_vector",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L359-L364",
      "signature": "def test_a_fingerprint_model_gets_a_2048_bit_vector(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4dfba3b7fd00a29172dcac00d355290f2f95738361eca15ba18e88e07a9a86fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDatasetTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_a_smiles_model_keeps_the_strings_unfeaturized",
      "name": "test_a_smiles_model_keeps_the_strings_unfeaturized",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L350-L357",
      "signature": "def test_a_smiles_model_keeps_the_strings_unfeaturized(self) -> None: # DummyFeaturizer is deliberate: the tokenizer inside the model does the # featurizing, so turning the SMILES into a fingerprint here would # destroy the input it needs.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff030cd47c3131b4f0de6a61d49aebe9ef06d660e4bb68c3c86922eaef946475",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDatasetTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_the_named_smiles_column_is_the_one_featurized",
      "name": "test_the_named_smiles_column_is_the_one_featurized",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L366-L375",
      "signature": "def test_the_named_smiles_column_is_the_one_featurized(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad8e2b5ff9363d5c4f680dae0995c941df7d57ed59f608140b00223bab0a90f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDatasetTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_the_split_is_eighty_ten_ten",
      "name": "test_the_split_is_eighty_ten_ten",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L342-L348",
      "signature": "def test_the_split_is_eighty_ten_ten(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "67832b649949d687256975bc0fbb0eef3782e6940edfdcc2e6ccebe97bbd016c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomDatasetTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#dotted_name",
      "name": "dotted_name",
      "kind": "function",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L115-L116",
      "signature": "def dotted_name(node: ast.AST) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d3f08690ab42eab06edd6aeee78c675a331882f1f031ac89058c6b7b23e2bb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#keyword_constants",
      "name": "keyword_constants",
      "kind": "function",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L119-L127",
      "signature": "def keyword_constants(source: str, callee: str, keyword: str) -> list[object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1af35552bdbd3a814ba90b3ef8ac6977aa87565d744bdeb4d9effac861135f44",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#ModelFactoryTests",
      "name": "ModelFactoryTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L196-L224",
      "signature": "class ModelFactoryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c7190b92eca16ee886be1f322e8a17452fe4a6c04adc2b2b5bb8273130a6480",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#ModelFactoryTests.test_an_unknown_model_is_refused_by_name",
      "name": "test_an_unknown_model_is_refused_by_name",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L199-L201",
      "signature": "def test_an_unknown_model_is_refused_by_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a40ee1613702ffe3a757c52373ff983e5b87bf89406e7279b975512e75e11009",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelFactoryTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#ModelFactoryTests.test_every_advertised_model_has_a_human_readable_description",
      "name": "test_every_advertised_model_has_a_human_readable_description",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L218-L224",
      "signature": "def test_every_advertised_model_has_a_human_readable_description(self) -> None: # The descriptions are printed as the run banner, so an empty one leaves # the log ambiguous about what was trained.",
      "exported": true,
      "origin": "ast",
      "body_hash": "56f02f9380fc9c98855593968a95d03aa04426d0975cd57ba6f313b96461fdd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelFactoryTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#ModelFactoryTests.test_every_advertised_model_reaches_a_branch",
      "name": "test_every_advertised_model_reaches_a_branch",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L203-L216",
      "signature": "def test_every_advertised_model_reaches_a_branch(self) -> None: # Constructing these needs a torch backend, which the documented install # does not always provide, so the assertion is narrower than \"it works\": # whatever happens, it must not be the unknown-model fall-through.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a11f6c98ab3c694a32e1f2868e3e44b25cf2654058fcfb38bf7eaa4ff261144",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelFactoryTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "name": "MolnetCatalogueTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L142-L193",
      "signature": "class MolnetCatalogueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c61a30719755a42f505a6fd27cbe1975b8bd4422b0550a0807519f7905c519ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_bace_resolves_to_the_classification_loader",
      "name": "test_bace_resolves_to_the_classification_loader",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L153-L160",
      "signature": "def test_bace_resolves_to_the_classification_loader(self) -> None: # DeepChem has no `load_bace`; the table declares BACE a classification # benchmark, so the classification loader is the matching one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7799608253064d17a70442cc94d44c51f994a0bfe592c9dbf45c719bf2a91fea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_every_dataset_name_resolves_to_a_real_molnet_loader",
      "name": "test_every_dataset_name_resolves_to_a_real_molnet_loader",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L145-L151",
      "signature": "def test_every_dataset_name_resolves_to_a_real_molnet_loader(self) -> None: # The regression this guards: `getattr(dc.molnet, f\"load_{name}\")` for a # dataset DeepChem exposes only under a suffixed loader name.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a297c33b50732d96ea35d0166094e80f0a2b1e1a9b090677081a991b4476425",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_dataset_flag_offers_exactly_the_table",
      "name": "test_the_dataset_flag_offers_exactly_the_table",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L183-L187",
      "signature": "def test_the_dataset_flag_offers_exactly_the_table(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fcc7fdd0d83a73e97c21daaad3a6744530175fe4ec3ee737e793f612e163b13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_declared_task_counts_match_the_published_benchmarks",
      "name": "test_the_declared_task_counts_match_the_published_benchmarks",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L174-L181",
      "signature": "def test_the_declared_task_counts_match_the_published_benchmarks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e835731939dfbc08c61592a6992fbe45e24c3850bef54b568975dab46d144d6b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_declared_task_types_match_the_published_benchmarks",
      "name": "test_the_declared_task_types_match_the_published_benchmarks",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L162-L172",
      "signature": "def test_the_declared_task_types_match_the_published_benchmarks(self) -> None: # The task type selects the metric set (ROC-AUC vs R²) and the model # mode, so calling a regression benchmark \"classification\" produces # numbers that look plausible and mean nothing.",
      "exported": true,
      "origin": "ast",
      "body_hash": "738fefaa6ef5dc9ac5122cc67586c946facffe06b1951eaca983eff8ecfb761c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_model_flag_offers_exactly_the_model_table",
      "name": "test_the_model_flag_offers_exactly_the_model_table",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L189-L193",
      "signature": "def test_the_model_flag_offers_exactly_the_model_table(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d34a7703f6945182eed2f324fa3ceb30ef868d35f8cc3faa311f1862bd5d85e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "name": "MolnetFeaturizerSelectionTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L264-L326",
      "signature": "class MolnetFeaturizerSelectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "656921a4ed3c7111e2b1e3b46e9fc4fd3778c5e005a96c862516e89bab5797cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load",
      "name": "load",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L267-L277",
      "signature": "def load(self, dataset: str, model: str, loader: str | None = None) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0f2f8e946da3bb47b2fa305dedac4f89530e0c4c090a8ab946b0742a91e2e48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetFeaturizerSelectionTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load.stub",
      "name": "stub",
      "kind": "function",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L271-L273",
      "signature": "def stub(**keywords)",
      "exported": true,
      "origin": "ast",
      "body_hash": "35e3116814317bd7ba100f9cb88a580af6f86405575ff1c0b553b8d79908efed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_an_unknown_dataset_is_refused_before_anything_downloads",
      "name": "test_an_unknown_dataset_is_refused_before_anything_downloads",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L324-L326",
      "signature": "def test_an_unknown_dataset_is_refused_before_anything_downloads(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93d763e3e092d9d900b42eb9ce2d4dd8e6f56f3492d9d8434c8eb800e3d529b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetFeaturizerSelectionTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_an_unrecognised_model_falls_back_to_fingerprints",
      "name": "test_an_unrecognised_model_falls_back_to_fingerprints",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L286-L287",
      "signature": "def test_an_unrecognised_model_falls_back_to_fingerprints(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31013088270e117890037d1b5a3d93a351b7c15087377bd5f8b2d77b257737f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetFeaturizerSelectionTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_dataset_is_loaded_with_a_scaffold_split",
      "name": "test_every_dataset_is_loaded_with_a_scaffold_split",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L289-L294",
      "signature": "def test_every_dataset_is_loaded_with_a_scaffold_split(self) -> None: # A random split shares scaffolds between train and test and inflates # every reported score, so the split must not depend on the model.",
      "exported": true,
      "origin": "ast",
      "body_hash": "150a4b515fef0c2ccbb8e0a6eee9daf49a6a52e3ce385ed8371c5b145d5d6365",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetFeaturizerSelectionTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_offered_dataset_is_in_the_loader_table",
      "name": "test_every_offered_dataset_is_in_the_loader_table",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L296-L322",
      "signature": "def test_every_offered_dataset_is_in_the_loader_table(self) -> None: # `--dataset` and the dict inside load_molnet_dataset are written out # separately, so a name in one and not the other is a live failure -- # the CLI accepts the run and it dies on \"Unknown dataset\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a6fb9af7eb50bfe9af59cda58cc36552701ec88510c1554e8a6cdcabafa2c1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetFeaturizerSelectionTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_offered_dataset_is_in_the_loader_table.stub",
      "name": "stub",
      "kind": "function",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L310-L311",
      "signature": "def stub(**keywords)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e5e5abb42743d401bf3d379db0434ef57a49c94033e473ade23af3fe015915d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_smiles_models_get_raw_strings_and_grover_gets_graphs",
      "name": "test_smiles_models_get_raw_strings_and_grover_gets_graphs",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L279-L284",
      "signature": "def test_smiles_models_get_raw_strings_and_grover_gets_graphs(self) -> None: # ChemBERTa and MolFormer tokenise SMILES themselves; GROVER is a graph # transformer and cannot read a string.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5aaca6eebd297c4f0373b1e931184deb15ff02d881d684fedd01c05153cc0603",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolnetFeaturizerSelectionTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#parser_choices",
      "name": "parser_choices",
      "kind": "function",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L88-L112",
      "signature": "def parser_choices(module, destination: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d67948019835c0aecb862b2506f25147d4e4652aa1e8da0746c20a188a2308f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "name": "PretrainedCatalogueTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L227-L261",
      "signature": "class PretrainedCatalogueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "64444a9e4f708ea72803dccf2d20b84623c2510a61bd0921104c432f75301f6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_each_entry_carries_a_name_and_a_description",
      "name": "test_each_entry_carries_a_name_and_a_description",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L236-L241",
      "signature": "def test_each_entry_carries_a_name_and_a_description(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e09bd838bd5ab1278c151d68e74f3dcb6d3db377e6c4a25e5696bedc27b535b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PretrainedCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_every_pretrained_model_has_a_fine_tuning_entry_point",
      "name": "test_every_pretrained_model_has_a_fine_tuning_entry_point",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L256-L261",
      "signature": "def test_every_pretrained_model_has_a_fine_tuning_entry_point(self) -> None: # main() dispatches on the key; an unhandled one falls through to a # \"not yet implemented\" message after the dataset has been loaded.",
      "exported": true,
      "origin": "ast",
      "body_hash": "52256cd0b96d57262a9e2760b0b41829fdbb194c9e6275ace0af245bf0d1a2ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PretrainedCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_grover_declares_no_hub_id_because_it_loads_itself",
      "name": "test_grover_declares_no_hub_id_because_it_loads_itself",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L251-L254",
      "signature": "def test_grover_declares_no_hub_id_because_it_loads_itself(self) -> None: # GroverModel takes a model_dir, not a hub id; a placeholder string here # would be passed to a loader that ignores it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "da4ce0aa859f44d8b9cfa531f60c9f8e0343a49867b022c94a8a4091c5b21338",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PretrainedCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_the_hub_backed_models_name_a_hugging_face_repository",
      "name": "test_the_hub_backed_models_name_a_hugging_face_repository",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L243-L249",
      "signature": "def test_the_hub_backed_models_name_a_hugging_face_repository(self) -> None: # These strings are passed straight to HuggingFaceModel; a bare model # name without the owner prefix cannot be resolved.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf9e23849232c618aca7fc4e5581e20616dfe6961f57ea23fc67e195ec1b095c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PretrainedCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_the_model_flag_offers_exactly_the_pretrained_table",
      "name": "test_the_model_flag_offers_exactly_the_pretrained_table",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L230-L234",
      "signature": "def test_the_model_flag_offers_exactly_the_pretrained_table(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "878a0e194a51ce7a0153d53d91246dd1b1a315339c143952b706e6ee95348655",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PretrainedCatalogueTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L130-L139",
      "signature": "def run_script(name: str, *arguments: str, cwd: Path) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6e57c0922f9fad3b5a8764d370bf9bd9e139d5b2fd85b9d4a40e61a309711a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#SolubilityScriptTests",
      "name": "SolubilityScriptTests",
      "kind": "class",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L378-L406",
      "signature": "class SolubilityScriptTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ef9401deda7244c666c048aee1f6b9527a7657d8cc9d05904df939f5a4214fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_default_target_column_is_the_delaney_column_name",
      "name": "test_the_default_target_column_is_the_delaney_column_name",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L398-L406",
      "signature": "def test_the_default_target_column_is_the_delaney_column_name(self) -> None: # The function's default has to match the column in the published # Delaney (ESOL) CSV, or the benchmark path finds no target.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4f8061aeaef6909dafd5fb73f9bd4582bfb44c00cf66ea8d5f987d5a8aa8b65",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SolubilityScriptTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_fingerprint_radius_is_the_same_everywhere",
      "name": "test_the_fingerprint_radius_is_the_same_everywhere",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L391-L396",
      "signature": "def test_the_fingerprint_radius_is_the_same_everywhere(self) -> None: # Training on ECFP4 and predicting with ECFP6 silently produces garbage # rather than an error, because the vector width is unchanged.",
      "exported": true,
      "origin": "ast",
      "body_hash": "79dd512fcf89a774b03cc1295f253e1460d7ff245c41e803962f9f5ffc7495a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SolubilityScriptTests"
    },
    {
      "id": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_fingerprint_width_matches_the_regressor_input_size",
      "name": "test_the_fingerprint_width_matches_the_regressor_input_size",
      "kind": "method",
      "path": "tests/deepchem/test_scripts.py",
      "span": "L381-L389",
      "signature": "def test_the_fingerprint_width_matches_the_regressor_input_size(self) -> None: # `n_features` is fixed when the model is built and `size` when new # molecules are featurized. A mismatch is a shape error at predict # time -- after the training run has already been paid for.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c10d48990eea6bfa331629eeb1cd7d30a003c9908ef538da489e213a46152a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SolubilityScriptTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L1-L320",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3bef4522ee88da934f75c24ea7da151bbf5c401b869394c1e48ff86cca4829f6",
      "chars": 13128,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests",
      "name": "FileValidationTests",
      "kind": "class",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L212-L315",
      "signature": "class FileValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1acb74fca22676fc0372cd9e52834520885bbf4d8b4d27e3106a8e93e4ca8f93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_bam_index_is_found_under_either_naming_convention",
      "name": "test_bam_index_is_found_under_either_naming_convention",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L218-L237",
      "signature": "def test_bam_index_is_found_under_either_naming_convention(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7580dbb4d576dd770f3cc7cba04e09dad57344e8940aebc34a7a91275b3dcd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_bed_rejects_too_few_columns_bad_types_and_inverted_ranges",
      "name": "test_bed_rejects_too_few_columns_bad_types_and_inverted_ranges",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L266-L280",
      "signature": "def test_bed_rejects_too_few_columns_bad_types_and_inverted_ranges(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8aee17aec7e012b1784b71e7af9c3b4345bd1aab11b14cf1a9bc5895a86256a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_comment_only_bed_is_treated_as_empty",
      "name": "test_comment_only_bed_is_treated_as_empty",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L282-L288",
      "signature": "def test_comment_only_bed_is_treated_as_empty(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4d64a1022c8ea78c7ea1b98f621c4c20945644044f033d2b9f6de87f7d86126",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_missing_file_is_reported_not_raised",
      "name": "test_missing_file_is_reported_not_raised",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L213-L216",
      "signature": "def test_missing_file_is_reported_not_raised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d1f256231f3db09c3d6ba1e82f4a4f40de8b8e585280d7a6efc28aa82349a45",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_no_files_means_nothing_to_report",
      "name": "test_no_files_means_nothing_to_report",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L312-L315",
      "signature": "def test_no_files_means_nothing_to_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f03c7445eb290f6efae3da9598d09403281faf281e3b5a3db9a56727b94d2eb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_tiny_bigwig_is_flagged_as_suspicious",
      "name": "test_tiny_bigwig_is_flagged_as_suspicious",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L239-L250",
      "signature": "def test_tiny_bigwig_is_flagged_as_suspicious(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "424e909eec3072c9d4f3250c89f41b876bf5c8310a63bf0b82a344ca8072161e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_validate_files_aggregates_across_types",
      "name": "test_validate_files_aggregates_across_types",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L290-L310",
      "signature": "def test_validate_files_aggregates_across_types(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6496197be593dd22d22801737c61e972629337d596ce7f79d7d8f788270fd70",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#FileValidationTests.test_well_formed_bed_passes_and_counts_regions",
      "name": "test_well_formed_bed_passes_and_counts_regions",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L252-L264",
      "signature": "def test_well_formed_bed_passes_and_counts_regions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "63fb7161de2952cc306b52ddf764feb6c90586e643c4b3d192a2323910705626",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileValidationTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "name": "GeneratedScriptTests",
      "kind": "class",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L170-L209",
      "signature": "class GeneratedScriptTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "342a47d17b8907fa859df5cf69e870d2d0f61a31e3d3eca6f3235ba82017d73f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#GeneratedScriptTests._generate",
      "name": "_generate",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L173-L177",
      "signature": "def _generate(self, workflow: str) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "cf108a8c5b9a92ab6f83b195535151cd42922e5bce25ae8a9c3e797d9c6c75b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneratedScriptTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_every_advertised_workflow_has_a_generator",
      "name": "test_every_advertised_workflow_has_a_generator",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L179-L180",
      "signature": "def test_every_advertised_workflow_has_a_generator(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f98535110c37016209130a129868af8259557ecd8005d65d02af406274191c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneratedScriptTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_generated_scripts_fail_fast",
      "name": "test_generated_scripts_fail_fast",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L197-L202",
      "signature": "def test_generated_scripts_fail_fast(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a78ea4424568994947014174e5a30829115c358ec3a2606b3ee8db0336342af4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneratedScriptTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_generated_scripts_parse_as_bash",
      "name": "test_generated_scripts_parse_as_bash",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L182-L195",
      "signature": "def test_generated_scripts_parse_as_bash(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bc27c3a1470a5c346d852fc073692c50d1a736769afcdf9664a9bf69ca5fc18",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneratedScriptTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_parameters_reach_the_script_quoted",
      "name": "test_parameters_reach_the_script_quoted",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L204-L209",
      "signature": "def test_parameters_reach_the_script_quoted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee7c4780f68b94684465353c49e55fa099c9b15eaf566748599a69af2b0fd501",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneratedScriptTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathListTests",
      "name": "PathListTests",
      "kind": "class",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L113-L132",
      "signature": "class PathListTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c06fc9032221964db3b14f8f4ad007eca0eb77ff7bc09df6b856a28baa96323b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathListTests.test_an_empty_list_is_refused",
      "name": "test_an_empty_list_is_refused",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L120-L122",
      "signature": "def test_an_empty_list_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "426ac24938506682c937a18933c244c44346e4f23571e8ef6ec05c8f5264bfd4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathListTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathListTests.test_one_bad_entry_rejects_the_whole_list",
      "name": "test_one_bad_entry_rejects_the_whole_list",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L124-L126",
      "signature": "def test_one_bad_entry_rejects_the_whole_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffabbe5ba44a7487d7a30fd125bef166004857be9f6d0271785ab1ca08d206c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathListTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathListTests.test_quoting_cannot_smuggle_a_space_into_a_single_path",
      "name": "test_quoting_cannot_smuggle_a_space_into_a_single_path",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L128-L132",
      "signature": "def test_quoting_cannot_smuggle_a_space_into_a_single_path(self) -> None: # shlex.split honours the quotes, but sanitize_path then rejects the # space -- the two layers have to agree, not just the first.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ea5a88aa9d2527b02a7f276d80d3f569f93dded4a09e25c3ba0c3dc6f7e9cda",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathListTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathListTests.test_space_separated_values_are_split_and_validated",
      "name": "test_space_separated_values_are_split_and_validated",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L114-L118",
      "signature": "def test_space_separated_values_are_split_and_validated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "053636fdc0e35e4531fd19ac286b4a93de58710ec82471b60ed424cf3804aa3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathListTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "name": "PathSanitisingTests",
      "kind": "class",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L67-L110",
      "signature": "class PathSanitisingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5f9f575f4f6de2b150f52fbcc5493ae67cedcbfc88023adde4845cf87111b3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_a_dotdot_substring_inside_a_name_is_allowed",
      "name": "test_a_dotdot_substring_inside_a_name_is_allowed",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L106-L110",
      "signature": "def test_a_dotdot_substring_inside_a_name_is_allowed(self) -> None: # Only whole segments are parent references; `a..b.bam` is a filename.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f363eed559c0a5b7fe166e65c8f2361c05692b7ac52bfe5eda3055b570f13ad6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathSanitisingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_empty_and_none_fall_back_to_the_default",
      "name": "test_empty_and_none_fall_back_to_the_default",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L75-L81",
      "signature": "def test_empty_and_none_fall_back_to_the_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3032f2688580c312066551ede4fa7d620f9916c52f68a9a85f0205a99a85da6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathSanitisingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_ordinary_paths_pass_through_unchanged",
      "name": "test_ordinary_paths_pass_through_unchanged",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L68-L73",
      "signature": "def test_ordinary_paths_pass_through_unchanged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fe856ebf94a810175b1ec195100e18e674d40b369bff869b19f595cf32c2644",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathSanitisingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_parent_directory_segments_are_refused",
      "name": "test_parent_directory_segments_are_refused",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L100-L104",
      "signature": "def test_parent_directory_segments_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "235b92ce971fb1a1b2f4f74ecf39a68d68c206cba9c1902d77c0cff8f47d9087",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathSanitisingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_shell_metacharacters_are_refused",
      "name": "test_shell_metacharacters_are_refused",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L83-L98",
      "signature": "def test_shell_metacharacters_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e31bf57ab7678b20881958635b53d60fd8943bd95331f30deb162df58dcfecb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathSanitisingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PositiveIntTests",
      "name": "PositiveIntTests",
      "kind": "class",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L135-L148",
      "signature": "class PositiveIntTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7baab4b2d595f20f3382d98bbaca6db47545149db8301fda0f7a2d2c02c9cf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#PositiveIntTests.test_integers_and_integer_strings_are_accepted",
      "name": "test_integers_and_integer_strings_are_accepted",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L136-L138",
      "signature": "def test_integers_and_integer_strings_are_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c9b24b5e982f7551e43e706ec5420e33a207625be8b5e880786f376b43e6b3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PositiveIntTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#PositiveIntTests.test_zero_negative_and_non_numeric_are_refused",
      "name": "test_zero_negative_and_non_numeric_are_refused",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L140-L148",
      "signature": "def test_zero_negative_and_non_numeric_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0af641ee6b6714ee3219d17e275ba838b000ff8e19520f2115b1bbc32099af2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PositiveIntTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#ShellQuotingTests",
      "name": "ShellQuotingTests",
      "kind": "class",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L151-L167",
      "signature": "class ShellQuotingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d92edefa2f131cc3f59152876cf4cce9d41a78e0d9d56eb9b9e7e4f53f03ca6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/deeptools/test_scripts.py#ShellQuotingTests.test_arrays_quote_each_element",
      "name": "test_arrays_quote_each_element",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L156-L159",
      "signature": "def test_arrays_quote_each_element(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6f81bc4ce4661b24c43fc47be5bcae47603d8ded6574da49a13127f9fd66a8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShellQuotingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#ShellQuotingTests.test_relative_run_hints_are_prefixed_so_bash_finds_them",
      "name": "test_relative_run_hints_are_prefixed_so_bash_finds_them",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L161-L167",
      "signature": "def test_relative_run_hints_are_prefixed_so_bash_finds_them(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24a486fb148e933fa8d7e3d2f4ece7932ef18634df5d1cab04e2e88d4de88917",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShellQuotingTests"
    },
    {
      "id": "tests/deeptools/test_scripts.py#ShellQuotingTests.test_values_are_quoted_for_bash",
      "name": "test_values_are_quoted_for_bash",
      "kind": "method",
      "path": "tests/deeptools/test_scripts.py",
      "span": "L152-L154",
      "signature": "def test_values_are_quoted_for_bash(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20ede716587bb79cc3bba14c9fa7e3ae98869c08efb16f6358f33c80ed1ed554",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShellQuotingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L1-L658",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1cf9b1ce76fb70742a41386f571b78a7815e14ff2b5a029721b8b06741fd3d54",
      "chars": 29623,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "name": "BatchCsvValidationTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L341-L440",
      "signature": "class BatchCsvValidationTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "932cd955a4cb12f1a62bd9acf75093e3953463763c69f440da38481e1ab6d139",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_header_only_csv_is_vacuously_valid",
      "name": "test_a_header_only_csv_is_vacuously_valid",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L427-L431",
      "signature": "def test_a_header_only_csv_is_vacuously_valid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9581088de2f59c2e8e6f031f7f03a648e4f5a3d7b3ad2b77c96af739a08b3aa5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_ligand_path_is_checked_as_a_file_not_as_smiles",
      "name": "test_a_ligand_path_is_checked_as_a_file_not_as_smiles",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L394-L401",
      "signature": "def test_a_ligand_path_is_checked_as_a_file_not_as_smiles(self) -> None: # Anything containing a separator is treated as a path, so a missing # SDF must be reported as a file problem rather than as bad chemistry.",
      "exported": true,
      "origin": "ast",
      "body_hash": "25f5c11b213249778d2d69486b08cd44cb83308e5558a6f8d0fd25ae768cc760",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_column_is_reported_instead_of_raising",
      "name": "test_a_missing_column_is_reported_instead_of_raising",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L410-L420",
      "signature": "def test_a_missing_column_is_reported_instead_of_raising(self) -> None: # Regression: the per-row checks index protein_path directly, so a CSV # without that column used to abort with KeyError.",
      "exported": true,
      "origin": "ast",
      "body_hash": "219683aac06c9952bcd2b39849cbf055c888fd966e90fd496dd629703e372c18",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_complex_name_is_reported",
      "name": "test_a_missing_complex_name_is_reported",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L372-L377",
      "signature": "def test_a_missing_complex_name_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "561fab7f4b6db29d68419b63c2ecc8b5b7757cbb9052e29a21d1790a422c1bb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_ligand_description_is_reported",
      "name": "test_a_missing_ligand_description_is_reported",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L387-L392",
      "signature": "def test_a_missing_ligand_description_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be10a5e73dabfa715383a2a1b3e94435e81f647b2b954cbbc94dad24368ff964",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_protein_file_is_reported_with_its_row",
      "name": "test_a_missing_protein_file_is_reported_with_its_row",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L379-L385",
      "signature": "def test_a_missing_protein_file_is_reported_with_its_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bedf165ca27c970d608b356dc57214ed680e8c183d5e313e3b9ccf062af01a0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_row_with_neither_protein_input_is_rejected",
      "name": "test_a_row_with_neither_protein_input_is_rejected",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L365-L370",
      "signature": "def test_a_row_with_neither_protein_input_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e95b9ac23b15c3b0a42b59c69a7afd3bc668e32093b24071c9e970165f8f77ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_sequence_only_row_needs_no_protein_file",
      "name": "test_a_sequence_only_row_needs_no_protein_file",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L360-L363",
      "signature": "def test_a_sequence_only_row_needs_no_protein_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90ece6a85c415140a07f1f540d5a7bfaabb7e302834ecce18e826ba1cc01ffd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_usable_csv_passes_without_complaint",
      "name": "test_a_usable_csv_passes_without_complaint",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L349-L358",
      "signature": "def test_a_usable_csv_passes_without_complaint(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0f357308e32ebaa1f8c4c66f7fc7fa36e4870c562258c6458b777178d98c2f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_an_invalid_smiles_row_fails_validation",
      "name": "test_an_invalid_smiles_row_fails_validation",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L433-L440",
      "signature": "def test_an_invalid_smiles_row_fails_validation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "77c9ab9f8249d41dd28e1a4fb8d8c6067dcedcdbe2eed288b8e8223e10f29d05",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_an_unreadable_csv_is_reported_not_raised",
      "name": "test_an_unreadable_csv_is_reported_not_raised",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L422-L425",
      "signature": "def test_an_unreadable_csv_is_reported_not_raised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0522656b6a426ced2e0dd7b16441c24a202802d37e0ce3a7d9bf5b946a9ca772",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_both_protein_inputs_together_warn_but_still_validate",
      "name": "test_both_protein_inputs_together_warn_but_still_validate",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L403-L408",
      "signature": "def test_both_protein_inputs_together_warn_but_still_validate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1571a0165a577020641947437ec84360643e28f92185c0b5c77fd1b4d285df0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "name": "write_csv",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L344-L347",
      "signature": "def write_csv(self, *rows: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "932bc4357c30056b549c07958fc0d0e8db0d31d583e2997ee378ec5d5968ae9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchCsvValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "name": "ComplexParsingTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L145-L186",
      "signature": "class ComplexParsingTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "589b8342c478c4aefce54032b2125b06c6c6b5da132139060393b3d813384672",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_batch_directory_is_keyed_by_subdirectory_name",
      "name": "test_a_batch_directory_is_keyed_by_subdirectory_name",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L180-L186",
      "signature": "def test_a_batch_directory_is_keyed_by_subdirectory_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "87868b1ab6edbca2c4370968339becbfc271a32b0722edf6b53ce8faedfd23bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexParsingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_directory_without_pose_files_parses_to_nothing",
      "name": "test_a_directory_without_pose_files_parses_to_nothing",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L171-L173",
      "signature": "def test_a_directory_without_pose_files_parses_to_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b59152fd064bd4abd5857f555adc25699ffe605b6c78ad0880aed2bd616850e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexParsingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_single_complex_directory_is_reported_under_one_key",
      "name": "test_a_single_complex_directory_is_reported_under_one_key",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L175-L178",
      "signature": "def test_a_single_complex_directory_is_reported_under_one_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd178bb9b3cd3a05a49d1e342a6cec717e155659838374ed2e9e5175e0bf3b12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexParsingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_ranks_are_ordered_numerically_not_lexicographically",
      "name": "test_ranks_are_ordered_numerically_not_lexicographically",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L152-L161",
      "signature": "def test_ranks_are_ordered_numerically_not_lexicographically(self) -> None: # \"rank10\" sorts before \"rank2\" as text; the top pose would be wrong.",
      "exported": true,
      "origin": "ast",
      "body_hash": "22e7d45bca95b1d61794d74aa378059d84fa5617d2ecfcb5ff89eca365765131",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexParsingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_the_scored_filename_wins_over_the_bare_one_for_the_same_rank",
      "name": "test_the_scored_filename_wins_over_the_bare_one_for_the_same_rank",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L163-L169",
      "signature": "def test_the_scored_filename_wins_over_the_bare_one_for_the_same_rank(self) -> None: # A run can leave both spellings behind; keeping the unscored one would # silently drop the confidence for that rank.",
      "exported": true,
      "origin": "ast",
      "body_hash": "90636fd50d9b8cc01532cf7dce75fba0aadb1a4fc9ee7101dce118d05346ff85",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexParsingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "name": "write",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L147-L150",
      "signature": "def write(directory: Path, *names: str) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3775e4fb9bd114c8027dc01c50b186afa1b72850e832d142fe10a4cd310dc34",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexParsingTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests",
      "name": "ConfidenceClassificationTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L72-L89",
      "signature": "class ConfidenceClassificationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "efc441cd1eb22152860d4c0a157081f8ac7504276ef3e1655a9c3f2120d07838",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests.test_a_missing_score_is_unknown_rather_than_low",
      "name": "test_a_missing_score_is_unknown_rather_than_low",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L87-L89",
      "signature": "def test_a_missing_score_is_unknown_rather_than_low(self) -> None: # A pose whose score could not be parsed must not be reported as bad.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b7532eb15fb466fcd896a1f04afcb95c983d99151709e9a3807243419da467a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceClassificationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests.test_the_band_boundaries_fall_on_the_documented_side",
      "name": "test_the_band_boundaries_fall_on_the_documented_side",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L80-L85",
      "signature": "def test_the_band_boundaries_fall_on_the_documented_side(self) -> None: # Exactly 0 is not \"High\" -- the high band is strictly above zero -- and # exactly -1.5 is \"Low\", so the moderate band is (-1.5, 0].",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbe4640637e0d8a091f30b9b5c852d4c20e0f709a07e7ff1f03466c5efda12df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceClassificationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests.test_the_three_published_bands",
      "name": "test_the_three_published_bands",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L75-L78",
      "signature": "def test_the_three_published_bands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eed25e47501ee595086f97fc010057634666e77b67089fd1c4a1078667c6cb58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceClassificationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "name": "ConfidenceExtractionTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L92-L142",
      "signature": "class ConfidenceExtractionTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dd198a34427ca23b145650bf16e0733c8934371da65702be7e180d55b7cde56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_file_with_no_score_anywhere_yields_none",
      "name": "test_a_file_with_no_score_anywhere_yields_none",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L139-L142",
      "signature": "def test_a_file_with_no_score_anywhere_yields_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e09d1236d659f8ce4b88c98ae0e727ebeed7212144535d093764ddf80117badf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_legacy_run_falls_back_to_confidence_scores_txt",
      "name": "test_a_legacy_run_falls_back_to_confidence_scores_txt",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L109-L116",
      "signature": "def test_a_legacy_run_falls_back_to_confidence_scores_txt(self) -> None: # Older DiffDock wrote rank_1.sdf plus one score per line, in rank order.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd32ee43a8c05dfcc50ff08665447428b85fc62b06fadb1e8d866816dbd53a45",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_negative_score_keeps_its_sign",
      "name": "test_a_negative_score_keeps_its_sign",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L100-L107",
      "signature": "def test_a_negative_score_keeps_its_sign(self) -> None: # Most real poses score below zero; dropping the minus sign would turn # every low-confidence pose into a high-confidence one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d47de479e37428494bd71b89196c4263738e444ce201b017a2ffdd368febb516",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_rank_past_the_end_of_the_legacy_file_is_not_invented",
      "name": "test_a_rank_past_the_end_of_the_legacy_file_is_not_invented",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L118-L122",
      "signature": "def test_a_rank_past_the_end_of_the_legacy_file_is_not_invented(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f45e755017782085acfb2a5ef3887315c9a302aa1c9a9b5b41ede20264f0bc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_an_inline_confidence_property_is_also_read",
      "name": "test_an_inline_confidence_property_is_also_read",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L132-L137",
      "signature": "def test_an_inline_confidence_property_is_also_read(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8270643e5f16027cdad31c484f8a42b4e185e995f47ee68f8435134ec12bda6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_an_sdf_data_item_is_the_last_resort",
      "name": "test_an_sdf_data_item_is_the_last_resort",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L124-L130",
      "signature": "def test_an_sdf_data_item_is_the_last_resort(self) -> None: # The SDF data-item spelling: a `> <tag>` line, then the value.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a03ef7440a5eb82d0234263a219b8f304655ec50108067037b8110c7037109b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_the_score_is_read_from_the_current_filename_format",
      "name": "test_the_score_is_read_from_the_current_filename_format",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L93-L98",
      "signature": "def test_the_score_is_read_from_the_current_filename_format(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "09524320c87bccc34672dcf461d2fdca9801d7f9c4e50eb3829605c40677dfdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfidenceExtractionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#CsvExportTests",
      "name": "CsvExportTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L225-L248",
      "signature": "class CsvExportTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "76fec3a34042dc1e967efcb5fa753aeeb52ec50428811dc710943648964aec98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#CsvExportTests.test_every_pose_becomes_one_row_with_its_band",
      "name": "test_every_pose_becomes_one_row_with_its_band",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L226-L248",
      "signature": "def test_every_pose_becomes_one_row_with_its_band(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e991a69afcccb69ab5e3cd09492c3b4821cd136b881670464542c8abe42c1744",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvExportTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "name": "FilePathValidationTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L312-L338",
      "signature": "class FilePathValidationTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea4f203c51d95660a9fed880161a975b2438aba08f7ebedbdcd91d2d7cf2eeea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_a_missing_file_is_named_in_the_message",
      "name": "test_a_missing_file_is_named_in_the_message",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L318-L321",
      "signature": "def test_a_missing_file_is_named_in_the_message(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1006a5138db25cdad23152eeadab980ee8f1bb3298e77705bb0abe2dcce98a27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilePathValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_a_relative_path_resolves_against_the_base_directory",
      "name": "test_a_relative_path_resolves_against_the_base_directory",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L323-L331",
      "signature": "def test_a_relative_path_resolves_against_the_base_directory(self) -> None: # Without the base directory the same path is looked up in the process # working directory, where it does not exist.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e0a0ab14e0e2817b4c0e58db07e005121722f645865b225543eafde748d6e3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilePathValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_an_empty_path_is_allowed_because_a_sequence_may_replace_it",
      "name": "test_an_empty_path_is_allowed_because_a_sequence_may_replace_it",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L333-L338",
      "signature": "def test_an_empty_path_is_allowed_because_a_sequence_may_replace_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "95989a21179073684d0ffac39447dbd34796190ce7fc44cc75eabcc873b606df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilePathValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_an_existing_file_passes",
      "name": "test_an_existing_file_passes",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L313-L316",
      "signature": "def test_an_existing_file_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "865d25af542b7c9a87917dd59e581fc89a516961ba42b8debb03464686d668a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilePathValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "name": "InstallationProbeTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L611-L642",
      "signature": "class InstallationProbeTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2925bd96452f1a69b5fe81ad1838d230479ae30d9a1c80990eb3600e3e7d2a73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#InstallationProbeTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L612-L616",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "25195d8c678f3d470290c8bec38b7a2e2b5520f9a16c4e2d04d5e949a43f37d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_absent_checkpoints_are_a_note_not_a_failure",
      "name": "test_absent_checkpoints_are_a_note_not_a_failure",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L630-L635",
      "signature": "def test_absent_checkpoints_are_a_note_not_a_failure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e7ab542c6243f689eb533d88fb9b889c7b1507d9d86feb3609d9f9869da8054",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_an_unrelated_directory_is_not_a_diffdock_checkout",
      "name": "test_an_unrelated_directory_is_not_a_diffdock_checkout",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L618-L621",
      "signature": "def test_an_unrelated_directory_is_not_a_diffdock_checkout(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6dc5816eeaae2b671b1181d712e8032374b0bf4d13c9856ed88cbf31fc7d83e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_present_checkpoints_are_recognised_at_the_documented_path",
      "name": "test_present_checkpoints_are_recognised_at_the_documented_path",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L637-L642",
      "signature": "def test_present_checkpoints_are_recognised_at_the_documented_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a0787380ec454d0fd327866b1b576ba46cf84d80b2991c004e6e73c963994d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_the_upstream_entry_points_are_what_it_looks_for",
      "name": "test_the_upstream_entry_points_are_what_it_looks_for",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L623-L628",
      "signature": "def test_the_upstream_entry_points_are_what_it_looks_for(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0a65203d87d84cb28a9837952520623aedaf5c88183091ffadc2c9bc56c466e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "name": "PackageProbeTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L528-L608",
      "signature": "class PackageProbeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "88526edee8dd5c9fad9cf456da4308fe4b55d0e38aed517a50543a77207c5e7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_nested_version_attribute_is_followed",
      "name": "test_a_nested_version_attribute_is_followed",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L539-L551",
      "signature": "def test_a_nested_version_attribute_is_followed(self) -> None: # RDKit's version lives at rdkit.rdBase.__version__, not on the package.",
      "exported": true,
      "origin": "ast",
      "body_hash": "777c133c44860cbdbac69d4a6fcaa1057d91b2505b63aeadd8f6141b0969fc3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_package_without_a_version_still_counts_as_installed",
      "name": "test_a_package_without_a_version_still_counts_as_installed",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L553-L560",
      "signature": "def test_a_package_without_a_version_still_counts_as_installed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "15c545229d10580131ee4ec6ed560f8361e7ed003576432132ee16564c6d53df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_present_package_reports_its_version",
      "name": "test_a_present_package_reports_its_version",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L529-L537",
      "signature": "def test_a_present_package_reports_its_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "83d0316d93ad8d9e4c795b963f8e72ecec5904251283d8c505dbfd67a0d5d6a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_visible_gpu_is_named_in_the_report",
      "name": "test_a_visible_gpu_is_named_in_the_report",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L579-L592",
      "signature": "def test_a_visible_gpu_is_named_in_the_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cc2326265fb33e900194421ce0cac478109ab5e39c35c2cea83c3356b6bf755",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_an_absent_package_is_reported_as_not_installed",
      "name": "test_an_absent_package_is_reported_as_not_installed",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L562-L567",
      "signature": "def test_an_absent_package_is_reported_as_not_installed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38c54b9f8d0ca27ede29592187a08ede57aa1989c87980ece550bc81f324bc07",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_missing_esm_is_reported_as_optional",
      "name": "test_missing_esm_is_reported_as_optional",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L601-L608",
      "signature": "def test_missing_esm_is_reported_as_optional(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d31c554aec759d68c599bc06076dda5a6278eee9927eea16bcdfc12a74f828b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_missing_torch_reports_no_gpu_rather_than_raising",
      "name": "test_missing_torch_reports_no_gpu_rather_than_raising",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L594-L599",
      "signature": "def test_missing_torch_reports_no_gpu_rather_than_raising(self) -> None: # None in sys.modules makes `import torch` raise ImportError.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9642c0156d37084d477eade41756bc9d774d8e40e8c9f1672c622422371ad690",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PackageProbeTests.test_torch_reports_cuda_separately_from_the_import",
      "name": "test_torch_reports_cuda_separately_from_the_import",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L569-L577",
      "signature": "def test_torch_reports_cuda_separately_from_the_import(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e18d00eaa86fc5ce58bd2bda81b1beaa0bd4fca76090861f07f68c16ef3ccde3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageProbeTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PerformanceNoteTests",
      "name": "PerformanceNoteTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L645-L653",
      "signature": "class PerformanceNoteTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "23e371efb4d80b5bbc7d4f101ad0c5e3079966d128788b9a08961de3f713bd87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#PerformanceNoteTests.test_the_gpu_and_cpu_guidance_do_not_swap",
      "name": "test_the_gpu_and_cpu_guidance_do_not_swap",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L646-L653",
      "signature": "def test_the_gpu_and_cpu_guidance_do_not_swap(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "03ecd9aa435306d28b0ce4c2f8137f7d5eb830d83e0dbc12774ae30bd5b955a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PerformanceNoteTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PythonVersionCheckTests",
      "name": "PythonVersionCheckTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L502-L525",
      "signature": "class PythonVersionCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "67eb1d25da395f2dcdaa854e0d4120c6bba41aea497c3cebd5cc673fcba90420",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_a_newer_interpreter_is_accepted",
      "name": "test_a_newer_interpreter_is_accepted",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L522-L525",
      "signature": "def test_a_newer_interpreter_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6545c106dce080a5ce442015784670cd0e1d8d9abe3c4b9c899f39f9f7832e64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonVersionCheckTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_anything_older_fails_and_says_what_is_required",
      "name": "test_anything_older_fails_and_says_what_is_required",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L516-L520",
      "signature": "def test_anything_older_fails_and_says_what_is_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e04fea98a255817c6a5b5c9f49350269bf49813ee0d253c537e522285269620b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonVersionCheckTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_the_upstream_minimum_of_three_nine_passes",
      "name": "test_the_upstream_minimum_of_three_nine_passes",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L509-L514",
      "signature": "def test_the_upstream_minimum_of_three_nine_passes(self) -> None: # DiffDock's environment.yml pins Python 3.9.18, so 3.9 is the floor.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c25db22876a634815e076aa7bf7cb6cb845f351cbfdcbbea721b5efdf4650f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonVersionCheckTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.version",
      "name": "version",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L504-L507",
      "signature": "def version(major: int, minor: int, micro: int = 0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "14895eb7e42bf731ef07b6a8a1e5240ddd8cbce90bf4e8656bb4a39a5f87bf94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonVersionCheckTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#quietly",
      "name": "quietly",
      "kind": "function",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L57-L62",
      "signature": "def quietly(function, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "efd903166239aa4599b440550182c1552c2293850f568f447c3306bdc0f161a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests",
      "name": "ShippedTemplateAssetTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L470-L499",
      "signature": "class ShippedTemplateAssetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6af3bfdc07808b183420300c2dd11ad110f08d5a313733c4a7518041d02bd491",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L473-L475",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "58f565b17fdeb23f82bd5ef47b78fa09ff880374b02da89b5c6c64017d9cefce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShippedTemplateAssetTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.test_every_row_supplies_a_protein_by_path_or_by_sequence",
      "name": "test_every_row_supplies_a_protein_by_path_or_by_sequence",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L483-L489",
      "signature": "def test_every_row_supplies_a_protein_by_path_or_by_sequence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "151f8e056868556d832d402b1ef4574586f06bacce1307730e529313e4e38202",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShippedTemplateAssetTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.test_every_smiles_in_the_asset_parses",
      "name": "test_every_smiles_in_the_asset_parses",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L491-L499",
      "signature": "def test_every_smiles_in_the_asset_parses(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "577335a9a6b38fd99ab1421f541d1900c10a5789a900042e138123a0623759bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShippedTemplateAssetTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.test_it_declares_the_columns_the_validator_requires",
      "name": "test_it_declares_the_columns_the_validator_requires",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L477-L481",
      "signature": "def test_it_declares_the_columns_the_validator_requires(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e292089662586f79a1fb7069e3c108338da9389030ed7a575daf4dd40a0ed946",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShippedTemplateAssetTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SmilesValidationTests",
      "name": "SmilesValidationTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L292-L309",
      "signature": "class SmilesValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "408d66a06df0d760474435085b5ebe5d2f7fc7640a13f78d4d3f54c4c1edfc3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#SmilesValidationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L293-L295",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51bc57e389b5d2181725e0750db4106b919e5540d08cf8ca055304dccfb490d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmilesValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SmilesValidationTests.test_a_malformed_smiles_is_rejected",
      "name": "test_a_malformed_smiles_is_rejected",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L301-L305",
      "signature": "def test_a_malformed_smiles_is_rejected(self) -> None: # An unclosed ring bond: RDKit returns None rather than raising.",
      "exported": true,
      "origin": "ast",
      "body_hash": "138115850d80751cde262028b668305b28daecbcb5c1b184d840d8a5c57af708",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmilesValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SmilesValidationTests.test_a_real_drug_smiles_is_accepted",
      "name": "test_a_real_drug_smiles_is_accepted",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L297-L299",
      "signature": "def test_a_real_drug_smiles_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e46337c91d1456b64e1c5a6ae6f68d8e17ff6cd98786b7e5718bcf8d4bdda87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmilesValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SmilesValidationTests.test_an_impossible_valence_is_rejected",
      "name": "test_an_impossible_valence_is_rejected",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L307-L309",
      "signature": "def test_an_impossible_valence_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d832501253b8dc6313a190ed139a26db393de69c9e43cb1d154dd740ada608cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmilesValidationTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "name": "SummaryFilterTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L251-L289",
      "signature": "class SummaryFilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c95036e20546bcbc2d6d8dace95ba76cf498c042eea858c523785ecde5e4e964",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_a_threshold_drops_lower_and_unscored_poses",
      "name": "test_a_threshold_drops_lower_and_unscored_poses",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L275-L280",
      "signature": "def test_a_threshold_drops_lower_and_unscored_poses(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e761e885ebb9768c3e583b083e4c24642cb369450ef94e5b76c3a63dfba876f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryFilterTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_a_threshold_keeps_the_poses_at_or_above_it",
      "name": "test_a_threshold_keeps_the_poses_at_or_above_it",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L267-L273",
      "signature": "def test_a_threshold_keeps_the_poses_at_or_above_it(self) -> None: # Inclusive at the boundary: -1.0 survives a threshold of -1.0.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c6271253d55997b9515b780c31b08dac215a927b8cb6d579ac6983a9bd664e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryFilterTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_an_empty_complex_is_reported_rather_than_skipped",
      "name": "test_an_empty_complex_is_reported_rather_than_skipped",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L287-L289",
      "signature": "def test_an_empty_complex_is_reported_rather_than_skipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffffd68c31e3bfb0093974fd9132fcaa807f9ec56e99a9ec02b387705e0ab050",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryFilterTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_top_n_truncates_the_listing",
      "name": "test_top_n_truncates_the_listing",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L282-L285",
      "signature": "def test_top_n_truncates_the_listing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3662cc6fa62d2458181cc9b346a58ea586e74a1c7e173bbd5b7f8c46eb95f127",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryFilterTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_without_a_threshold_every_pose_is_listed",
      "name": "test_without_a_threshold_every_pose_is_listed",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L262-L265",
      "signature": "def test_without_a_threshold_every_pose_is_listed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "613e17ea3fb1043674e3c1af22fe4985f7d273e9dbf87e14d393dcde423dfef0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryFilterTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "name": "TemplateCsvTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L443-L467",
      "signature": "class TemplateCsvTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8f37ca663ffe6f8fa4c942c97b5d214db99c0d94746489525cb668d48412dc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_only_three_examples_exist_so_larger_requests_are_capped",
      "name": "test_only_three_examples_exist_so_larger_requests_are_capped",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L457-L461",
      "signature": "def test_only_three_examples_exist_so_larger_requests_are_capped(self) -> None: # The CLI advertises 1-3; asking for more must not produce empty rows.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6b3e9e0e619ed8b4999aa6a898bacbadb9cbadba67473129835d431b0ec77ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateCsvTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_the_first_example_ligand_is_a_parseable_molecule",
      "name": "test_the_first_example_ligand_is_a_parseable_molecule",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L463-L467",
      "signature": "def test_the_first_example_ligand_is_a_parseable_molecule(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "af4cede0ed64b58fac703bfb0e4099053f36b838c5560f759e41a7d0f7cbdf11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateCsvTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_the_requested_number_of_example_rows_is_written",
      "name": "test_the_requested_number_of_example_rows_is_written",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L453-L455",
      "signature": "def test_the_requested_number_of_example_rows_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "029301e6afe07b61ef18d2d63b3cf184a9975cca533c14a3e42becdbc0b91b91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateCsvTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_the_template_carries_the_four_columns_diffdock_requires",
      "name": "test_the_template_carries_the_four_columns_diffdock_requires",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L444-L451",
      "signature": "def test_the_template_carries_the_four_columns_diffdock_requires(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8b47ef133b3cd0701e7bc8104b14b2d258af625e918dcfc5d2cb49289c65869",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateCsvTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "name": "TemporaryDirectoryTestCase",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L65-L69",
      "signature": "class TemporaryDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "edfd6896219aad5689ef333fb5963fb4ed407f5ec249f13bb6d8b45f3bff181d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L66-L69",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TopPredictionTests",
      "name": "TopPredictionTests",
      "kind": "class",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L189-L222",
      "signature": "class TopPredictionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "87407f4ece0a7c11d8e9374b831a0ea1f41b019f77769173981d07d95d42343d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/diffdock/test_scripts.py#TopPredictionTests.results",
      "name": "results",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L191-L202",
      "signature": "def results(*entries)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e28e03e29b7a9a8635736f70285e10b9fbe69879e8e53b7345d3cc5166509d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopPredictionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TopPredictionTests.test_asking_for_more_than_exists_returns_what_exists",
      "name": "test_asking_for_more_than_exists_returns_what_exists",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L220-L222",
      "signature": "def test_asking_for_more_than_exists_returns_what_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8547863b9b91eb1a27bff6d289512688ddea0c6ba4b2cc6f8306b897a3013a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopPredictionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TopPredictionTests.test_the_best_poses_are_ranked_across_every_complex",
      "name": "test_the_best_poses_are_ranked_across_every_complex",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L204-L213",
      "signature": "def test_the_best_poses_are_ranked_across_every_complex(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f9d280505a4db2aa0e8e4e56eaceb1eeaa4e2d873a097731ac0a31288a9d74c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopPredictionTests"
    },
    {
      "id": "tests/diffdock/test_scripts.py#TopPredictionTests.test_unscored_poses_are_excluded_rather_than_sorted_as_zero",
      "name": "test_unscored_poses_are_excluded_rather_than_sorted_as_zero",
      "kind": "method",
      "path": "tests/diffdock/test_scripts.py",
      "span": "L215-L218",
      "signature": "def test_unscored_poses_are_excluded_rather_than_sorted_as_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8806564f1739a98d1fb6563dd0ac4c64d4b03fc44e8461bc6dfa808939dd3906",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopPredictionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L1-L583",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f35deac88dc736367bb0e8d7dc1c2aadfb38c1fa02784c15a7763c93311e0e29",
      "chars": 24497,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "name": "AccessAndSecretTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L343-L401",
      "signature": "class AccessAndSecretTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "36c560e00be16a3f379537580945f5cc103af0b7045a8523a6926a5d3d308eab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_a_secret_key_holding_false_is_a_setting_not_a_credential",
      "name": "test_a_secret_key_holding_false_is_a_setting_not_a_credential",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L382-L385",
      "signature": "def test_a_secret_key_holding_false_is_a_setting_not_a_credential(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c4a726883df88a02c4dba651fb68b60b2e6f1c3c20a730df4fca6bf03e84dc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_access_levels_are_checked_against_the_documented_set",
      "name": "test_access_levels_are_checked_against_the_documented_set",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L361-L364",
      "signature": "def test_access_levels_are_checked_against_the_documented_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5763569fe3b16d97ecc3946e760c681878205ebc668dadccaffda67dd6d97429",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_broad_and_privileged_access_is_warned_about",
      "name": "test_broad_and_privileged_access_is_warned_about",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L344-L359",
      "signature": "def test_broad_and_privileged_access_is_warned_about(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "15daec6805aed1b969a74b475e6cfa2c1be75e02f049fbe890f0a7647e84b014",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_embedded_credentials_are_found_at_any_depth",
      "name": "test_embedded_credentials_are_found_at_any_depth",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L366-L373",
      "signature": "def test_embedded_credentials_are_found_at_any_depth(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f974c3b64a78621ae79a2412c4de06efcdc85bfa5cc4f21a77d6959b339614e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_https_ports_are_restricted",
      "name": "test_https_ports_are_restricted",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L393-L401",
      "signature": "def test_https_ports_are_restricted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22cdfe07bf54aaf8458c0bd37ea570e4dc5f0184c879ae96f241c15d13484bc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_placeholder_credentials_are_not_flagged",
      "name": "test_placeholder_credentials_are_not_flagged",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L375-L380",
      "signature": "def test_placeholder_credentials_are_not_flagged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "495143139d1162669affe26e7c808a8b405a6a9ce1d13a7748b75e201ef5bbd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_secret_detection_matches_whole_words_only",
      "name": "test_secret_detection_matches_whole_words_only",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L387-L391",
      "signature": "def test_secret_detection_matches_whole_words_only(self) -> None: # SECRET_KEY_RE anchors on word boundaries so `tokenizer` is not a token.",
      "exported": true,
      "origin": "ast",
      "body_hash": "790ffa1130c3953f2ba734f08461e554de903f6470ed595cd4ec63bf1132f738",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AccessAndSecretTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "name": "CommandLineTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L404-L460",
      "signature": "class CommandLineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fc2f7f05252847d70cb9af105d5a1fa387ee2ddbc4e18e5414fac04ba22c8a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L405-L414",
      "signature": "def _run(self, manifest, *flags) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "419f95e5275bbce1fb70dcd9f73908baf81f183d0341dd836e1da69ee5d3ac57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_a_clean_manifest_exits_zero",
      "name": "test_a_clean_manifest_exits_zero",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L416-L419",
      "signature": "def test_a_clean_manifest_exits_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "590a3c355393d59143dbfecfc163fd3595d5a39e5a0dfae9f2eb68ae8119193b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_errors_exit_one",
      "name": "test_errors_exit_one",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L421-L424",
      "signature": "def test_errors_exit_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0242ba324f762d77568672a7d58e369e50ac8f034c40ed68f2f380ddb7163e1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_json_output_is_machine_readable",
      "name": "test_json_output_is_machine_readable",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L432-L440",
      "signature": "def test_json_output_is_machine_readable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6483930cd6d189993dcc0811d4d5a12859d18d61199cde6fc3bed4c5ef6d4824",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_strict_promotes_warnings_to_a_failure",
      "name": "test_strict_promotes_warnings_to_a_failure",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L426-L430",
      "signature": "def test_strict_promotes_warnings_to_a_failure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53709bf85bc113f7762f97ad993f644a83219930a15c865c4cab752e8d495296",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_unreadable_manifest_exits_two_with_a_parse_issue",
      "name": "test_unreadable_manifest_exits_two_with_a_parse_issue",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L442-L460",
      "signature": "def test_unreadable_manifest_exits_two_with_a_parse_issue(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f40357606118b4dc1abaa2eec4c30c9e1bcc46814416e8b64786d60c6a139343",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "name": "issue_codes",
      "kind": "function",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L58-L60",
      "signature": "def issue_codes(manifest: dict, kind: str = \"auto\") -> set[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f96d01af5b38743aa3bc113f45deac0641f3f46a4b9b9a363bc27f082ea2223",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#MetadataTests",
      "name": "MetadataTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L104-L132",
      "signature": "class MetadataTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0c5ebbef53e2827c02722f9489585cd47e7bb107e032953a10df32b39555578",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_app_versions_must_be_semantic",
      "name": "test_app_versions_must_be_semantic",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L116-L127",
      "signature": "def test_app_versions_must_be_semantic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1c5693ea6ac00dbdc285cae8c0abb576e4c00d19b690fbcd9bd65cdecf8151f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_name_is_required_and_character_restricted",
      "name": "test_name_is_required_and_character_restricted",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L105-L114",
      "signature": "def test_name_is_required_and_character_restricted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a343c5d0e79cdf01ca8d58e885e28d17e38a7d45d2eec171dc57abb77381f5fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_top_level_resources_is_flagged_as_deprecated",
      "name": "test_top_level_resources_is_flagged_as_deprecated",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L129-L132",
      "signature": "def test_top_level_resources_is_flagged_as_deprecated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a00d9632a09b5efaa88030a5bd3c144a99f56ec768653e4b5d55f556c73bea5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "name": "ParameterSpecTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L135-L176",
      "signature": "class ParameterSpecTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9442f27e1359273088a83404ff6253ed954d57bcf86b5bbfafd096ba44b82a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_a_spec_that_is_not_a_list_is_reported_once",
      "name": "test_a_spec_that_is_not_a_list_is_reported_once",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L173-L176",
      "signature": "def test_a_spec_that_is_not_a_list_is_reported_once(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c9fbaa7dfd7e45ae23cbeb40977f2e22de916c64ab44bc517ce4703a8a88770",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParameterSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_duplicate_parameter_names_are_rejected",
      "name": "test_duplicate_parameter_names_are_rejected",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L143-L146",
      "signature": "def test_duplicate_parameter_names_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "284caa5c8eb0eaa46ddda2dee5c17e108cf1208081170aecf9bc7b27a07a993b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParameterSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_input_only_fields_are_rejected_in_the_output_spec",
      "name": "test_input_only_fields_are_rejected_in_the_output_spec",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L161-L171",
      "signature": "def test_input_only_fields_are_rejected_in_the_output_spec(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d290e4bca4f76a40ca37139593218d7ca092c0780c34dd21cdc61330f61e70d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParameterSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_optional_must_be_a_boolean",
      "name": "test_optional_must_be_a_boolean",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L156-L159",
      "signature": "def test_optional_must_be_a_boolean(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "97978bee7099de3e6b7c66b71d2a1d4413bc3855183f584dbd1360e2908db83e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParameterSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_parameter_names_follow_the_identifier_rule",
      "name": "test_parameter_names_follow_the_identifier_rule",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L136-L141",
      "signature": "def test_parameter_names_follow_the_identifier_rule(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7db4ea5bc9d8f5b48d029ac6610eab79c7f405e8f2e8a47fd33173402a3bcad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParameterSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_unknown_and_array_classes",
      "name": "test_unknown_and_array_classes",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L148-L154",
      "signature": "def test_unknown_and_array_classes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "91c23b43a05b682194ea1b13e4b65561218ca0d14b0ea31465549c04a360d9bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParameterSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "name": "PolicyTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L231-L282",
      "signature": "class PolicyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ac442d9eb300ec55fef9df9555f3c039772c05a6b82ae839d2b39551d894597",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_dependency_entries_must_be_named_objects",
      "name": "test_dependency_entries_must_be_named_objects",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L240-L246",
      "signature": "def test_dependency_entries_must_be_named_objects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8aa1642be3cb42d930006ae61168679ed9e8f17f479a1debc2aed76adf568ef9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PolicyTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_max_restarts_is_bounded_and_rejects_booleans",
      "name": "test_max_restarts_is_bounded_and_rejects_booleans",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L248-L257",
      "signature": "def test_max_restarts_is_bounded_and_rejects_booleans(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab6fe121e2ef831a24670f126189d98b30e3d451c7d1ed48211a581afe74db1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PolicyTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_restart_reasons_are_checked_against_the_documented_set",
      "name": "test_restart_reasons_are_checked_against_the_documented_set",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L259-L268",
      "signature": "def test_restart_reasons_are_checked_against_the_documented_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb5165eb65e81e4067a5c00ff7bd20bf542d65747f50ab24fe1b0ebafe5a46de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PolicyTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_timeout_units_and_values_are_constrained",
      "name": "test_timeout_units_and_values_are_constrained",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L270-L282",
      "signature": "def test_timeout_units_and_values_are_constrained(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64c944e3b3e4dae01671f228ef9d372c7f124f8b8e60f840d4c6fb61e338fb0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PolicyTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_unpinned_dependencies_are_warned_about",
      "name": "test_unpinned_dependencies_are_warned_about",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L232-L238",
      "signature": "def test_unpinned_dependencies_are_warned_about(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "265c48d99cc9df9fe96f574cef4c8d7604ef17d4c9a4d0a2e15342f992ca178b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PolicyTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests",
      "name": "RegionalOptionTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L285-L340",
      "signature": "class RegionalOptionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5dc559bb93cef964f9eb78ef4a5a19d8d5554c106388eb384dde8ee81f007e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list",
      "name": "test_instance_type_selector_needs_a_non_empty_string_list",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L321-L340",
      "signature": "def test_instance_type_selector_needs_a_non_empty_string_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ea612210c223ad479aa8cdeb78490889a1738dae61accab7dd006389da28c0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionalOptionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list.with_selector",
      "name": "with_selector",
      "kind": "function",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L322-L329",
      "signature": "def with_selector(selector)",
      "exported": true,
      "origin": "ast",
      "body_hash": "764492374c6900f2d5308fd9b1f0e4fe1436483f591f14bdc335fba040a7b6cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_region_identifiers_should_be_provider_qualified",
      "name": "test_region_identifiers_should_be_provider_qualified",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L286-L292",
      "signature": "def test_region_identifiers_should_be_provider_qualified(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fde90f3f32434464d39950a5b7a0f331118fd36634d401ed699a1c371022e81f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionalOptionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_resource_selectors_are_mutually_exclusive",
      "name": "test_resource_selectors_are_mutually_exclusive",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L307-L319",
      "signature": "def test_resource_selectors_are_mutually_exclusive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "610026b872aee3d4056002f0db8ca124daf0369368ea9b2cf0459520671f9ee8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionalOptionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_system_requirements_must_cover_every_region_or_none",
      "name": "test_system_requirements_must_cover_every_region_or_none",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L294-L305",
      "signature": "def test_system_requirements_must_cover_every_region_or_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e54cce83a1784504a621fade1a3853a5d68543186914fb98edd416699a1f43f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionalOptionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "name": "RunSpecTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L179-L228",
      "signature": "class RunSpecTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b0c75f731493548494144a0e0b9ccbed4ddaf22c85d51eeefb4b929795ee454",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_an_entry_source_is_required_and_should_not_be_doubled",
      "name": "test_an_entry_source_is_required_and_should_not_be_doubled",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L185-L192",
      "signature": "def test_an_entry_source_is_required_and_should_not_be_doubled(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c4ff018ae409a446ae5f93d08eb44a62a46e8113f6c139ce2d904965cbd7a7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_deprecated_system_requirements_location_is_flagged",
      "name": "test_deprecated_system_requirements_location_is_flagged",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L214-L217",
      "signature": "def test_deprecated_system_requirements_location_is_flagged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e649a0515b646c072ba22cadf76b15d67e04c2ee2324e1e57778d81842bb949c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_interpreter_distribution_release_and_aee_version_are_pinned",
      "name": "test_interpreter_distribution_release_and_aee_version_are_pinned",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L194-L205",
      "signature": "def test_interpreter_distribution_release_and_aee_version_are_pinned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ab9dfcba20e7d1bc99558fdd16df7f3f7d1334042b2cd2dccd2a1b30e5224da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_restartable_entry_points_are_constrained_and_warned_about",
      "name": "test_restartable_entry_points_are_constrained_and_warned_about",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L219-L228",
      "signature": "def test_restartable_entry_points_are_constrained_and_warned_about(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9cd974c75921c9eafe8c861de19d7bd58dc39e97b99780e345ead55a477fb17",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_runspec_is_required",
      "name": "test_runspec_is_required",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L180-L183",
      "signature": "def test_runspec_is_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4df3ea457086ff886ce868436f6cfb43be690d543ab8b7a8c01908810e4d0db7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_ubuntu_2004_is_supported_but_flagged_as_legacy",
      "name": "test_ubuntu_2004_is_supported_but_flagged_as_legacy",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L207-L212",
      "signature": "def test_ubuntu_2004_is_supported_but_flagged_as_legacy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c8f128421ce71b9eb3d180eaf2eb579101e0d28fcd03b11559550e3133a73ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunSpecTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "name": "SdkInspectionTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L476-L578",
      "signature": "class SdkInspectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5ed4c26956f3eb93c2c59a91e8ea0f05279f27c9ef0fde5dd454a643d3578a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_documented_baseline_is_a_parseable_version",
      "name": "test_documented_baseline_is_a_parseable_version",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L492-L494",
      "signature": "def test_documented_baseline_is_a_parseable_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbf265b505c4fa385b41ace8a4620c3704154ac1c21bb9a8134e2ed9d2200cf3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_missing_method_detection_reads_the_report",
      "name": "test_missing_method_detection_reads_the_report",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L522-L528",
      "signature": "def test_missing_method_detection_reads_the_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccdb332aaa3cdcf4ed27edcfe58b207af41d600e49118bca068e58962dc2d851",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_missing_symbol_detection_reads_the_report_not_the_sdk",
      "name": "test_missing_symbol_detection_reads_the_report_not_the_sdk",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L502-L520",
      "signature": "def test_missing_symbol_detection_reads_the_report_not_the_sdk(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4634f013ede965eeb2e7f6eed87b47f6ad2c6d9c60bbe69dc4ab614a00c135d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_report_generation_needs_the_sdk",
      "name": "test_report_generation_needs_the_sdk",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L530-L556",
      "signature": "def test_report_generation_needs_the_sdk(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1825d923848b597af39cf23683f9da49bbbb9fa056280ce3436902a03c692394",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_required_symbols_are_dxpy_qualified_names",
      "name": "test_required_symbols_are_dxpy_qualified_names",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L496-L500",
      "signature": "def test_required_symbols_are_dxpy_qualified_names(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6e9039f9ea6537e4f425c87d8e50feee480bf6c9ce08c1dda8cbe5fa27797cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_the_installed_sdk_meets_the_documented_baseline",
      "name": "test_the_installed_sdk_meets_the_documented_baseline",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L558-L570",
      "signature": "def test_the_installed_sdk_meets_the_documented_baseline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06fa2cff82e4a0702a89f1b453d0d32d7eb3dbc0d213719ab4ef7b1aaef5d594",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_the_report_is_json_serialisable",
      "name": "test_the_report_is_json_serialisable",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L572-L578",
      "signature": "def test_the_report_is_json_serialisable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d585d0c7400af28556c33dc45279f82f042b5b9f79103ea0a9d92e06cc0175ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_version_comparison_is_numeric_not_lexicographic",
      "name": "test_version_comparison_is_numeric_not_lexicographic",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L479-L484",
      "signature": "def test_version_comparison_is_numeric_not_lexicographic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "109fa68448cd3cd7390fcd69ea3b268d20310a5ce69dadddc38a4e55cdd2ab40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_version_comparison_tolerates_non_numeric_segments",
      "name": "test_version_comparison_tolerates_non_numeric_segments",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L486-L490",
      "signature": "def test_version_comparison_tolerates_non_numeric_segments(self) -> None: # Never raise on an unexpected version string -- the script's job is to # report, not to crash on a pre-release tag.",
      "exported": true,
      "origin": "ast",
      "body_hash": "857cf22d036042917d69330b2fb0f8493c835dbb024de4634da232a0de2ff7cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SdkInspectionTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SummaryTests",
      "name": "SummaryTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L463-L473",
      "signature": "class SummaryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d600e03a653d7ffe00ea203bf082fadecd8b36d5ba470014ded7ae825943156e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SummaryTests.test_summarize_counts_both_severities",
      "name": "test_summarize_counts_both_severities",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L464-L470",
      "signature": "def test_summarize_counts_both_severities(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b81efa9c4b5a22715e5343572aef1ce3db3ca94cacd0040e19a5165de0f263f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#SummaryTests.test_summarize_of_nothing_is_zeroed_not_empty",
      "name": "test_summarize_of_nothing_is_zeroed_not_empty",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L472-L473",
      "signature": "def test_summarize_of_nothing_is_zeroed_not_empty(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a36267360b5125529236f582703d62579a713909beec96b0de97ffb9458de403",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "name": "valid_app_manifest",
      "kind": "function",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L37-L55",
      "signature": "def valid_app_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c96c86fd27929c879532419b26517cada0384e5f4ba45970ddea084e8e5ceb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests",
      "name": "ValidBaselineTests",
      "kind": "class",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L63-L101",
      "signature": "class ValidBaselineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6567c9aa85915ce72de680675408cf11678ebc2f350330f536a276c0030aded8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_a_correct_app_manifest_produces_nothing",
      "name": "test_a_correct_app_manifest_produces_nothing",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L64-L67",
      "signature": "def test_a_correct_app_manifest_produces_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7d9040ef2bbd6800d3d01ac46e370221fc8a36b8ccc3574e251a3f97676fa23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidBaselineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_a_non_object_root_is_rejected_without_further_checks",
      "name": "test_a_non_object_root_is_rejected_without_further_checks",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L98-L101",
      "signature": "def test_a_non_object_root_is_rejected_without_further_checks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ab35f176cd75560bac5cf89c2a6dd1b52606a516ae6f034e7c21ded17c00fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidBaselineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_an_applet_only_gets_a_warning_for_missing_specs",
      "name": "test_an_applet_only_gets_a_warning_for_missing_specs",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L78-L96",
      "signature": "def test_an_applet_only_gets_a_warning_for_missing_specs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24b234b8c35b7a72d821bca54f866868d0cb306affa8da07565c9e8767a81290",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidBaselineTests"
    },
    {
      "id": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_kind_is_inferred_from_the_presence_of_version",
      "name": "test_kind_is_inferred_from_the_presence_of_version",
      "kind": "method",
      "path": "tests/dnanexus-integration/test_scripts.py",
      "span": "L69-L76",
      "signature": "def test_kind_is_inferred_from_the_presence_of_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0e3770fc067f4b89e12948e3bf259bb5221e2a08c2f62a871e8e4644f03ce40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidBaselineTests"
    },
    {
      "id": "tests/docx/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/docx/test_scripts.py",
      "span": "L1-L227",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eb85570cb41170b426e784b1e6dbb5f05458289206eb88f6053b2bc7b16a6343",
      "chars": 9100,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#document",
      "name": "document",
      "kind": "function",
      "path": "tests/docx/test_scripts.py",
      "span": "L39-L43",
      "signature": "def document(body: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "562112d6f61ae7a90f7ea9ae551fad3b4acf1cb5c4d6b3c6cfbb2061336cdcdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#HelperTests",
      "name": "HelperTests",
      "kind": "class",
      "path": "tests/docx/test_scripts.py",
      "span": "L166-L199",
      "signature": "class HelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de6d3557edf552f111e7ac0cca73dfa5048da0bac7fb8b3f8eb09e6ba5e75f58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#HelperTests._runs",
      "name": "_runs",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L169-L174",
      "signature": "def _runs(self, body: str) -> list",
      "exported": false,
      "origin": "ast",
      "body_hash": "68f00d597c8f4d9917e6c84f9272d9032200beba0d102963f64a7c978c1598ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelperTests"
    },
    {
      "id": "tests/docx/test_scripts.py#HelperTests.test_adjacency_requires_the_elements_to_be_siblings_in_order",
      "name": "test_adjacency_requires_the_elements_to_be_siblings_in_order",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L176-L180",
      "signature": "def test_adjacency_requires_the_elements_to_be_siblings_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb1a92cd50335f98fad8af2482e770d0b694253d8c037f11f0e82bc6c68ea23b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelperTests"
    },
    {
      "id": "tests/docx/test_scripts.py#HelperTests.test_an_intervening_element_breaks_adjacency",
      "name": "test_an_intervening_element_breaks_adjacency",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L182-L186",
      "signature": "def test_an_intervening_element_breaks_adjacency(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "233bf13782909270e4dbe351863f914107294297e8c6d1f1d05856e18e2807c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelperTests"
    },
    {
      "id": "tests/docx/test_scripts.py#HelperTests.test_element_matching_is_namespace_aware",
      "name": "test_element_matching_is_namespace_aware",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L188-L191",
      "signature": "def test_element_matching_is_namespace_aware(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d7c48e2339cd3d0ee85076ffeacf09067d19b38b14423118641d6cef18d49e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelperTests"
    },
    {
      "id": "tests/docx/test_scripts.py#HelperTests.test_run_tag_names_are_discovered_from_the_document",
      "name": "test_run_tag_names_are_discovered_from_the_document",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L193-L199",
      "signature": "def test_run_tag_names_are_discovered_from_the_document(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1eac91385f65779215047f8bb4f8acf21f4f438f386ead97eef220133980a4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelperTests"
    },
    {
      "id": "tests/docx/test_scripts.py#MergeRunsTestCase",
      "name": "MergeRunsTestCase",
      "kind": "class",
      "path": "tests/docx/test_scripts.py",
      "span": "L70-L77",
      "signature": "class MergeRunsTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4dabb461f766da195d484463a2f120ad2c66c77c4bf7b6fda626a3278015508",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "name": "package",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L76-L77",
      "signature": "def package(self, body: str) -> UnpackedPackage",
      "exported": true,
      "origin": "ast",
      "body_hash": "64f345caebecf8cb718766e754b4e8d3473e4b63ab156d75b9c6c058848f10fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeRunsTestCase"
    },
    {
      "id": "tests/docx/test_scripts.py#MergeRunsTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L71-L74",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MergeRunsTestCase"
    },
    {
      "id": "tests/docx/test_scripts.py#run",
      "name": "run",
      "kind": "function",
      "path": "tests/docx/test_scripts.py",
      "span": "L46-L48",
      "signature": "def run(text: str, *, preserve: bool = False, properties: str = \"\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1f0cc870d39bc4a98ece3c16f2c6e58ed5775e8396271ea39fc865e58f4c437",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#TemplateTests",
      "name": "TemplateTests",
      "kind": "class",
      "path": "tests/docx/test_scripts.py",
      "span": "L202-L222",
      "signature": "class TemplateTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcd4016e65b7d65f2cf5428d3c5513e92793de048a008edc345177e489c115ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#TemplateTests.test_the_comment_templates_are_shipped_and_parse",
      "name": "test_the_comment_templates_are_shipped_and_parse",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L203-L210",
      "signature": "def test_the_comment_templates_are_shipped_and_parse(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fc4b933fa27196af128c546ee8ba2f580b0cee9e5508bf32a174122efe37188",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TemplateTests.test_the_documented_comment_parts_are_all_present",
      "name": "test_the_documented_comment_parts_are_all_present",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L212-L222",
      "signature": "def test_the_documented_comment_parts_are_all_present(self) -> None: # Word needs every one of these to open a commented document.",
      "exported": true,
      "origin": "ast",
      "body_hash": "955a10feb006f89940803513106a4accb12ff6e19468c4b04b30c81c377b516d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests",
      "name": "TextPreservationTests",
      "kind": "class",
      "path": "tests/docx/test_scripts.py",
      "span": "L80-L163",
      "signature": "class TextPreservationTests(MergeRunsTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ba482dfec7ae165a3f0d789422724be52d61514093cb53ebe351f52d45e1bfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_a_document_with_nothing_to_merge_keeps_its_content",
      "name": "test_a_document_with_nothing_to_merge_keeps_its_content",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L133-L140",
      "signature": "def test_a_document_with_nothing_to_merge_keeps_its_content(self) -> None: # The XML declaration is rewritten by minidom's serializer, so compare # the document element rather than the whole byte stream.",
      "exported": true,
      "origin": "ast",
      "body_hash": "63b2a7c4d410e2e9538ab3eb6cf714118155638ffed18550585ec470b63ff2a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_adjacent_identical_runs_merge_without_changing_the_text",
      "name": "test_adjacent_identical_runs_merge_without_changing_the_text",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L81-L91",
      "signature": "def test_adjacent_identical_runs_merge_without_changing_the_text(self) -> None: # The trailing space needs xml:space=\"preserve\" to be significant -- # without it OOXML says the space is not part of the text, which is # what `office/helpers.rendered_text` implements.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c4e725fba39b698c980e2c7ca41fcc3bc19f0a6c3b13cf9aff8d8f130db44c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_an_empty_document_does_not_raise",
      "name": "test_an_empty_document_does_not_raise",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L142-L145",
      "signature": "def test_an_empty_document_does_not_raise(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d058f7da3e075fc5e6c53c30944376a8738c298131899c3795efc784e4d7e22",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_is_idempotent",
      "name": "test_merging_is_idempotent",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L157-L163",
      "signature": "def test_merging_is_idempotent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38a07f8a25dece2856a86d657a59de4a622258fdfa24f4e77e02ca9b643acfeb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_reduces_the_run_count",
      "name": "test_merging_reduces_the_run_count",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L100-L106",
      "signature": "def test_merging_reduces_the_run_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52b3b9fa9a1d7043664b8ad5b30f8f9366aff41eef5e2de5361a5e52bc801735",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_preserved_whitespace_survives_a_merge",
      "name": "test_preserved_whitespace_survives_a_merge",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L117-L123",
      "signature": "def test_preserved_whitespace_survives_a_merge(self) -> None: # Losing xml:space=\"preserve\" silently deletes the space between words.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e59a6da1b739ea76b7884dab9455a02403ce729efaffcabc8dcb492bc79c5254",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_in_different_paragraphs_are_not_merged_across",
      "name": "test_runs_in_different_paragraphs_are_not_merged_across",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L125-L131",
      "signature": "def test_runs_in_different_paragraphs_are_not_merged_across(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5686e31f4f38fef21af41acc365f770ac742727b7e6714fd391cb3c9278d64a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_with_different_formatting_are_not_merged",
      "name": "test_runs_with_different_formatting_are_not_merged",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L108-L115",
      "signature": "def test_runs_with_different_formatting_are_not_merged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "970373feb2a9d70e98b873e41ea4b594e00b606f5ea01099b55c2bc11dd0c7c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_the_result_is_still_well_formed_xml",
      "name": "test_the_result_is_still_well_formed_xml",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L147-L155",
      "signature": "def test_the_result_is_still_well_formed_xml(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cf945664bf82ce5c7c3829e04ade59d3f57d82b6b1ead53c77dd171c34659a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#TextPreservationTests.test_unpreserved_trailing_whitespace_is_insignificant",
      "name": "test_unpreserved_trailing_whitespace_is_insignificant",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L93-L98",
      "signature": "def test_unpreserved_trailing_whitespace_is_insignificant(self) -> None: # The counterpart: without xml:space=\"preserve\" the space is dropped, # matching how Word itself reads the part.",
      "exported": true,
      "origin": "ast",
      "body_hash": "076f4e86973ea4827ffee9e10cd176a2884eac7894de0d5746090268a1c1a9f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TextPreservationTests"
    },
    {
      "id": "tests/docx/test_scripts.py#UnpackedPackage",
      "name": "UnpackedPackage",
      "kind": "class",
      "path": "tests/docx/test_scripts.py",
      "span": "L51-L67",
      "signature": "class UnpackedPackage",
      "exported": true,
      "origin": "ast",
      "body_hash": "f13c2a615efb0864191f1b47c1af4d046276a9d360ffac7ce8e5e3ca4f02c650",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/docx/test_scripts.py#UnpackedPackage.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L54-L58",
      "signature": "def __init__(self, root: Path, body: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "1fabbc2b83ddf146ed75734351c0b8a79171b6ba60641f6ce880b833c7901127",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "UnpackedPackage"
    },
    {
      "id": "tests/docx/test_scripts.py#UnpackedPackage.visible_text",
      "name": "visible_text",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L64-L67",
      "signature": "def visible_text(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "30ada8e9cc5122806dc4180359e3acaa3991326f11daff23996be46b567bf30c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "UnpackedPackage"
    },
    {
      "id": "tests/docx/test_scripts.py#UnpackedPackage.xml",
      "name": "xml",
      "kind": "method",
      "path": "tests/docx/test_scripts.py",
      "span": "L61-L62",
      "signature": "def xml(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "dce37bef92adc43fc661aa3cc052a43a07c889ecb63472fd9a127a796b1d047f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "UnpackedPackage"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L1-L913",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3201316deaa56ee8584ee442855529f37ea4af89ffe698f0bc9f83cf0dada31c",
      "chars": 42073,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "name": "BindAddressTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L585-L620",
      "signature": "class BindAddressTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d712da18d5b2f662f4d25d310f6f61a2d4de59c525aafd7d6e5cf1bc83f87a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_a_host_name_that_merely_starts_with_localhost_is_refused",
      "name": "test_a_host_name_that_merely_starts_with_localhost_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L607-L615",
      "signature": "def test_a_host_name_that_merely_starts_with_localhost_is_refused(self) -> None: # \"localhost.example.com\" resolves wherever its DNS says; only the # exact name is treated as loopback.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b800fcdf2fd10477505047e6e6e14bc8964006ee2d730172e54db2a5844edef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BindAddressTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_every_loopback_spelling_is_allowed_without_the_opt_in",
      "name": "test_every_loopback_spelling_is_allowed_without_the_opt_in",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L588-L594",
      "signature": "def test_every_loopback_spelling_is_allowed_without_the_opt_in(self) -> None: # A validator that rejected these would make the default `--host # 127.0.0.1` unusable, so the permissive direction matters as much as # the restrictive one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "342b691b3bc9039b72853440dfa3caf42c3b2a474237d2f843b6072f29fbc5d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BindAddressTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_routable_addresses_are_refused_without_the_opt_in",
      "name": "test_routable_addresses_are_refused_without_the_opt_in",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L601-L605",
      "signature": "def test_routable_addresses_are_refused_without_the_opt_in(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "45dfdab60cfb4ac7572dc4face5f57cee21260c5b17a61018f7e4349ece721b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BindAddressTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_the_opt_in_permits_exactly_what_it_says",
      "name": "test_the_opt_in_permits_exactly_what_it_says",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L617-L620",
      "signature": "def test_the_opt_in_permits_exactly_what_it_says(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c158bed8f8da5fe78fffcefdb4a422d0feb2e292cdd473f68cccfc7d265396f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BindAddressTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_the_wildcard_address_is_refused_without_the_opt_in",
      "name": "test_the_wildcard_address_is_refused_without_the_opt_in",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L596-L599",
      "signature": "def test_the_wildcard_address_is_refused_without_the_opt_in(self) -> None: # 0.0.0.0 is not loopback: it publishes the viewer on every interface.",
      "exported": true,
      "origin": "ast",
      "body_hash": "40ee25e2e4329c75cd0d6876ba7db111b62d91ad998b9ca6a4cd13dac2ee5813",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BindAddressTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "name": "CommandLineTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L366-L582",
      "signature": "class CommandLineTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "773941b610aea4ba2b9d244c685d4ca5e02a48bdc0d697e0038d199c889cba08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "name": "run_main",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L369-L373",
      "signature": "def run_main(self, argv: list[str]) -> tuple[int, str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa2ff330f6f4454948e5025ccab3a827929dd751584187d6c603681e9429bab0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_a_missing_input_exits_two_with_a_message_on_stderr",
      "name": "test_a_missing_input_exits_two_with_a_message_on_stderr",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L375-L378",
      "signature": "def test_a_missing_input_exits_two_with_a_message_on_stderr(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62c4a443a579525004192cbb2d365b4612f4d493733eeba20ddfa6a907092179",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_an_unnamed_leaf_still_occupies_a_line",
      "name": "test_an_unnamed_leaf_still_occupies_a_line",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L400-L404",
      "signature": "def test_an_unnamed_leaf_still_occupies_a_line(self) -> None: # Otherwise the leaf count and the line count disagree downstream.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8bea11b40aa69294b68aceff5c1786883c07707b4a23a6b25e030bf8da58d75e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_duplicate_names_is_refused",
      "name": "test_comparing_a_tree_with_duplicate_names_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L435-L442",
      "signature": "def test_comparing_a_tree_with_duplicate_names_is_refused(self) -> None: # Robinson-Foulds is defined over sets of leaf labels; duplicates make # the split sets meaningless, so the comparison must not run.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec59f6ace6ed5fbea5c4a7231ee0c67a69b86a71fa1dc2db8e590fb23913363d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_unnamed_leaves_is_refused",
      "name": "test_comparing_a_tree_with_unnamed_leaves_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L444-L449",
      "signature": "def test_comparing_a_tree_with_unnamed_leaves_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b618152cea3fb50857b2e50ec66eb7dc82ed042a301d3decbd3e9a6cd7180aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_converting_between_parsers_keeps_the_leaf_set",
      "name": "test_converting_between_parsers_keeps_the_leaf_set",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L565-L582",
      "signature": "def test_converting_between_parsers_keeps_the_leaf_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "50c7063da611f44b0cdf13dfc88ca6baf947e9a3f3e977b2da205a8af25e5a20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_identical_trees_have_a_robinson_foulds_distance_of_zero",
      "name": "test_identical_trees_have_a_robinson_foulds_distance_of_zero",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L412-L419",
      "signature": "def test_identical_trees_have_a_robinson_foulds_distance_of_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8050850a9b176f2a9625eaf5df10da7d6c2447c404bf1f56433e227aa8c78255",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_leaves_prints_one_name_per_line",
      "name": "test_leaves_prints_one_name_per_line",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L395-L398",
      "signature": "def test_leaves_prints_one_name_per_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "419752d8a90d1b70839f561712c7e28786802e16d5818938337f22a10319ccc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_midpoint_rooting_reports_which_midpoint_it_used",
      "name": "test_midpoint_rooting_reports_which_midpoint_it_used",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L529-L547",
      "signature": "def test_midpoint_rooting_reports_which_midpoint_it_used(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fd0c40fdd9fac3a2f5926c8456e3e8e51fe1304df43a2a6af70c1f4a1d4f0ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_keeps_only_the_requested_leaves",
      "name": "test_pruning_keeps_only_the_requested_leaves",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L451-L469",
      "signature": "def test_pruning_keeps_only_the_requested_leaves(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ace630e3ba151f0dd19d3970f18aa02e2d058738d05d6b16e20eeae5fb264f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_preserves_the_path_length_between_retained_leaves",
      "name": "test_pruning_preserves_the_path_length_between_retained_leaves",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L471-L490",
      "signature": "def test_pruning_preserves_the_path_length_between_retained_leaves(self) -> None: # A--B is 1+1 = 2 in the input; with --preserve-branch-length the # collapsed internal node's length must be folded in, not discarded.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5871bcdf06693f58a5de1e2e42843fe715e1288212741ef7f471793f8a22705a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_to_an_absent_leaf_is_refused",
      "name": "test_pruning_to_an_absent_leaf_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L492-L503",
      "signature": "def test_pruning_to_an_absent_leaf_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fa1454c5d5b9bdb4eeb3faccc364f8a9d000156d9251fc6a14076bee9e4e46b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_rerooting_on_an_outgroup_preserves_the_leaves_and_total_length",
      "name": "test_rerooting_on_an_outgroup_preserves_the_leaves_and_total_length",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L505-L527",
      "signature": "def test_rerooting_on_an_outgroup_preserves_the_leaves_and_total_length(self) -> None: # Rerooting relocates the root along an existing branch; it must not # create, destroy, or rescale any evolutionary distance.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b066e810e7a6c3d568e616e8fb567451c91ddd93cfd2f3bcddd333702268a8f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_stats_json_round_trips_through_the_cli",
      "name": "test_stats_json_round_trips_through_the_cli",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L380-L385",
      "signature": "def test_stats_json_round_trips_through_the_cli(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3be1c68d4a904c2c3c992b2e5bd1d74fde511d9520ebd79f2549a253e293c9ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_ascii_drawing_contains_every_leaf",
      "name": "test_the_ascii_drawing_contains_every_leaf",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L406-L410",
      "signature": "def test_the_ascii_drawing_contains_every_leaf(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a09f26e10d23edc4123e14c31bf58209ec5aaf292833ec5a66f50da1debddc05",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_two_distinct_four_taxon_topologies_are_maximally_apart",
      "name": "test_the_two_distinct_four_taxon_topologies_are_maximally_apart",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L421-L433",
      "signature": "def test_the_two_distinct_four_taxon_topologies_are_maximally_apart(self) -> None: # Unrooted, ((A,B),(C,D)) and ((A,C),(B,D)) each have exactly one # non-trivial split and the splits differ, so RF = 1 + 1 = 2 and the # maximum possible RF for four taxa is also 2.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec81c7179e84a3a62d46ca249fb0af74058c6a98f5978f096db9b570fe7d51b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_wrong_parser_number_is_reported_rather_than_guessed",
      "name": "test_the_wrong_parser_number_is_reported_rather_than_guessed",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L387-L393",
      "signature": "def test_the_wrong_parser_number_is_reported_rather_than_guessed(self) -> None: # BALANCED labels its internal nodes, so parser 0 -- which reads that # position as a support value -- cannot convert \"AB\" to a float. Falling # back to another parser would silently reinterpret the tree.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe4744849d2a58e050671067fb94865f4090522e2928ce139bf080d779be023d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_topological_without_midpoint_is_refused",
      "name": "test_topological_without_midpoint_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L549-L563",
      "signature": "def test_topological_without_midpoint_is_refused(self) -> None: # --topological only changes how the midpoint is found, so pairing it # with --outgroup would silently do nothing.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ad244bbf0106295ef9d7f6c6b47c6387c9f7fac091f361718785efa3bf58c49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests",
      "name": "CommaSeparatedTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L96-L106",
      "signature": "class CommaSeparatedTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e6a4acb8a4d92915b7fb42d341f901c743b6eacef92474f828664d1134a29d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests.test_an_empty_string_selects_no_properties",
      "name": "test_an_empty_string_selects_no_properties",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L103-L106",
      "signature": "def test_an_empty_string_selects_no_properties(self) -> None: # `--props \"\"` must mean \"none\", not a single empty property name, or # tree.write() is asked for a property no node has.",
      "exported": true,
      "origin": "ast",
      "body_hash": "34cf60a62cdc61a712d4dfc712a07009a770a305175978aa60ad9892ad7060c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommaSeparatedTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests.test_whitespace_and_empty_fields_are_dropped",
      "name": "test_whitespace_and_empty_fields_are_dropped",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L97-L101",
      "signature": "def test_whitespace_and_empty_fields_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5145d9243d21b1e5b4ab07264de691fa6aa736aa0384cc8de9855b31855561a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommaSeparatedTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "name": "EngineChoiceTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L759-L794",
      "signature": "class EngineChoiceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b84b7bb29ac2dede3573fd9db803bf09d1b8c7f2675fcdaf7486c0c835f705e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L760-L761",
      "signature": "def args(self, extra: list[str]) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea25c184ccf222305a4260ca02d8685883d814d3c80c3c880d9824ffcc775792",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EngineChoiceTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_an_explicit_engine_overrides_the_suffix",
      "name": "test_an_explicit_engine_overrides_the_suffix",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L786-L794",
      "signature": "def test_an_explicit_engine_overrides_the_suffix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c1d268e1e3057bd29d4c06c3a576d8df084dedbda11b18e23f8252f7f82d432",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EngineChoiceTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_an_unwritable_suffix_is_refused_rather_than_guessed",
      "name": "test_an_unwritable_suffix_is_refused_rather_than_guessed",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L778-L784",
      "signature": "def test_an_unwritable_suffix_is_refused_rather_than_guessed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdf8a9159f7d4f1fed0ecdbc04807393338de086b6563dee489539bcfeebce24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EngineChoiceTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_no_output_means_the_interactive_engine",
      "name": "test_no_output_means_the_interactive_engine",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L763-L764",
      "signature": "def test_no_output_means_the_interactive_engine(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "639284e76b1bfe16084f74ac1a71902bd895c7bea4101c83cb4885e1d68ade42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EngineChoiceTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_suffix_matching_is_case_insensitive",
      "name": "test_suffix_matching_is_case_insensitive",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L775-L776",
      "signature": "def test_suffix_matching_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ea96ba1f98648ddb78a154c55c15a0f53e3e8434a8c9b7316107e39176b40d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EngineChoiceTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_the_suffix_picks_the_engine_that_can_write_it",
      "name": "test_the_suffix_picks_the_engine_that_can_write_it",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L766-L773",
      "signature": "def test_the_suffix_picks_the_engine_that_can_write_it(self) -> None: # SmartView only screenshots PNG; vector output needs Qt treeview.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ad5732e2f73b89ed70df72a14962073a9c125e5ab4404b630561fe2a7d3a0a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EngineChoiceTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "name": "KeepNameTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L289-L319",
      "signature": "class KeepNameTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7656a7c24a54488d3c830d8868d0fc23a7298682e1e5d058c37c82e827f348b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_a_missing_taxon_file_is_refused",
      "name": "test_a_missing_taxon_file_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L317-L319",
      "signature": "def test_a_missing_taxon_file_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e75d8a1c86b0d680fb6b4d3a68689612858cbcd405242f0f7c1d73e84c0e7f63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeepNameTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_a_taxon_file_of_only_comments_is_refused",
      "name": "test_a_taxon_file_of_only_comments_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L306-L310",
      "signature": "def test_a_taxon_file_of_only_comments_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc6eaeef17d8f09bd45a51fe80f716d1aa9a344d9f45699eae0a26071d878b3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeepNameTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_a_taxon_file_skips_blank_lines_and_comments",
      "name": "test_a_taxon_file_skips_blank_lines_and_comments",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L293-L296",
      "signature": "def test_a_taxon_file_skips_blank_lines_and_comments(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b519501b7fde059dafae21086d26d147968a6215ee529457a1fe99f2c13b5df2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeepNameTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_an_empty_request_is_refused",
      "name": "test_an_empty_request_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L298-L304",
      "signature": "def test_an_empty_request_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "353e4bad577de34d94069e1af8618ccd631dd81a75f13e965956fe9e92c5c71b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeepNameTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_duplicate_requests_are_refused",
      "name": "test_duplicate_requests_are_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L312-L315",
      "signature": "def test_duplicate_requests_are_refused(self) -> None: # `prune --keep A A` would silently retain one leaf while reporting two.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c670ce0db3016ef69a0266ea3f6447087c9d3fde092a20dcf2387bfbd1cd482",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeepNameTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_names_passed_on_the_command_line_are_returned_in_order",
      "name": "test_names_passed_on_the_command_line_are_returned_in_order",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L290-L291",
      "signature": "def test_names_passed_on_the_command_line_are_returned_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2baad40e38dc04e5eb8628a9f7979b5419207be7fe1fe819fc6133e9e00c4794",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KeepNameTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ModeSpecTests",
      "name": "ModeSpecTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L109-L124",
      "signature": "class ModeSpecTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91893ad0927997f22df6a327274b66d592103fd47e48536accf3ab4469dcece0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ModeSpecTests.test_an_unknown_layout_is_rejected",
      "name": "test_an_unknown_layout_is_rejected",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L118-L124",
      "signature": "def test_an_unknown_layout_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29fa0df8f1363cd43957456804f100d03c2970ba45e947c8d36ff3e475624348",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModeSpecTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ModeSpecTests.test_short_and_long_layout_names_normalise_to_the_long_form",
      "name": "test_short_and_long_layout_names_normalise_to_the_long_form",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L110-L116",
      "signature": "def test_short_and_long_layout_names_normalise_to_the_long_form(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "221064420b01a23f3ab3101c32bbc2a9a4eacb97e6fc905a41db7975b8e1e2b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModeSpecTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NodeResolutionTests",
      "name": "NodeResolutionTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L270-L286",
      "signature": "class NodeResolutionTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d650b0d05100a489e8f0746daf4ed2386b690e9bd39da42d5e8f4cd6983aa9f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_a_unique_name_resolves_to_that_node",
      "name": "test_a_unique_name_resolves_to_that_node",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L271-L274",
      "signature": "def test_a_unique_name_resolves_to_that_node(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0a3eadf895d472d3d332d3e518b4b29183b2a92e8708af6b9a45ea1ce0984f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeResolutionTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_an_absent_name_is_refused",
      "name": "test_an_absent_name_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L276-L279",
      "signature": "def test_an_absent_name_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d9018543d4bd97ceba017ff0bf8c57d6d7fb9dd38d8d988c7c3622cc02a8fba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeResolutionTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_an_ambiguous_name_is_refused_rather_than_silently_taking_the_first",
      "name": "test_an_ambiguous_name_is_refused_rather_than_silently_taking_the_first",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L281-L286",
      "signature": "def test_an_ambiguous_name_is_refused_rather_than_silently_taking_the_first(self) -> None: # Rooting on \"whichever A ETE traversed first\" would give a different # tree run to run, so a duplicate name has to be an error.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1c9d5c564fb5be27802e4c8801ee2a4800cc8b4acb39f3c868732ee525d8882",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NodeResolutionTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NumericSummaryTests",
      "name": "NumericSummaryTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L155-L172",
      "signature": "class NumericSummaryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24fa10d56dc980e44523065b29d1b9bc7d077a9bcf55f307931e4f8386f61d28",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NumericSummaryTests.test_a_single_value_is_its_own_summary",
      "name": "test_a_single_value_is_its_own_summary",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L168-L172",
      "signature": "def test_a_single_value_is_its_own_summary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fc74bdb3a35711260d20e70ecf298f8942b73bf952016f981d6ab2a2f871b8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NumericSummaryTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NumericSummaryTests.test_an_empty_list_summarises_to_none_rather_than_raising",
      "name": "test_an_empty_list_summarises_to_none_rather_than_raising",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L156-L159",
      "signature": "def test_an_empty_list_summarises_to_none_rather_than_raising(self) -> None: # A tree with no branch lengths at all must report \"none\", not crash in # statistics.fmean on an empty sequence.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c2877df0f2ea085aba2b133887897b512e3ab6b2d78e04a06a7e18f614e1de2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NumericSummaryTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#NumericSummaryTests.test_the_four_statistics_are_the_textbook_ones",
      "name": "test_the_four_statistics_are_the_textbook_ones",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L161-L166",
      "signature": "def test_the_four_statistics_are_the_textbook_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1760a7945c3c8b76fcb5e1df50e5a84e8257e1f38fe1ad2ae72cd8b3c409958",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NumericSummaryTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ParserSpecTests",
      "name": "ParserSpecTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L69-L93",
      "signature": "class ParserSpecTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f928eaea7b807ad0c7079a57fa1c3501093b38a4cfef6e471ce5487b2f3baf06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_a_named_parser_stays_a_string",
      "name": "test_a_named_parser_stays_a_string",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L78-L79",
      "signature": "def test_a_named_parser_stays_a_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f14b202207a7bc1cba77ea88e6f4a6e5109b716a61b7d8edfe06b824a6a42c3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserSpecTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_a_numeric_parser_id_stays_an_integer",
      "name": "test_a_numeric_parser_id_stays_an_integer",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L72-L76",
      "signature": "def test_a_numeric_parser_id_stays_an_integer(self) -> None: # ETE looks parsers up by int; passing \"0\" as a string selects nothing.",
      "exported": true,
      "origin": "ast",
      "body_hash": "92e6fdb49489eeeede094a9c6cc8c7bf474c0f6c61fb30b1d639b7479372cf1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserSpecTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_an_empty_parser_is_rejected",
      "name": "test_an_empty_parser_is_rejected",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L81-L85",
      "signature": "def test_an_empty_parser_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd82fc17720a3a970b7fb1dcaf8c2caf8c955bfa8eab5f5218d90c54d9eda780",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserSpecTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_both_scripts_agree_on_the_parser_type",
      "name": "test_both_scripts_agree_on_the_parser_type",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L87-L93",
      "signature": "def test_both_scripts_agree_on_the_parser_type(self) -> None: # The two CLIs define the converter separately; a divergence would make # `--parser 1` mean different things in `stats` and in `quick_visualize`.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fd72e53d0fc76acb74940208a6457413df804dd8ec4aa597951ff506931fc5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserSpecTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#PrintStatsTests",
      "name": "PrintStatsTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L247-L267",
      "signature": "class PrintStatsTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9692730f630cd0e7f12af320542a9ab6e6e9a733f068cae76740cdfc56ac3db0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#PrintStatsTests.test_json_output_is_machine_readable_and_complete",
      "name": "test_json_output_is_machine_readable_and_complete",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L248-L254",
      "signature": "def test_json_output_is_machine_readable_and_complete(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "58f21dfc457934ea741b8311480d13fe7398b2f624c2fd1932a40794c61c0f6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrintStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#PrintStatsTests.test_text_output_says_none_where_a_summary_is_missing",
      "name": "test_text_output_says_none_where_a_summary_is_missing",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L256-L267",
      "signature": "def test_text_output_says_none_where_a_summary_is_missing(self) -> None: # Parser 1 leaves support unset; the text report must say so rather # than crash formatting None.",
      "exported": true,
      "origin": "ast",
      "body_hash": "121fdeeda0cb8602f04eb697cf2e3a12ef0dc1366aefa8f9c68799994740bbb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrintStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "name": "RenderDestinationTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L797-L837",
      "signature": "class RenderDestinationTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "00d9eb3345fd869c09f41da68b75232078ab7b116a64b1d7197be0d63bad32fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L800-L801",
      "signature": "def args(self, extra: list[str] | None = None) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "31e82313f88911700e209a71f60a3742273dfed61007b463c59af47fc58c3e12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L803-L805",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4087ff8c07e24064c278fada063340839d37cd49925663bbfc6b656961705f76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_smartview_refuses_a_missing_output_directory",
      "name": "test_smartview_refuses_a_missing_output_directory",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L813-L817",
      "signature": "def test_smartview_refuses_a_missing_output_directory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "374cf00962fdd795a99730ac488d68990b84c0ac7cfddb5cb1881211ec59e18b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_smartview_refuses_a_non_png_destination",
      "name": "test_smartview_refuses_a_non_png_destination",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L807-L811",
      "signature": "def test_smartview_refuses_a_non_png_destination(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "72d4276dea1e32acb7a7ec77477d9a95d2330c13d3afc8d3dd7d7fc82eb03a32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_the_missing_qt_extra_is_reported_as_an_install_hint",
      "name": "test_the_missing_qt_extra_is_reported_as_an_install_hint",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L829-L837",
      "signature": "def test_the_missing_qt_extra_is_reported_as_an_install_hint(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9ec0b9764ddbe09e299bf1592970d73321cb8acdf33be2126d3fd9134f13065",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_treeview_refuses_a_missing_output_directory",
      "name": "test_treeview_refuses_a_missing_output_directory",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L823-L827",
      "signature": "def test_treeview_refuses_a_missing_output_directory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ab9d0d5520a6134345e090ff07c1d4b5bc4709765d28d8bb2dd2705f223ef9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_treeview_refuses_a_suffix_it_cannot_write",
      "name": "test_treeview_refuses_a_suffix_it_cannot_write",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L819-L821",
      "signature": "def test_treeview_refuses_a_suffix_it_cannot_write(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9a81b8765146b46e4280b5b81e15b4080cedad90008792255e49a0cd039e9c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderDestinationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests",
      "name": "RequestedNameValidationTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L322-L336",
      "signature": "class RequestedNameValidationTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec17433d4bbabf0ccb8d486afaaf4dadf16818cf45ea12e986ebc93d0d8016bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_a_leaf_name_duplicated_in_the_tree_is_refused",
      "name": "test_a_leaf_name_duplicated_in_the_tree_is_refused",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L333-L336",
      "signature": "def test_a_leaf_name_duplicated_in_the_tree_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b5902ed1523c2e827dfa9244386fe79b31ec806a31c437ca2a16b442b3a85c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestedNameValidationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_an_internal_node_name_is_not_a_leaf",
      "name": "test_an_internal_node_name_is_not_a_leaf",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L327-L331",
      "signature": "def test_an_internal_node_name_is_not_a_leaf(self) -> None: # `prune` works on leaf names; \"AB\" exists in the tree but is not one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d83bea118ef808e47dd8ae2d31633fed246297d4160dee419c606d5d9f8961c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestedNameValidationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_names_that_all_resolve_pass_silently",
      "name": "test_names_that_all_resolve_pass_silently",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L323-L325",
      "signature": "def test_names_that_all_resolve_pass_silently(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e89b38af150eeda1683203c0857d4539fab6831ee94c8e4507e16f29baee5609",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestedNameValidationTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SaveTreeTests",
      "name": "SaveTreeTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L339-L363",
      "signature": "class SaveTreeTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4958ef9298e1653970f2509c7db47a6f55e4a97b2ec6010c2def537eb6a650c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_a_missing_output_directory_is_refused_before_writing",
      "name": "test_a_missing_output_directory_is_refused_before_writing",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L360-L363",
      "signature": "def test_a_missing_output_directory_is_refused_before_writing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e86a78f82c4d3cd9a267f2e5292bdc8770b59920f137ee5b41972eac129a8d89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveTreeTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_a_saved_tree_reloads_with_the_same_topology",
      "name": "test_a_saved_tree_reloads_with_the_same_topology",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L340-L350",
      "signature": "def test_a_saved_tree_reloads_with_the_same_topology(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "21f3b6eff920fbc2027505ec3060d11d66df0cbf109df7f2f74fb542d5de7da5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveTreeTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_the_file_ends_in_exactly_one_newline",
      "name": "test_the_file_ends_in_exactly_one_newline",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L352-L358",
      "signature": "def test_the_file_ends_in_exactly_one_newline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "69128cb7d8ab6d6010e227cc2817f1e2284be1ee686e64feeca7409763d0dbcd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveTreeTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "name": "SmartViewLayoutTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L840-L908",
      "signature": "class SmartViewLayoutTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6779d504ba0deab6b7a0449e2ca006ef865047add1652d1ab3847c8d8f8a6fa9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L843-L844",
      "signature": "def args(self, extra: list[str] | None = None) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "31e82313f88911700e209a71f60a3742273dfed61007b463c59af47fc58c3e12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.dots",
      "name": "dots",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L872-L885",
      "signature": "def dots(self, args: argparse.Namespace, newick: str, parser: int = 0) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca56fbe9eb5c65e82143269d78544992fe8047c25f93e43c6565a3196db2aed9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.elements",
      "name": "elements",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L846-L847",
      "signature": "def elements(self, args: argparse.Namespace) -> list",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3a19ea96ecfffede105845fdb20cffb19bca3053dc798113214f29c74ab2b71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.style",
      "name": "style",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L849-L852",
      "signature": "def style(self, args: argparse.Namespace) -> dict: # ete4's Layout prepends its own DEFAULT_TREE_STYLE, so the style the # script yields is the second element.",
      "exported": true,
      "origin": "ast",
      "body_hash": "28bb29fa9c09d37bd634893e9448418b4db90f7cb1db62ea95ba989272b323e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_a_title_adds_a_header_face_and_no_title_adds_nothing",
      "name": "test_a_title_adds_a_header_face_and_no_title_adds_nothing",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L904-L908",
      "signature": "def test_a_title_adds_a_header_face_and_no_title_adds_nothing(self) -> None: # An empty --title must not yield a blank face that reserves header space.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3fcb74d6837eeab7d8a3a941f4038fba55e9cafbc6313f6e314a876c1d7fd26",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_arc_options_are_only_emitted_for_the_circular_layout",
      "name": "test_arc_options_are_only_emitted_for_the_circular_layout",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L858-L865",
      "signature": "def test_arc_options_are_only_emitted_for_the_circular_layout(self) -> None: # A rectangular tree has no arc; passing angle keys would be ignored at # best and misread at worst.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5f904c280f79673b697128ab8ba5f06bc79942ae598f30d31980a1048659a49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_collapse_thresholds_are_passed_through_unchanged",
      "name": "test_collapse_thresholds_are_passed_through_unchanged",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L867-L870",
      "signature": "def test_collapse_thresholds_are_passed_through_unchanged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4504c1242be7ec68eac805f081c4b6ce4024c37368c539b1a6c172b2d3259de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_colour_by_support_repaints_internal_nodes_only",
      "name": "test_colour_by_support_repaints_internal_nodes_only",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L895-L902",
      "signature": "def test_colour_by_support_repaints_internal_nodes_only(self) -> None: # Leaves have no bootstrap support, so they must keep the leaf colour # even when --color-by-support is on.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea1869812a054a3f544999283fc3b2a65db635e7b8930880420e13885ecbd6c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_leaves_and_internal_nodes_get_their_own_colour_and_size",
      "name": "test_leaves_and_internal_nodes_get_their_own_colour_and_size",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L887-L893",
      "signature": "def test_leaves_and_internal_nodes_get_their_own_colour_and_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec11576e0eef3a16b58e9484283715ebb33b65542caa3313fc17306bf1100b13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_the_layout_mode_becomes_the_smartview_shape",
      "name": "test_the_layout_mode_becomes_the_smartview_shape",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L854-L856",
      "signature": "def test_the_layout_mode_becomes_the_smartview_shape(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "34d75b3aa42b688ec89b36a109dc6b39fd91f18aa8c3599253a5319d76a533a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SmartViewLayoutTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "name": "SupportColorTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L640-L685",
      "signature": "class SupportColorTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a99d225ed9c7967df127a8c2b4503fcbdc3fb0931840126868c7036345a7a9e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportColorTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L641-L644",
      "signature": "def args(self, extra: list[str] | None = None) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ff2110b5b491baea51051ffd0dcabf974713d96b7efb46a4f33a72d0e51b071",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportColorTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_a_node_with_no_support_gets_the_missing_colour",
      "name": "test_a_node_with_no_support_gets_the_missing_colour",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L661-L668",
      "signature": "def test_a_node_with_no_support_gets_the_missing_colour(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df7e48fc60f469d259f67bf23bcf0186f67e04c6307b04c2549321cf7ea125b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportColorTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_custom_thresholds_move_the_bands",
      "name": "test_custom_thresholds_move_the_bands",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L670-L685",
      "signature": "def test_custom_thresholds_move_the_bands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1977be4b04bc368958b6345e99b5afcf91d0a52ae71fea77b19ca7f392e36943",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportColorTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_each_support_band_gets_its_own_colour",
      "name": "test_each_support_band_gets_its_own_colour",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L646-L659",
      "signature": "def test_each_support_band_gets_its_own_colour(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2868467f47284470ead3d29ae54455ec94d2d25c1bada65518b153d3ef8b52df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportColorTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportFractionTests",
      "name": "SupportFractionTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L623-L637",
      "signature": "class SupportFractionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd4539414d042a4a7e5883310314f18ddbdbd9160b732134188983fcf344c02f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportFractionTests.test_percentages_are_normalised_and_fractions_left_alone",
      "name": "test_percentages_are_normalised_and_fractions_left_alone",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L624-L629",
      "signature": "def test_percentages_are_normalised_and_fractions_left_alone(self) -> None: # Bootstrap support is written both as 0-1 and as 0-100; colouring by # support has to mean the same thing either way.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fed271a4386346f8a2e9053abb5a7e8b84cefa276d8055f4f6941dfe1b42e03",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportFractionTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportFractionTests.test_the_boundary_value_one_is_treated_as_a_fraction",
      "name": "test_the_boundary_value_one_is_treated_as_a_fraction",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L631-L633",
      "signature": "def test_the_boundary_value_one_is_treated_as_a_fraction(self) -> None: # `numeric > 1` -- a support of exactly 1 is full support, not 1%.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb5c2cada7c6e9dd1294f93bd32c67b95c79781b7f1fee6c33aeb57f3ae54eb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportFractionTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#SupportFractionTests.test_zero_support_stays_zero_and_missing_support_stays_none",
      "name": "test_zero_support_stays_zero_and_missing_support_stays_none",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L635-L637",
      "signature": "def test_zero_support_stays_zero_and_missing_support_stays_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba5d37317c980c48baf236f3f1bb3e57ba837dd9cbce051551292b593474d6bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SupportFractionTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "name": "TreeFixtureCase",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L55-L66",
      "signature": "class TreeFixtureCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ceddb2759a2dd3e1fb00f493c6f518f6a906e517e30f9e944eb5bd5a24d8374",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "name": "newick",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L63-L66",
      "signature": "def newick(self, text: str, name: str = \"tree.nwk\") -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "a23964ae385b9c6fd03661fc6c8db4fa3abd4bfa7fbc030c5289009fdccdd73a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeFixtureCase"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L58-L61",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeFixtureCase"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "name": "TreeLoadingTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L127-L152",
      "signature": "class TreeLoadingTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef2925914c13ce4c65407d683214e9542c9856377387d61123e1d4c553603dc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_directory_is_not_a_tree",
      "name": "test_a_directory_is_not_a_tree",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L136-L138",
      "signature": "def test_a_directory_is_not_a_tree(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ef713624079c1904ec8463b6079b8be3156eeae7ac2790f3838644f6954eed1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeLoadingTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_missing_file_is_reported_as_user_error",
      "name": "test_a_missing_file_is_reported_as_user_error",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L132-L134",
      "signature": "def test_a_missing_file_is_reported_as_user_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d2916013f1cc8f2c7d9a438a7634f96694fda116f447aca468b464061298230",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeLoadingTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_valid_newick_file_loads_with_its_leaves",
      "name": "test_a_valid_newick_file_loads_with_its_leaves",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L128-L130",
      "signature": "def test_a_valid_newick_file_loads_with_its_leaves(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0e65fc86bf0adde7586868b902e3cebe8b1572c28fabbb2537abaa1bcfb7b8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeLoadingTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_both_scripts_load_trees_identically",
      "name": "test_both_scripts_load_trees_identically",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L147-L152",
      "signature": "def test_both_scripts_load_trees_identically(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "028ca456a78e7ddf7f4576e2d85e50f105637e5b4a68f9cffd500a9293a57c78",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeLoadingTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_malformed_newick_becomes_a_user_error_not_a_traceback",
      "name": "test_malformed_newick_becomes_a_user_error_not_a_traceback",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L140-L145",
      "signature": "def test_malformed_newick_becomes_a_user_error_not_a_traceback(self) -> None: # A truncated tree is the commonest real failure; the CLI must name the # file and the parser rather than surfacing NewickError.",
      "exported": true,
      "origin": "ast",
      "body_hash": "04cb5462ed57c7b3549fbea8683e80c728d809cbecac72162d773e782ce22859",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeLoadingTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "name": "TreeStatsTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L175-L244",
      "signature": "class TreeStatsTests(TreeFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d03e2eacb395ac40b3135d591b84324b7dd4f871adefbb72a1db1cda3ac9cac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "name": "stats",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L178-L180",
      "signature": "def stats(self, text: str, parser: int = 1) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a1ce45ef23eb63bfdc7ff534490350c859e97eb5c56413597f6fc53263c9d76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_a_polytomy_is_counted_and_a_bifurcating_tree_reports_none",
      "name": "test_a_polytomy_is_counted_and_a_bifurcating_tree_reports_none",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L206-L208",
      "signature": "def test_a_polytomy_is_counted_and_a_bifurcating_tree_reports_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cfe014001089d3cbcf890ded6c9eb3ff4917f4012f862121ca48305ad35cbef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_a_unary_node_is_counted",
      "name": "test_a_unary_node_is_counted",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L210-L215",
      "signature": "def test_a_unary_node_is_counted(self) -> None: # Single-child nodes survive some pruning routines and break downstream # tools, so they get their own counter.",
      "exported": true,
      "origin": "ast",
      "body_hash": "19eb3c3ef3d05aede1ef37b5c88e2cd52c44a9f7babfa36a32a310b5665eee2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_branch_length_statistics_exclude_the_root",
      "name": "test_branch_length_statistics_exclude_the_root",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L192-L198",
      "signature": "def test_branch_length_statistics_exclude_the_root(self) -> None: # Six non-root branches: AB=1, A=1, B=1, CD=1, C=2, D=2.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b79167128d3b16d0c902ce1bf5cc95d2058ef45c9210eeceed29f9d053e6463f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_duplicate_leaf_names_are_listed_once_each",
      "name": "test_duplicate_leaf_names_are_listed_once_each",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L217-L219",
      "signature": "def test_duplicate_leaf_names_are_listed_once_each(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "32f4405e8fc8a72fe9a1ad84fd23307383118ae6438fcd75888383988fbd525b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_farthest_leaf_distance_is_the_root_to_tip_path",
      "name": "test_the_farthest_leaf_distance_is_the_root_to_tip_path",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L200-L204",
      "signature": "def test_the_farthest_leaf_distance_is_the_root_to_tip_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9546e6415dc66b47f6041d00eba65b5c3636a45e1faea5142c8b19e82f97969a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_node_counts_match_the_newick_string",
      "name": "test_the_node_counts_match_the_newick_string",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L182-L190",
      "signature": "def test_the_node_counts_match_the_newick_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c0b21ee438b2646668426a90714bd9d1bd7e326278811895fd194cc220275f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_parser_number_decides_whether_a_label_is_a_name_or_support",
      "name": "test_the_parser_number_decides_whether_a_label_is_a_name_or_support",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L226-L237",
      "signature": "def test_the_parser_number_decides_whether_a_label_is_a_name_or_support(self) -> None: # Parser 1 reads \"AB\"/\"CD\" as internal *names*, so no support exists; # parser 0 reads the same position as a support value. Getting this # backwards silently reports support statistics for a tree that has # none, or none for a tree that has them.",
      "exported": true,
      "origin": "ast",
      "body_hash": "808ff7db46348d24e02ba2e5b2286e2335c6c3f2a7563a3471653a8e02a8b821",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_reported_source_and_version_identify_the_run",
      "name": "test_the_reported_source_and_version_identify_the_run",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L239-L244",
      "signature": "def test_the_reported_source_and_version_identify_the_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5af6bed72f09e00f78e14430316adb4ddae10f8699d994b32e563cd4ea727e4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_unnamed_leaves_are_reported_by_position",
      "name": "test_unnamed_leaves_are_reported_by_position",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L221-L224",
      "signature": "def test_unnamed_leaves_are_reported_by_position(self) -> None: # An unnamed leaf has no name to report, so the node id (the path of # child indices from the root) identifies it instead.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e1bfdf8ef0772d18465d04b53ffaf5bf36b7ba2a3eaaeaa1e629e31bac22cc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeStatsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "name": "ValidateArgsTests",
      "kind": "class",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L688-L756",
      "signature": "class ValidateArgsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "57e8ccaec9de236deee4525a0c007218be842329e2819a7ab4961ff9505ce8a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L689-L690",
      "signature": "def args(self, extra: list[str] | None = None) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "31e82313f88911700e209a71f60a3742273dfed61007b463c59af47fc58c3e12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_dimensions_must_be_positive_when_given",
      "name": "test_dimensions_must_be_positive_when_given",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L726-L733",
      "signature": "def test_dimensions_must_be_positive_when_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e01a4468cd0805b4c0cbf978e6d0a29d2216e62381529b020c57627191c26203",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_equal_thresholds_are_allowed",
      "name": "test_equal_thresholds_are_allowed",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L709-L714",
      "signature": "def test_equal_thresholds_are_allowed(self) -> None: # The comparison chain is <=, so a single cut-off between \"high\" and # \"low\" is a legitimate configuration.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cebd9b6c7250410db7ba0ac3aa8999f4f892dcae4132078e68c8804ba591e40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_negative_sizes_are_refused_and_zero_is_allowed",
      "name": "test_negative_sizes_are_refused_and_zero_is_allowed",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L716-L724",
      "signature": "def test_negative_sizes_are_refused_and_zero_is_allowed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "99c4ea84f0dcec1fe7971e79cdc640de6f2264f589c9f4600b73cfb06a475864",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_support_thresholds_must_be_ordered_and_within_zero_to_one",
      "name": "test_support_thresholds_must_be_ordered_and_within_zero_to_one",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L697-L707",
      "signature": "def test_support_thresholds_must_be_ordered_and_within_zero_to_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be295c4d4abb40fe4d808ead02fc397442ab20e2d4fad84c2352c52f6759c2c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_arc_bounds_are_degrees",
      "name": "test_the_arc_bounds_are_degrees",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L744-L756",
      "signature": "def test_the_arc_bounds_are_degrees(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa94176bea449367cdf03cf3d6af1b7f82814df3405f2bf59695126ad555b35a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_port_range_is_the_tcp_range",
      "name": "test_the_port_range_is_the_tcp_range",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L735-L742",
      "signature": "def test_the_port_range_is_the_tcp_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff84a61ee5a99f71b6f4f6144abe876afb81ea47c08e9874ff9cd21a187cbce6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_shipped_defaults_validate",
      "name": "test_the_shipped_defaults_validate",
      "kind": "method",
      "path": "tests/etetoolkit/test_scripts.py",
      "span": "L692-L695",
      "signature": "def test_the_shipped_defaults_validate(self) -> None: # If the defaults failed their own validator the CLI would be unusable # with no arguments at all.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc362062fc43642006d3a893e30e63eafd9ce73e5cac7f6b391ba7912ea920b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateArgsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py",
      "name": "test_exa_search.py",
      "kind": "file",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L1-L231",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "359070d1d3d50f85bc5c188b01f3e3e1dc2868de741d52171b4cfaedd17c5ff3",
      "chars": 8801,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#_fake_result",
      "name": "_fake_result",
      "kind": "function",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L46-L59",
      "signature": "def _fake_result(**overrides)",
      "exported": false,
      "origin": "ast",
      "body_hash": "094a8c8939fe7b2f7b8991ac5a43337f848412f7f932a06d0eb81aa069dec327",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#_load_script",
      "name": "_load_script",
      "kind": "function",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L36-L43",
      "signature": "def _load_script(name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "4e96510329fdc92c9d17146c861716579a68890d5d83877ba5aaa8d8fd8501c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "name": "BuildContentsTests",
      "kind": "class",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L62-L88",
      "signature": "class BuildContentsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aecbc6800ec191971aacbcae05bc54fda3368ce009f3d3a7fb943391fb5ba1b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L65-L67",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f83641d155da2ec7066a0e3f2cb684f2e494de2a8426b4532056728b72d37993",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildContentsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_extract_defaults_to_text_when_nothing_specified",
      "name": "test_extract_defaults_to_text_when_nothing_specified",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L87-L88",
      "signature": "def test_extract_defaults_to_text_when_nothing_specified(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "308ecb64992fe55b7dabafe75475ea84d2a3fce46ad8d3eddbb8a9b34ce4f9ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildContentsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_highlights_only",
      "name": "test_search_highlights_only",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L75-L79",
      "signature": "def test_search_highlights_only(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e792b8af702a2384bf653261cb8b14189e2f4a0a159e5b895b201a148a183c28",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildContentsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_no_flags_returns_none",
      "name": "test_search_no_flags_returns_none",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L69-L70",
      "signature": "def test_search_no_flags_returns_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "25a304020236636899d95c97df141b5a998a2499111cd2b3bdb8ade87ed1e398",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildContentsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_text_and_highlights_combine",
      "name": "test_search_text_and_highlights_combine",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L81-L85",
      "signature": "def test_search_text_and_highlights_combine(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9dc74303eb6c16cb5eb5512c6a9021b49bd3535d93231b816bfb79ba1553958d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildContentsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_text_only",
      "name": "test_search_text_only",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L72-L73",
      "signature": "def test_search_text_only(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "924f08e31aa672539dabae6d018718cbb28c1fb840222f9b433a82a0c9f279c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildContentsTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "name": "IntegrationHeaderAndFlowTests",
      "kind": "class",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L147-L221",
      "signature": "class IntegrationHeaderAndFlowTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b1e27d3849c546304fc32c80cd904b969d07a55054565c85f2c409eab5fca13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "name": "_run_with_mock",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L153-L171",
      "signature": "def _run_with_mock(self, argv)",
      "exported": false,
      "origin": "ast",
      "body_hash": "d5e9e511be39c0b741e5197f37e58d3101d7fd621f2328ddc8073f0348a84cfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L150-L151",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80e0a9c7d2757de4d6ec9043c1fe653be05179fbf334f2015d2a0e4a587c2932",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_calls_search_and_contents_when_contents_requested",
      "name": "test_calls_search_and_contents_when_contents_requested",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L180-L183",
      "signature": "def test_calls_search_and_contents_when_contents_requested(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d98d119f61dff072758a1881e88eedee6f1f780c782d06a2ed90e8734f9e98af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_calls_search_when_no_contents_flags",
      "name": "test_calls_search_when_no_contents_flags",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L185-L188",
      "signature": "def test_calls_search_when_no_contents_flags(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f493eba8baf656d6cf4aa6d640854a9481e829147a768c3798887b0aa76aaa30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_domain_filters_are_split_and_passed",
      "name": "test_domain_filters_are_split_and_passed",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L190-L196",
      "signature": "def test_domain_filters_are_split_and_passed(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "871f7bf11c0923da0ccb52114f93cd38fafb863a7ce7737ad1ca5ca1862a59f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_integration_header_is_set",
      "name": "test_integration_header_is_set",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L173-L178",
      "signature": "def test_integration_header_is_set(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "515f89546a2cc1b5b840406e2d04771c5d12831c128de88efa045921e52bcfa6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_missing_api_key_exits_with_code_2",
      "name": "test_missing_api_key_exits_with_code_2",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L198-L203",
      "signature": "def test_missing_api_key_exits_with_code_2(self): # Remove EXA_API_KEY for this call only.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea0f20f9556e32e5e9e49398ef83c1481c806d5045baf9286069d17ef65ed761",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_output_file_written",
      "name": "test_output_file_written",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L205-L221",
      "signature": "def test_output_file_written(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "21c235fb52f2513e4db19bbad7904af672b6cab8f35b8240b5a9b8946fa1fe38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntegrationHeaderAndFlowTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "name": "ResultTypingTests",
      "kind": "class",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L111-L144",
      "signature": "class ResultTypingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de1a75d7584bdb8a17959f4ff416795d71fe1e93453036b4dc6eea955a63497b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#ResultTypingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L114-L115",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80e0a9c7d2757de4d6ec9043c1fe653be05179fbf334f2015d2a0e4a587c2932",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResultTypingTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_full_result",
      "name": "test_full_result",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L117-L122",
      "signature": "def test_full_result(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9824a550c87c4fde62f2dbd62aa7d68d9bd84648df1df8efcae7d4df217d949",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResultTypingTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_highlights_only_response",
      "name": "test_highlights_only_response",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L133-L138",
      "signature": "def test_highlights_only_response(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4978b4a169fb23429be581f3993e775b0b4dd5313ee2b8920cf95a57fbef40a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResultTypingTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_missing_optional_fields_default_cleanly",
      "name": "test_missing_optional_fields_default_cleanly",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L124-L131",
      "signature": "def test_missing_optional_fields_default_cleanly(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f06cc2d629abcb49b530adfbb615fa63c338994a840ccea33c119af18b10011c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResultTypingTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_text_only_response",
      "name": "test_text_only_response",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L140-L144",
      "signature": "def test_text_only_response(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5aa6b60e3e34b379c4b8374f47f2853b20dfd5e9e0c8a895c48874b3a2947f09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResultTypingTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "name": "SplitCsvTests",
      "kind": "class",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L91-L108",
      "signature": "class SplitCsvTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e884d7119493026db51f95f5e9a7f35a2ee812d4b2d75b28f0cb9954e00dac5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exa-search/test_exa_search.py#SplitCsvTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L92-L93",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80e0a9c7d2757de4d6ec9043c1fe653be05179fbf334f2015d2a0e4a587c2932",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SplitCsvTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_empty_string_returns_none",
      "name": "test_empty_string_returns_none",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L98-L99",
      "signature": "def test_empty_string_returns_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d407f3eef9409d555351b00f27654558279891438945b406ae1efde656eb20d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SplitCsvTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_ignores_empty_segments",
      "name": "test_ignores_empty_segments",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L107-L108",
      "signature": "def test_ignores_empty_segments(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "21d8cb9e7a4403024349ffc5cd02ed8d390bb35a7c12464ada3d3574f5de4b98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SplitCsvTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_none_returns_none",
      "name": "test_none_returns_none",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L95-L96",
      "signature": "def test_none_returns_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6811bddc4b05f8167db02f33d163d9cfb9be73bb2502c942efb9379aefe4357b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SplitCsvTests"
    },
    {
      "id": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_splits_and_trims",
      "name": "test_splits_and_trims",
      "kind": "method",
      "path": "tests/exa-search/test_exa_search.py",
      "span": "L101-L105",
      "signature": "def test_splits_and_trims(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fac50b730c5d60892efe38ea7ca73c2fa422c99ce01615acda9dee3e83b6aa96",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SplitCsvTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L1-L323",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4cb833eafefb91057defd312dd6775950bab62caf8cc66992596e5ba0c0d28bc",
      "chars": 14486,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BalanceReportTests",
      "name": "BalanceReportTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L235-L248",
      "signature": "class BalanceReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed3b7d33f581e4974aac26c698ad72e489ecf81b5a4d1c8083991b3c40c53a7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BalanceReportTests.test_counts_are_reported_per_arm",
      "name": "test_counts_are_reported_per_arm",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L236-L238",
      "signature": "def test_counts_are_reported_per_arm(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfee4d48d595c8b114c9316bb6350046ffe3b0c1700b7d637d5f211f48e5bfb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BalanceReportTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BalanceReportTests.test_grouping_produces_a_stratum_by_arm_table",
      "name": "test_grouping_produces_a_stratum_by_arm_table",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L240-L248",
      "signature": "def test_grouping_produces_a_stratum_by_arm_table(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "58be68e710c791456af80bb7bf2d28e953bff5162d57e6bec6e670b2889f4830",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BalanceReportTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "name": "BlockRandomizationTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L107-L144",
      "signature": "class BlockRandomizationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "551b6f88d647fd5c5dae6ca22a7b44ee9cc355b19eb2505cdfba7c3269c0b5ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_a_block_size_incompatible_with_the_ratio_is_refused",
      "name": "test_a_block_size_incompatible_with_the_ratio_is_refused",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L126-L128",
      "signature": "def test_a_block_size_incompatible_with_the_ratio_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c42e6188b59c92d3417db0045a9fd20fe506c95b5947c0942a46a76149a387e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlockRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_a_partial_final_block_is_truncated_not_padded",
      "name": "test_a_partial_final_block_is_truncated_not_padded",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L135-L138",
      "signature": "def test_a_partial_final_block_is_truncated_not_padded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "03634f792c553c91b3bcbc2f0c2dd26b0e6a26c15670709a5026426efa005c87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlockRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_each_complete_block_is_exactly_balanced",
      "name": "test_each_complete_block_is_exactly_balanced",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L108-L115",
      "signature": "def test_each_complete_block_is_exactly_balanced(self) -> None: # This is the entire point of permuted blocks: balance holds throughout # enrollment, not only at the end.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c43c49a88578d07f4761d9ab0567d3bf967459c591462e390408cd60cebee92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlockRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_the_allocation_ratio_holds_within_every_block",
      "name": "test_the_allocation_ratio_holds_within_every_block",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L117-L124",
      "signature": "def test_the_allocation_ratio_holds_within_every_block(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38e72b21cd26761298dbfa02f3593177c787a88022e1492e07029e770224bdd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlockRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_the_default_block_size_is_valid_for_the_ratio",
      "name": "test_the_default_block_size_is_valid_for_the_ratio",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L130-L133",
      "signature": "def test_the_default_block_size_is_valid_for_the_ratio(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfdc877044c0d0f79039ecb14ad91816a365c8e4c5095b39435703a165d6a8fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlockRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_the_same_seed_reproduces_the_same_blocks",
      "name": "test_the_same_seed_reproduces_the_same_blocks",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L140-L144",
      "signature": "def test_the_same_seed_reproduces_the_same_blocks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eed7f96234c31052b05dba4232f37cadc565c723a80067b1f7004abb0dd6c366",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BlockRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#ClusterTests",
      "name": "ClusterTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L185-L206",
      "signature": "class ClusterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd27ab16333677abf94c05d2b34b736aee77693f3faecd769c5435314947e3bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#ClusterTests.test_an_integer_count_generates_cluster_labels",
      "name": "test_an_integer_count_generates_cluster_labels",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L197-L201",
      "signature": "def test_an_integer_count_generates_cluster_labels(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a809ced7faba25a8b811ea7b956fd75ff6f89bd14287b498f3ff9288d09e9cd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusterTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#ClusterTests.test_clusters_are_blocked_so_arms_stay_balanced",
      "name": "test_clusters_are_blocked_so_arms_stay_balanced",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L203-L206",
      "signature": "def test_clusters_are_blocked_so_arms_stay_balanced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9e04255d021c60f4e9726df6380233d0617c5f5ce4d2f951abbd2a7671ec562",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusterTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#ClusterTests.test_one_row_per_cluster_keyed_by_cluster_id",
      "name": "test_one_row_per_cluster_keyed_by_cluster_id",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L186-L195",
      "signature": "def test_one_row_per_cluster_keyed_by_cluster_id(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c9357440c48a0206e71d2a5e956d2bea0d8b8e2de22429132bb240d480b3e98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusterTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "name": "DesignMatrixTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L251-L318",
      "signature": "class DesignMatrixTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "70303c3b528ce08c2874c16c587f4e2ef242c2f68bd8547370c1c5bb593579b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_a_generator_that_names_the_wrong_factor_count_is_refused",
      "name": "test_a_generator_that_names_the_wrong_factor_count_is_refused",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L268-L270",
      "signature": "def test_a_generator_that_names_the_wrong_factor_count_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be53df08f73ced91bc03801ff5707d0a582323034585d6f927dd7eb9012dd894",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_a_valid_fraction_halves_the_full_factorial",
      "name": "test_a_valid_fraction_halves_the_full_factorial",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L272-L276",
      "signature": "def test_a_valid_fraction_halves_the_full_factorial(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b07f2961968633a7ad44868b8232dacd711873e1fd1447d68856187dfe2cb77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_box_behnken_avoids_the_extreme_corners",
      "name": "test_box_behnken_avoids_the_extreme_corners",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L287-L294",
      "signature": "def test_box_behnken_avoids_the_extreme_corners(self) -> None: # Never using the all-low / all-high corner is the design's reason for # existing -- those runs are the unsafe or infeasible ones.",
      "exported": true,
      "origin": "ast",
      "body_hash": "77a7497a1330d04dba47892654b380fc4c296c085657c4522a40fd99d48edbc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_box_behnken_needs_three_factors",
      "name": "test_box_behnken_needs_three_factors",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L283-L285",
      "signature": "def test_box_behnken_needs_three_factors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcf84c858e65e8ca29e65f57149b38ca77b93a5ba0d3d9158cc0c71faa2db72e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_full_factorial_covers_every_combination",
      "name": "test_full_factorial_covers_every_combination",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L252-L258",
      "signature": "def test_full_factorial_covers_every_combination(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16ee2d1fb681a9fb68676af63eff71c0b5fbc25f5ba15389f46d36b812d95820",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_latin_hypercube_is_reproducible_from_its_seed",
      "name": "test_latin_hypercube_is_reproducible_from_its_seed",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L302-L307",
      "signature": "def test_latin_hypercube_is_reproducible_from_its_seed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "109cfef4fd5343ffb5fa7dc8bbdbf3cc480382645de5b4843ba10985d2d149bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_latin_hypercube_stays_inside_every_factor_range",
      "name": "test_latin_hypercube_stays_inside_every_factor_range",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L296-L300",
      "signature": "def test_latin_hypercube_stays_inside_every_factor_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bde8eb6ced489095b1396930b85c11b35693b00d619b6af91d301888dfc29581",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_not_randomizing_leaves_the_design_in_canonical_order",
      "name": "test_not_randomizing_leaves_the_design_in_canonical_order",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L315-L318",
      "signature": "def test_not_randomizing_leaves_the_design_in_canonical_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16d651336522510161ec09689e99dfc0e89187f511f053911c2aafd33b96f430",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_plackett_burman_drops_the_dummy_columns",
      "name": "test_plackett_burman_drops_the_dummy_columns",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L278-L281",
      "signature": "def test_plackett_burman_drops_the_dummy_columns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbdea2a9db2e701de3d84d56daf8e6108c08d4da3455b2da9b15ca6268d1dc16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_randomize_adds_a_run_order_column_and_sorts_by_it",
      "name": "test_randomize_adds_a_run_order_column_and_sorts_by_it",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L309-L313",
      "signature": "def test_randomize_adds_a_run_order_column_and_sorts_by_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "94d167296002f92f9d9be90257cc68ad47a183c0a92fd8d00fb4d86df5bd984e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_two_level_factorial_decodes_to_the_stated_low_and_high",
      "name": "test_two_level_factorial_decodes_to_the_stated_low_and_high",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L260-L266",
      "signature": "def test_two_level_factorial_decodes_to_the_stated_low_and_high(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a77fd326d18b1a866e554d18fee57e18316012820b79ee12cde885bd371592d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DesignMatrixTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#doe",
      "name": "doe",
      "kind": "function",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L42-L47",
      "signature": "def doe()",
      "exported": true,
      "origin": "ast",
      "body_hash": "e35ee390801e67edc6514e63dfdfffa24134ea8432271f159125d2e01d975fbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RatioTests",
      "name": "RatioTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L50-L71",
      "signature": "class RatioTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eab603f8ab229ee2b2e5c9d6b98403c8839d5a2ab1e7c4c97a24e4ca1003d40f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RatioTests.test_a_mismatched_ratio_length_is_refused",
      "name": "test_a_mismatched_ratio_length_is_refused",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L62-L64",
      "signature": "def test_a_mismatched_ratio_length_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa83cba19f0c0f921148dfd9d59fbb86bf61d236a784ef7d04cd1f5c55b15ec4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RatioTests.test_a_ratio_repeats_each_arm",
      "name": "test_a_ratio_repeats_each_arm",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L56-L60",
      "signature": "def test_a_ratio_repeats_each_arm(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c31249d6a2bb2afe94bb394028101a62f1fc502fec64944bb2882c7689a90e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RatioTests.test_no_ratio_means_one_of_each_arm",
      "name": "test_no_ratio_means_one_of_each_arm",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L51-L54",
      "signature": "def test_no_ratio_means_one_of_each_arm(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f2c1fe419e43bccd7453cfddebca8cc197c5d7f261bc5d8117ea4e0076ca9a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RatioTests.test_non_positive_ratio_entries_are_refused",
      "name": "test_non_positive_ratio_entries_are_refused",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L66-L71",
      "signature": "def test_non_positive_ratio_entries_are_refused(self) -> None: # A zero-weight arm would silently vanish from the allocation.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c33ff2b60b85240a660bade6cfa04772e36b8af9c4433837b06049a6be402cf3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RunOrderTests",
      "name": "RunOrderTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L209-L232",
      "signature": "class RunOrderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ca244758d160202d058635cc32ad9dbead0edd5590c70ffcd9860b04d3b8de4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RunOrderTests.test_randomising_actually_reorders_the_runs",
      "name": "test_randomising_actually_reorders_the_runs",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L227-L232",
      "signature": "def test_randomising_actually_reorders_the_runs(self) -> None: # A systematic order confounds factors with drift, which is the whole # reason this function exists.",
      "exported": true,
      "origin": "ast",
      "body_hash": "42fa93c55b0b9f6251b3269696679405b7e57458205e8485215cd312c69cef44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunOrderTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RunOrderTests.test_rows_are_returned_sorted_by_run_order",
      "name": "test_rows_are_returned_sorted_by_run_order",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L216-L219",
      "signature": "def test_rows_are_returned_sorted_by_run_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3917d94b9e22aa9b2271c41a150c182e8208f24c3a82477ecb958abbbc56754c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunOrderTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RunOrderTests.test_run_order_is_a_permutation_of_every_row",
      "name": "test_run_order_is_a_permutation_of_every_row",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L210-L214",
      "signature": "def test_run_order_is_a_permutation_of_every_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8dd229c643622e113407449adb21d0ee778f2d5cb6ec1d27816230850430ba2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunOrderTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#RunOrderTests.test_the_original_design_is_not_mutated",
      "name": "test_the_original_design_is_not_mutated",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L221-L225",
      "signature": "def test_the_original_design_is_not_mutated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1787063295a44350fd2c3aba45a5afe1cedb95b3c870f5b8760ef5ecdb8801c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunOrderTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "name": "SimpleRandomizationTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L74-L104",
      "signature": "class SimpleRandomizationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e20c30130353a08fd4d8be543feb11b2a62f750ab7cae558a64976f5153f7d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_an_allocation_ratio_shifts_the_expected_split",
      "name": "test_an_allocation_ratio_shifts_the_expected_split",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L91-L98",
      "signature": "def test_an_allocation_ratio_shifts_the_expected_split(self) -> None: # Simple randomisation only balances in expectation, so assert the # direction over a large sample rather than an exact count.",
      "exported": true,
      "origin": "ast",
      "body_hash": "235ec2fa84db793914a62ffc99981d46d589bbcc2d0fc674456b6661dfd80409",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimpleRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_different_seeds_generally_differ",
      "name": "test_different_seeds_generally_differ",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L86-L89",
      "signature": "def test_different_seeds_generally_differ(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cc6c038a50f994f44c8f5b2b54c5bf9162f0d251f5b31df977a6f3e549b0c9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimpleRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_every_unit_is_assigned_exactly_once",
      "name": "test_every_unit_is_assigned_exactly_once",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L75-L79",
      "signature": "def test_every_unit_is_assigned_exactly_once(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3469b3dd7b18362884d21c27de6cbb50275f6d1b7bb4cef0d471fbbd74e657ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimpleRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_the_same_seed_reproduces_the_same_allocation",
      "name": "test_the_same_seed_reproduces_the_same_allocation",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L81-L84",
      "signature": "def test_the_same_seed_reproduces_the_same_allocation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5e628b8dc20a83e4ca41230fddacf137c9e9b9e37342180abbe5324c7295b4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimpleRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_three_arms_are_supported",
      "name": "test_three_arms_are_supported",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L100-L104",
      "signature": "def test_three_arms_are_supported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41dfdcefd1d07fedac661cf02aaf4f26616009a46b322000f2d106d8e68c226f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimpleRandomizationTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#StratifiedTests",
      "name": "StratifiedTests",
      "kind": "class",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L147-L182",
      "signature": "class StratifiedTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f6c7cd5e505de5973d8b7fbcc0097243cf3595df95858f5b7975ad83eb93e29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/experimental-design/test_scripts.py#StratifiedTests.test_a_label_sequence_is_accepted_as_well_as_a_count_map",
      "name": "test_a_label_sequence_is_accepted_as_well_as_a_count_map",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L165-L173",
      "signature": "def test_a_label_sequence_is_accepted_as_well_as_a_count_map(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "620ee286fd755fdcfd8c60f4a6bbc18d013554eee310f21116eecb7fcb91a101",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StratifiedTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#StratifiedTests.test_every_stratum_is_balanced_independently",
      "name": "test_every_stratum_is_balanced_independently",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L148-L157",
      "signature": "def test_every_stratum_is_balanced_independently(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38e29b30613d4a3af716f998d4f5d2e860e618c0d78af8a466931ca008acdb47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StratifiedTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#StratifiedTests.test_strata_are_seeded_apart_so_they_do_not_share_a_pattern",
      "name": "test_strata_are_seeded_apart_so_they_do_not_share_a_pattern",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L175-L182",
      "signature": "def test_strata_are_seeded_apart_so_they_do_not_share_a_pattern(self) -> None: # Every stratum getting the same permutation would defeat stratification.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf6dd668e7e5c57901084c310f2108af3ad15be25c05321c6350aaa9c0db4da1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StratifiedTests"
    },
    {
      "id": "tests/experimental-design/test_scripts.py#StratifiedTests.test_unit_ids_are_renumbered_across_the_whole_cohort",
      "name": "test_unit_ids_are_renumbered_across_the_whole_cohort",
      "kind": "method",
      "path": "tests/experimental-design/test_scripts.py",
      "span": "L159-L163",
      "signature": "def test_unit_ids_are_renumbered_across_the_whole_cohort(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "866069ec09453eef9249d29f2d83255fa29625e74dbbdf07955d75541e906b5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StratifiedTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L1-L390",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8e5a842521b1b73e7fe5bfe9c6c1eb1c253de52783a05e9e9c116590569d4913",
      "chars": 16688,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests",
      "name": "AnalyzerAndScaffoldTests",
      "kind": "class",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L333-L385",
      "signature": "class AnalyzerAndScaffoldTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17f57e1be3d069c1535d362a9bedd0b4c7d691a05bfc0798aed6fa037bf67905",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests.test_analyzer_report_is_redacted_and_rigorous",
      "name": "test_analyzer_report_is_redacted_and_rigorous",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L334-L356",
      "signature": "def test_analyzer_report_is_redacted_and_rigorous(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce410a38b7ae134d534bca2b8e3a67c6058e33e8dc04ad956702fce331d8ff35",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyzerAndScaffoldTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests.test_reference_only_analyzer_is_rejected",
      "name": "test_reference_only_analyzer_is_rejected",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L358-L367",
      "signature": "def test_reference_only_analyzer_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d20f7bd4a0678ad29178632598f92bdc33ea573745a8f9b43d42e712e177cccb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyzerAndScaffoldTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests.test_report_scaffold_has_no_full_path_or_unfilled_manifest_tokens",
      "name": "test_report_scaffold_has_no_full_path_or_unfilled_manifest_tokens",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L369-L385",
      "signature": "def test_report_scaffold_has_no_full_path_or_unfilled_manifest_tokens(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "74f2554f035f8051f4b68bc075393b52db567bec420f768821c119635a78ca42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyzerAndScaffoldTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "name": "LocalSafetyTests",
      "kind": "class",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L31-L123",
      "signature": "class LocalSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13fe6bedeb5c6544ac2f3d39a7adf39ccf2720acc71bc246bd1f6cf7c08a30b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_capability_matrix_separates_reference_only",
      "name": "test_capability_matrix_separates_reference_only",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L103-L113",
      "signature": "def test_capability_matrix_separates_reference_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f55f33051a8b4b4347d44887fd8c7b06b1aff4a1a0687ab19f177eee08cfa46",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_private_atomic_output_refuses_overwrite",
      "name": "test_private_atomic_output_refuses_overwrite",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L62-L70",
      "signature": "def test_private_atomic_output_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7010a5a782a239267f31950029299c9555dc6accf6beee9d6f8fd1e17788831",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_size_and_npz_bomb_preflights",
      "name": "test_size_and_npz_bomb_preflights",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L79-L101",
      "signature": "def test_size_and_npz_bomb_preflights(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "17e0c4197877e4e2b87075585aecb87afb09b7b548d50d914a2871e3f44f6ec8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_text_manifest_does_not_claim_a_signature_check",
      "name": "test_text_manifest_does_not_claim_a_signature_check",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L115-L123",
      "signature": "def test_text_manifest_does_not_claim_a_signature_check(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3f0be11ad2fb433f841eff2600644ca7d5c9680964eb9eca04db942473891c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_unknown_format_fails_closed",
      "name": "test_unknown_format_fails_closed",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L72-L77",
      "signature": "def test_unknown_format_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4dfaea51ae66f69aede38611aebc4eb5a4ab09bb02e38c132df5c6ab0256d02",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_url_traversal_symlink_and_special_file_are_rejected",
      "name": "test_url_traversal_symlink_and_special_file_are_rejected",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L32-L60",
      "signature": "def test_url_traversal_symlink_and_special_file_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfaa50e4d99f3bba03321615a233821cbfead8c53b695bc021a5b9142a54b567",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests",
      "name": "SequenceAndImageTests",
      "kind": "class",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L265-L330",
      "signature": "class SequenceAndImageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c062a36da7301cfb7215be95c407255701df98e8d76d15ea60770761ee35e471",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests.test_fasta_and_fastq_are_aggregate_only_when_available",
      "name": "test_fasta_and_fastq_are_aggregate_only_when_available",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L266-L295",
      "signature": "def test_fasta_and_fastq_are_aggregate_only_when_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7bca70c2b47ae3b9cccdfcbc8be45bbafbd233f2c8db9f2030e1c9353aad842",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceAndImageTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests.test_png_metadata_does_not_decode_pixels_when_available",
      "name": "test_png_metadata_does_not_decode_pixels_when_available",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L297-L308",
      "signature": "def test_png_metadata_does_not_decode_pixels_when_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4c361b0972bd6211df21718832debe7bc4eba1a563d58a7b9d51b46eaf382cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceAndImageTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests.test_tiff_metadata_when_available",
      "name": "test_tiff_metadata_when_available",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L310-L330",
      "signature": "def test_tiff_metadata_when_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fd4f8c44fe80fb6295bf4826ae6660abd9e10d4a93d871db5fa4da3c8b09ace",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceAndImageTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests",
      "name": "StructuredFormatTests",
      "kind": "class",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L190-L262",
      "signature": "class StructuredFormatTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c7915cbb2791b9a18756fd3e4c8825aa81197d57060e11ded4dc87ca18ad5bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_hdf5_external_link_is_not_followed_when_available",
      "name": "test_hdf5_external_link_is_not_followed_when_available",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L240-L262",
      "signature": "def test_hdf5_external_link_is_not_followed_when_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f746982f6f520ca1948a8cdf3b595606a645973dd624239d1bba81d51360bd1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuredFormatTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_json_profile_emits_structure_not_values",
      "name": "test_json_profile_emits_structure_not_values",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L203-L214",
      "signature": "def test_json_profile_emits_structure_not_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "322e48b432bd1fa15443880f936900c1c338e79900c48eeba72c8203a079512f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuredFormatTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_numpy_npy_npz_and_object_rejection_when_available",
      "name": "test_numpy_npy_npz_and_object_rejection_when_available",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L216-L238",
      "signature": "def test_numpy_npy_npz_and_object_rejection_when_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "354dacf4bc653900b8a7730d78a52a9e0fff922bfba0c5a1cbd501481a32d6a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuredFormatTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_strict_json_rejects_duplicates_and_nonfinite_values",
      "name": "test_strict_json_rejects_duplicates_and_nonfinite_values",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L191-L201",
      "signature": "def test_strict_json_rejects_duplicates_and_nonfinite_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "921d8ffb259a6bbcaf6d3f6a78290c960b2977d60f33ab83b3d0f6d2c9551fd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuredFormatTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#TabularTests",
      "name": "TabularTests",
      "kind": "class",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L126-L187",
      "signature": "class TabularTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "745a8a9d563903ce36f84ce1523494ea575015daab93d9c40a55873947a1b012",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#TabularTests._write_table",
      "name": "_write_table",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L127-L138",
      "signature": "def _write_table(self, root: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "0e17df2bfbc2da0cc3859e7ef1f29301d72ddd7d182d7c1188dd899e7a0707cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TabularTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_distribution_report_flags_outlier_but_changes_nothing",
      "name": "test_distribution_report_flags_outlier_but_changes_nothing",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L176-L187",
      "signature": "def test_distribution_report_flags_outlier_but_changes_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e029f016ba838ce9ea25bb7ec90d2b169f166fa36b307909b8931065cf19b088",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TabularTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_missingness_and_leakage_flags_overlap_without_ids",
      "name": "test_missingness_and_leakage_flags_overlap_without_ids",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L156-L174",
      "signature": "def test_missingness_and_leakage_flags_overlap_without_ids(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef8f80e8e07b098926db4f9db85c4c2603a3d6bccb9fa7e4a05608bca33bceb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TabularTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_profile_is_bounded_aggregate_and_redacted",
      "name": "test_profile_is_bounded_aggregate_and_redacted",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_scripts.py",
      "span": "L140-L154",
      "signature": "def test_profile_is_bounded_aggregate_and_redacted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e285b70b20be6c834779c66ccfa444fe7ecffb28914e80572fb27e0b17d9aed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TabularTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L1-L119",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "70f9dea4a80012d9725998e5d3f38e3755af55062b3790bc1c84417a27ba762a",
      "chars": 4305,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py#run_help",
      "name": "run_help",
      "kind": "function",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L29-L39",
      "signature": "def run_help(name: str) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "089aeff9bd7bb9299c8c2f96816f256bbaba93e7d1a8d2841fc369d3825a8746",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests",
      "name": "StaticSafetyTests",
      "kind": "class",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L42-L115",
      "signature": "class StaticSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e6938927744b067db23bec8d5ac978d60b9f84feac65c0a363f0ec698cf021d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_all_public_help_is_dependency_free",
      "name": "test_all_public_help_is_dependency_free",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L77-L83",
      "signature": "def test_all_public_help_is_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64f83284c8d1a68e694c0ed137d1792225a372b0c95408f44ac9ed9479298bd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_all_scripts_parse_and_avoid_dynamic_or_network_execution",
      "name": "test_all_scripts_parse_and_avoid_dynamic_or_network_execution",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L43-L75",
      "signature": "def test_all_scripts_parse_and_avoid_dynamic_or_network_execution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "020e92e061e422594449acf7bfea104ac817317fb8b813e88aa558cf0aa5bc6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_frontmatter_version_and_progressive_disclosure",
      "name": "test_frontmatter_version_and_progressive_disclosure",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L85-L91",
      "signature": "def test_frontmatter_version_and_progressive_disclosure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d775c27574913c0b83c8c4bb156e7fc05d5e13ce81c7429a4b8c97508ef5708",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_six_references_and_report_asset_are_present",
      "name": "test_six_references_and_report_asset_are_present",
      "kind": "method",
      "path": "tests/exploratory-data-analysis/test_static.py",
      "span": "L93-L115",
      "signature": "def test_six_references_and_report_asset_are_present(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc1c15f6d417906d69f45493196bb4336bc8625afcf1208b3c37199709c182cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/flowio/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/flowio/test_scripts.py",
      "span": "L1-L459",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8706639fec345afe8c4249d86b75b81c10de333457b5a3e523a1603910dda61f",
      "chars": 20319,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#ArgumentValidatorTests",
      "name": "ArgumentValidatorTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L85-L107",
      "signature": "class ArgumentValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc02b5eed0381615b08a18a63c53123c92d0269a79acf0b74d388cfa71572a37",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_non_numeric_limits_raise",
      "name": "test_non_numeric_limits_raise",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L103-L107",
      "signature": "def test_non_numeric_limits_raise(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "519d287f3167da18069279bfb972f8402636e9a8310431cfa8933f187ab64e68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_nonnegative_int_admits_zero_because_zero_disables_a_limit",
      "name": "test_nonnegative_int_admits_zero_because_zero_disables_a_limit",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L86-L89",
      "signature": "def test_nonnegative_int_admits_zero_because_zero_disables_a_limit(self) -> None: # --max-bytes 0 is documented as \"no ceiling\", so zero must parse.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bee4c956c2b617e61749cb99e5c675ed63c1558b6bd91dd9aec2fdea48dd2d3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_nonnegative_int_refuses_a_negative_ceiling",
      "name": "test_nonnegative_int_refuses_a_negative_ceiling",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L91-L93",
      "signature": "def test_nonnegative_int_refuses_a_negative_ceiling(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ddbcdc676d8b110dce90729496d3c66f8243a4c36a315f861045937a43ed593",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_positive_int_refuses_zero_and_below",
      "name": "test_positive_int_refuses_zero_and_below",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L95-L101",
      "signature": "def test_positive_int_refuses_zero_and_below(self) -> None: # --max-datasets 0 would make the dataset walk yield nothing at all.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ec69bd9957676051a9fca5f8bfcce59cd80d25d61fe5734cb93706ff51785ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "name": "ChannelClassificationTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L117-L161",
      "signature": "class ChannelClassificationTests(FcsFileTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd80055cc50e86570e53ae33b8af668bbc2e41899f63522c25187029d39e9f33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "name": "flow",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L122-L129",
      "signature": "def flow(self, null: list[str] | None = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "29358358cfa28f8d64e60c6c9cf0e794936ab587d5b27a2b3437413184022e4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChannelClassificationTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_a_declared_null_channel_outranks_its_detected_kind",
      "name": "test_a_declared_null_channel_outranks_its_detected_kind",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L136-L143",
      "signature": "def test_a_declared_null_channel_outranks_its_detected_kind(self) -> None: # --null-channel exists to retire a channel; if the kind still said # \"fluorescence\" the column would keep being analysed.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cac08accd4908c05a97c7b08a26daf57703f566c73c3940842b6851c1252ef29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChannelClassificationTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_channel_records_carry_the_scaling_keywords_as_json_types",
      "name": "test_channel_records_carry_the_scaling_keywords_as_json_types",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L154-L161",
      "signature": "def test_channel_records_carry_the_scaling_keywords_as_json_types(self) -> None: # $PnE is a tuple in FlowIO; JSON cannot hold a tuple, so the record # must convert it -- otherwise `write_report` fails on real files.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e71a7f98dc9a1f890789ef10623aa3df6d6bcee0733e76f72f89a21d85f5cb93",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChannelClassificationTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_channel_records_number_parameters_from_one",
      "name": "test_channel_records_number_parameters_from_one",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L145-L152",
      "signature": "def test_channel_records_number_parameters_from_one(self) -> None: # FCS $PnN keywords are 1-based; the numpy column index is 0-based. # Conflating them shifts every reported gain and range by one channel.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9fa214ae703460ae2d59bd8fb0cd35fbdc707fa1fc5aa9ab3c63e960990b78e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChannelClassificationTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_scatter_time_and_fluorescence_are_told_apart",
      "name": "test_scatter_time_and_fluorescence_are_told_apart",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L131-L134",
      "signature": "def test_scatter_time_and_fluorescence_are_told_apart(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd49dd88856a8ce60dd05542e29e76ee921078e229200891df01475c76dca7e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChannelClassificationTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "name": "DatasetWalkTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L225-L289",
      "signature": "class DatasetWalkTests(FcsFileTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d8d3b5a8a2e5c5fa9857f199617f9adf415e935bcef3539da4aba1160dc4106",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L228-L231",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c480da26c498347654ac8f587791f6eafa3ca11141fa487eda95ecdf95ad7cc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.test_a_negative_relative_offset_is_refused",
      "name": "test_a_negative_relative_offset_is_refused",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L270-L274",
      "signature": "def test_a_negative_relative_offset_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1a4ae7a575217011132ee04ee5f9d30531ba2a03150b5074376eff6d75f4dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.test_a_single_dataset_file_stops_after_one",
      "name": "test_a_single_dataset_file_stops_after_one",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L255-L260",
      "signature": "def test_a_single_dataset_file_stops_after_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7612df13a257acc02f3f6d941fd2345807cbaa1b9ac3a35b3dc8d5bfdc9a4d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.test_an_offset_past_the_end_of_the_file_is_refused",
      "name": "test_an_offset_past_the_end_of_the_file_is_refused",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L276-L281",
      "signature": "def test_an_offset_past_the_end_of_the_file_is_refused(self) -> None: # The file is 1000 bytes; seeking to 5000 would read foreign memory.",
      "exported": true,
      "origin": "ast",
      "body_hash": "18ae0641a73c696477e4266c4f9b4bd24a70af2205193a63e9865c47f1a20e2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.test_nextdata_is_relative_so_offsets_accumulate",
      "name": "test_nextdata_is_relative_so_offsets_accumulate",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L262-L268",
      "signature": "def test_nextdata_is_relative_so_offsets_accumulate(self) -> None: # FCS $NEXTDATA is relative to the start of the current dataset. Two # hops of 100 must land at 100 then 200, not 100 twice.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1475a0fcc29ac9d3afd7f5e73e7e42ec352faa38023452f1021a08171b91b97f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.test_the_dataset_count_ceiling_is_enforced",
      "name": "test_the_dataset_count_ceiling_is_enforced",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L283-L289",
      "signature": "def test_the_dataset_count_ceiling_is_enforced(self) -> None: # A chain of 10-byte hops never terminates on its own; --max-datasets # is the only thing that stops it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc07ef52949e7e73943cec57b028933963967fc65d6e25f73500539b4621ae3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "name": "walk",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L233-L253",
      "signature": "def walk(self, nextdata_values: list[str], max_datasets: int = 8)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b34bd7446cbcaa159de9dc0c428b3e737247bc8af9649aa0c97ee4175f101d1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetWalkTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#DatasetWalkTests.walk.fake_flow_data",
      "name": "fake_flow_data",
      "kind": "function",
      "path": "tests/flowio/test_scripts.py",
      "span": "L238-L240",
      "signature": "def fake_flow_data(path, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fed94e873b17ee574df819c99b39db94212384c9e028b43230ad8c9ea66c3e03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#FakeFlow",
      "name": "FakeFlow",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L220-L222",
      "signature": "class FakeFlow",
      "exported": true,
      "origin": "ast",
      "body_hash": "90b89bee3aa84c7be788814c68343217c7d10dc57c312c9fc45d113ce53b65ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#FakeFlow.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L221-L222",
      "signature": "def __init__(self, nextdata: str) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "32dfe1ddc66a979c4037576dfb3d83e9512edf7038b150e15edc270bddd46a1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeFlow"
    },
    {
      "id": "tests/flowio/test_scripts.py#FakeText",
      "name": "FakeText",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L216-L217",
      "signature": "class FakeText(dict)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b93a4db8fb94b23f1bfb39bf7dfa2890c14e66f086834fcf31d5683aac853081",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "name": "FcsFileTestCase",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L110-L114",
      "signature": "class FcsFileTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "86ac687275498078dda8b91ceb4cbf02bab1a1423b7382e0bd3c3f5d59403693",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#FcsFileTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L111-L114",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FcsFileTestCase"
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "name": "FiniteStatisticsTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L164-L213",
      "signature": "class FiniteStatisticsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "144ddc261424298a1a5683189d8d6a7c3906e4f338fa973b15832dea03fc2072",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L177-L178",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e42513af0340274aeb06b8230f6be157e9aed99edb79f3ffbb1615ecf5d6e96",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FiniteStatisticsTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_a_channel_with_no_finite_value_reports_none_not_nan",
      "name": "test_a_channel_with_no_finite_value_reports_none_not_nan",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L200-L207",
      "signature": "def test_a_channel_with_no_finite_value_reports_none_not_nan(self) -> None: # json.dumps(..., allow_nan=False) in write_report rejects NaN, so the # statistics must degrade to null rather than to a NaN float.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f056d4c5c14f94976ff552afe3254fa2395e1f24a9400a7592c9935fa0064db3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FiniteStatisticsTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_a_fully_finite_channel_keeps_every_event",
      "name": "test_a_fully_finite_channel_keeps_every_event",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L209-L213",
      "signature": "def test_a_fully_finite_channel_keeps_every_event(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5d4285da9b9244c728a475123fe9cd6a7749e0ddaa7f2cc5fcc55c3e1496d79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FiniteStatisticsTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_infinities_are_counted_by_sign_and_excluded_from_the_range",
      "name": "test_infinities_are_counted_by_sign_and_excluded_from_the_range",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L193-L198",
      "signature": "def test_infinities_are_counted_by_sign_and_excluded_from_the_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cab4f5559f43aa2930c4b25dd079fc767aad272dbb4567db351ac994ac3a8d35",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FiniteStatisticsTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_one_record_is_emitted_per_channel_in_order",
      "name": "test_one_record_is_emitted_per_channel_in_order",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L180-L182",
      "signature": "def test_one_record_is_emitted_per_channel_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c3acd6c785e90a400263f5c5c5372e2b800d3dbe98686db1c018b360aacda29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FiniteStatisticsTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_statistics_are_computed_over_the_finite_values_only",
      "name": "test_statistics_are_computed_over_the_finite_values_only",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L184-L191",
      "signature": "def test_statistics_are_computed_over_the_finite_values_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3703de694ac4ecf03d2e42f938149ca8ab3c336698f504fd09d1dd20c80ff688",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FiniteStatisticsTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests",
      "name": "InspectFileTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L292-L393",
      "signature": "class InspectFileTests(FcsFileTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8387b62d23f3a28b6f7e3988212da028e691106dacbb367f0a0991e6d57ba0f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L295-L302",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df307d41de0f1f51c3c4c320a3049bf05dadbb242bc14dd572fa0fcd10d63c1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_a_ceiling_equal_to_the_estimate_is_accepted",
      "name": "test_a_ceiling_equal_to_the_estimate_is_accepted",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L370-L375",
      "signature": "def test_a_ceiling_equal_to_the_estimate_is_accepted(self) -> None: # The comparison is strictly-greater, so the boundary must pass.",
      "exported": true,
      "origin": "ast",
      "body_hash": "676c31604da09b362f59067463b4595866f3cfa03a29d8a3172f23d28d91d8a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_a_directory_is_not_a_regular_file",
      "name": "test_a_directory_is_not_a_regular_file",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L381-L383",
      "signature": "def test_a_directory_is_not_a_regular_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff53a6bd2594262e2f365f232c593f556b3836751acc361b23c914bb2d1bfc59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_a_file_over_the_byte_ceiling_is_refused_before_parsing",
      "name": "test_a_file_over_the_byte_ceiling_is_refused_before_parsing",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L354-L356",
      "signature": "def test_a_file_over_the_byte_ceiling_is_refused_before_parsing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d913ef58dafe9ca6ec0af3580402855d6b2448b2941039e6833697230e8b953",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_a_missing_input_raises_file_not_found",
      "name": "test_a_missing_input_raises_file_not_found",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L377-L379",
      "signature": "def test_a_missing_input_raises_file_not_found(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f805536431bb6d8887ffd2a5174180959dde4b68e006219be00fc6f0d3b49aaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_a_zero_byte_ceiling_disables_the_check",
      "name": "test_a_zero_byte_ceiling_disables_the_check",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L358-L360",
      "signature": "def test_a_zero_byte_ceiling_disables_the_check(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f03a36cd624b0f513eb90a7d227fe445563a943b760ddce8fb56a2f9cf92e779",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_metadata_only_is_the_default_and_says_so",
      "name": "test_metadata_only_is_the_default_and_says_so",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L320-L325",
      "signature": "def test_metadata_only_is_the_default_and_says_so(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cea080f6fa9afc79cfe0ed1be70c1d930bc6fe6f48d7fcc3eaaaca1e9905864",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_raw_stats_are_labelled_as_encoded_values",
      "name": "test_raw_stats_are_labelled_as_encoded_values",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L336-L342",
      "signature": "def test_raw_stats_are_labelled_as_encoded_values(self) -> None: # The semantics string is how a reader knows whether gain/log scaling # was applied; mislabelling it invalidates every downstream comparison.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1c2d8bb27f895607550ca4efb3f8622a4f46780ab8436c3c1f1959bc7f36cf8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_stats_loads_events_and_reports_the_array_shape",
      "name": "test_stats_loads_events_and_reports_the_array_shape",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L327-L334",
      "signature": "def test_stats_loads_events_and_reports_the_array_shape(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4922f60863ada6775dc6cf7a35901a90b400011033f529684cf21c962077d0fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_text_and_analysis_are_withheld_unless_requested",
      "name": "test_text_and_analysis_are_withheld_unless_requested",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L344-L352",
      "signature": "def test_text_and_analysis_are_withheld_unless_requested(self) -> None: # TEXT can carry patient identifiers, so it is opt-in.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe99d98d04102727d16414d9d7bbca8a018f40f4c140723801906b2c8e98810f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_the_array_ceiling_only_applies_with_stats",
      "name": "test_the_array_ceiling_only_applies_with_stats",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L362-L368",
      "signature": "def test_the_array_ceiling_only_applies_with_stats(self) -> None: # Metadata-only inspection allocates no array, so a tiny ceiling must # not block it -- and must block --stats.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fd17eaa26bb8382369bc94ac4a5f19535e8dcdc335751b76c432b60a85f7714",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_the_array_estimate_is_events_times_channels_times_eight",
      "name": "test_the_array_estimate_is_events_times_channels_times_eight",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L314-L318",
      "signature": "def test_the_array_estimate_is_events_times_channels_times_eight(self) -> None: # float64 is 8 bytes; this estimate is what --max-array-bytes compares # against, so an understated one defeats the ceiling.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1fe60733c74f2f31a6c536c236bb01df55cca8c815a3d5d05aec5affaa947ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_the_checksum_is_opt_in_and_matches_the_streaming_helper",
      "name": "test_the_checksum_is_opt_in_and_matches_the_streaming_helper",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L385-L389",
      "signature": "def test_the_checksum_is_opt_in_and_matches_the_streaming_helper(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "864f1afb9d3219cd78deb95856094c24a9e0c9f6662876ad24db6fa6f049c94e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_the_checksum_matches_hashlib_on_the_same_bytes",
      "name": "test_the_checksum_matches_hashlib_on_the_same_bytes",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L391-L393",
      "signature": "def test_the_checksum_matches_hashlib_on_the_same_bytes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "85f2c61752418425465ca5e34b2ebcc61ab803d45c24fed18adadd5758a165d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#InspectFileTests.test_the_report_describes_the_file_that_was_written",
      "name": "test_the_report_describes_the_file_that_was_written",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L304-L312",
      "signature": "def test_the_report_describes_the_file_that_was_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "66353416b7a0cb244bae9e545d0738e278b6c8cd2f48cec160b7520d21bfa035",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InspectFileTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests",
      "name": "MainTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L417-L454",
      "signature": "class MainTests(FcsFileTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9266cb427e8682cb1f4dda92b048f7e23c01e8abe78dc0ce0557d2ffdc05b540",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L418-L420",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "26fe58fe58d64acc49691f46448b864d5b89eab06a3b6301d0fee59b039d4a11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MainTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests.test_a_clean_run_exits_zero_and_writes_the_requested_file",
      "name": "test_a_clean_run_exits_zero_and_writes_the_requested_file",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L422-L426",
      "signature": "def test_a_clean_run_exits_zero_and_writes_the_requested_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f8397f2abd98b213f04d37fb0a5bf660381cd5f52db9b6780c88dbba5260da3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MainTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests.test_a_file_that_is_not_fcs_at_all_exits_two",
      "name": "test_a_file_that_is_not_fcs_at_all_exits_two",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L450-L454",
      "signature": "def test_a_file_that_is_not_fcs_at_all_exits_two(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5082e4f0082ee744247d3e138723b03c4bc4da612203bb3ff679053788e1b189",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MainTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests.test_a_missing_input_exits_two_with_a_message_not_a_traceback",
      "name": "test_a_missing_input_exits_two_with_a_message_not_a_traceback",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L442-L448",
      "signature": "def test_a_missing_input_exits_two_with_a_message_not_a_traceback(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9e47e2e37b48762f7763ccd66a773fd132c08c93eece1809b2c8b9e0b8a55c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MainTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests.test_raw_without_stats_is_rejected_by_the_parser",
      "name": "test_raw_without_stats_is_rejected_by_the_parser",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L428-L433",
      "signature": "def test_raw_without_stats_is_rejected_by_the_parser(self) -> None: # --raw only changes how events are decoded, so it is meaningless # without --stats; accepting it would silently do nothing.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bfaef3e1c4e99ec7b137a3e8c76f2a5118b80dfa8f943abbb37ecba2d7f2afd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MainTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#MainTests.test_writing_the_report_over_the_input_fcs_is_rejected",
      "name": "test_writing_the_report_over_the_input_fcs_is_rejected",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L435-L440",
      "signature": "def test_writing_the_report_over_the_input_fcs_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b3f7fb275f06de1069abf5a652f5d968a41be0ee3ab4551891bed2940534acf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MainTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#namespace",
      "name": "namespace",
      "kind": "function",
      "path": "tests/flowio/test_scripts.py",
      "span": "L63-L82",
      "signature": "def namespace(**overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "7acf2d7ed3bbd4d617fbe720356f9703ab231655725e3c20fd4d1714be8e6c9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#ReportWritingTests",
      "name": "ReportWritingTests",
      "kind": "class",
      "path": "tests/flowio/test_scripts.py",
      "span": "L396-L414",
      "signature": "class ReportWritingTests(FcsFileTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f363470f949c5028bec64004379f28a7eef7f625f0af800f4d93602b0c7ceb04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/flowio/test_scripts.py#ReportWritingTests.test_a_non_finite_number_is_refused_rather_than_written_as_nan",
      "name": "test_a_non_finite_number_is_refused_rather_than_written_as_nan",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L410-L414",
      "signature": "def test_a_non_finite_number_is_refused_rather_than_written_as_nan(self) -> None: # Bare NaN is not valid JSON; writing it would produce a file that # every conforming parser rejects.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2319a4fcddd5331e7abec6326dd19856f4264047c7e32cc2abf5499f0026ba44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportWritingTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ReportWritingTests.test_an_existing_output_file_is_never_overwritten",
      "name": "test_an_existing_output_file_is_never_overwritten",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L403-L408",
      "signature": "def test_an_existing_output_file_is_never_overwritten(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "331ebbc56c22d47ea15f858678194afc229c4b26115b3628053a459337956645",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportWritingTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#ReportWritingTests.test_stdout_receives_parseable_json",
      "name": "test_stdout_receives_parseable_json",
      "kind": "method",
      "path": "tests/flowio/test_scripts.py",
      "span": "L397-L401",
      "signature": "def test_stdout_receives_parseable_json(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eaaf5cf411f57b0fa2f7292e101d8464f69b5c47c89c263d1750341a71580834",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportWritingTests"
    },
    {
      "id": "tests/flowio/test_scripts.py#write_fcs",
      "name": "write_fcs",
      "kind": "function",
      "path": "tests/flowio/test_scripts.py",
      "span": "L49-L60",
      "signature": "def write_fcs( path: Path, events: list[float], channels: list[str], optional: list[str] | None = None, ) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8011776ea8996f07c1ae57025083cc2cf4c697a5f3de52989bef2b292236217",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L1-L296",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "42b893c29c11a27bda069384a1604ae79b4cd4062a45c60b113e0d3cb1b472e5",
      "chars": 11112,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests",
      "name": "HelpAndSchemaTests",
      "kind": "class",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L63-L99",
      "signature": "class HelpAndSchemaTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b48d6c54df5c5904ec4a7abb5ec3efe96c87590b51b176f88fb0232c46d7c42e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_all_helps_are_dependency_free",
      "name": "test_all_helps_are_dependency_free",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L64-L69",
      "signature": "def test_all_helps_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e20106f8dbf481feeeadb70e2836f5cf0abfded36a31133bc81dfe847b8d650c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelpAndSchemaTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_example_is_valid_and_scientifically_nonconclusive",
      "name": "test_example_is_valid_and_scientifically_nonconclusive",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L71-L75",
      "signature": "def test_example_is_valid_and_scientifically_nonconclusive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9731aab1239ed517e0849daa3dcd768ba5c5ab48151f2175ecbc1589be47d7d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelpAndSchemaTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_old_cfl_name_and_path_traversal_fail_closed",
      "name": "test_old_cfl_name_and_path_traversal_fail_closed",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L91-L99",
      "signature": "def test_old_cfl_name_and_path_traversal_fail_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "44a2b555d06af073dd7b49615781ae18b7af759b9137fc3085285e0e1283136e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelpAndSchemaTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_strict_json_rejects_duplicate_and_nonfinite_values",
      "name": "test_strict_json_rejects_duplicate_and_nonfinite_values",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L77-L89",
      "signature": "def test_strict_json_rejects_duplicate_and_nonfinite_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc17204cc0c0c6c5de5a0b86d392dbacf3937602be80cfeff42106e473cf0f47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelpAndSchemaTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#OutputTests",
      "name": "OutputTests",
      "kind": "class",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L158-L235",
      "signature": "class OutputTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dce70f973a74a4b658b210ecaf4237e88ccf8ead35e3eb023c5239524159cc85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py#OutputTests.test_hdf5_metadata_and_bounded_spectrum_when_available",
      "name": "test_hdf5_metadata_and_bounded_spectrum_when_available",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L198-L235",
      "signature": "def test_hdf5_metadata_and_bounded_spectrum_when_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8bd44bcc8e2a72dd3d4d1e452e29d4259e1827654d7cc3606b5c4a0cba06f021",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#OutputTests.test_plain_output_inventory_does_not_need_h5py",
      "name": "test_plain_output_inventory_does_not_need_h5py",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L159-L173",
      "signature": "def test_plain_output_inventory_does_not_need_h5py(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdea2762bcb3b4403e9f994599f76cb77f0728debf9b8a80df5a939a8db84c5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#OutputTests.test_scalar_json_lines_and_text_are_aggregated",
      "name": "test_scalar_json_lines_and_text_are_aggregated",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L175-L196",
      "signature": "def test_scalar_json_lines_and_text_are_aggregated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f79453e8d99305ddd4ef9c7ced52f71bc7fd4d78caabd2bd5e04fcd841261951",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#PlanningTests",
      "name": "PlanningTests",
      "kind": "class",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L102-L155",
      "signature": "class PlanningTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d20b62ff6b49f47f21ee579b62feac2e3bafd727c6867c671d386b673542c724",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py#PlanningTests.test_generated_script_defaults_to_dry_run",
      "name": "test_generated_script_defaults_to_dry_run",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L116-L136",
      "signature": "def test_generated_script_defaults_to_dry_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16bd9a07ee3d3ae3966d00505bc272369786c6cad6ae117ac9901c2c79f2ae84",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanningTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#PlanningTests.test_generator_writes_only_reviewed_local_script",
      "name": "test_generator_writes_only_reviewed_local_script",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L138-L155",
      "signature": "def test_generator_writes_only_reviewed_local_script(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "07325e803cb55d5952a44ba19d0d707dc04b3be56e2fd43f13505e21ea16e2f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanningTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#PlanningTests.test_resource_estimate_is_bounded_and_not_runtime_claim",
      "name": "test_resource_estimate_is_bounded_and_not_runtime_claim",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L103-L114",
      "signature": "def test_resource_estimate_is_bounded_and_not_runtime_claim(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b2ffef011f97e3844e5d13602efe187d997a6876227d7ba41e094dfa8501d91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanningTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#RestartTests",
      "name": "RestartTests",
      "kind": "class",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L238-L291",
      "signature": "class RestartTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "98f9564397f6d5e41ff65dc6aa077fdfd2bd0669dd837b14fc63006d09e6462a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py#RestartTests._manifest",
      "name": "_manifest",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L252-L274",
      "signature": "def _manifest(self, digest: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "daedfc36054fc7c58bcef8a289bcad79325c2cff846152fb4739bd45b8c5254a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RestartTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#RestartTests._target",
      "name": "_target",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L239-L250",
      "signature": "def _target(self, digest: str) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "4f01faed4092eaf64d44b6ae4464c5f215c0d1cae157b46c5b1486ba418e0e29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RestartTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#RestartTests.test_manifest_compatibility_and_grid_mismatch",
      "name": "test_manifest_compatibility_and_grid_mismatch",
      "kind": "method",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L276-L291",
      "signature": "def test_manifest_compatibility_and_grid_mismatch(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eeb078addb06f47fc02a4630a448165698c9c2b25afd5ded00cc6e882fa5f4d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RestartTests"
    },
    {
      "id": "tests/fluidsim/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L38-L51",
      "signature": "def run_script( name: str, *arguments: str, cwd: Path | None = None ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3c2e3379fbe4af2fe822a361c0fa62f17fc7a9bd05376bc36f4cc38fff2390c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_scripts.py#write_config",
      "name": "write_config",
      "kind": "function",
      "path": "tests/fluidsim/test_scripts.py",
      "span": "L54-L60",
      "signature": "def write_config(root: Path, config: dict | None = None) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "019c46563278b555a1e42a999f50af36ab98e0058cc7332af4ebe5f8c67f3e34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/fluidsim/test_static.py",
      "span": "L1-L113",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "97e21f97ce3f2cfffd4c7cf9fae7d74a2f4045edea111314ac8b4ec903aba115",
      "chars": 4246,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_static.py#ScriptSafetyTests",
      "name": "ScriptSafetyTests",
      "kind": "class",
      "path": "tests/fluidsim/test_static.py",
      "span": "L59-L108",
      "signature": "class ScriptSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "734cd1137e67dcdfd99285eccb69abd3cff1d099764bbf74c94dfd1f6cad54e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_static.py#ScriptSafetyTests.test_documented_cli_inventory_exists",
      "name": "test_documented_cli_inventory_exists",
      "kind": "method",
      "path": "tests/fluidsim/test_static.py",
      "span": "L94-L108",
      "signature": "def test_documented_cli_inventory_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "570d457bf16a27d49fa498e751539d221f3ac0de0c283d96e51beb4371573d5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/fluidsim/test_static.py#ScriptSafetyTests.test_no_bytecode_or_generated_artifacts_are_bundled",
      "name": "test_no_bytecode_or_generated_artifacts_are_bundled",
      "kind": "method",
      "path": "tests/fluidsim/test_static.py",
      "span": "L85-L92",
      "signature": "def test_no_bytecode_or_generated_artifacts_are_bundled(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "15d4c2b5be08814e212fb8cbcf2e6dc00cd963dc338b3de5c2326b22ee390794",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/fluidsim/test_static.py#ScriptSafetyTests.test_scripts_parse_and_avoid_execution_network_primitives",
      "name": "test_scripts_parse_and_avoid_execution_network_primitives",
      "kind": "method",
      "path": "tests/fluidsim/test_static.py",
      "span": "L60-L83",
      "signature": "def test_scripts_parse_and_avoid_execution_network_primitives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "19f809228d936b806b740a36164ca3be34f037a846583cf0063a9042aa1c2fd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/fluidsim/test_static.py#SkillStructureTests",
      "name": "SkillStructureTests",
      "kind": "class",
      "path": "tests/fluidsim/test_static.py",
      "span": "L16-L56",
      "signature": "class SkillStructureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb286c70eca512d90a7536790d7c75627eea3c0f70b27c8b29ebc956e9ff3582",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/fluidsim/test_static.py#SkillStructureTests.test_all_relative_markdown_links_exist",
      "name": "test_all_relative_markdown_links_exist",
      "kind": "method",
      "path": "tests/fluidsim/test_static.py",
      "span": "L45-L56",
      "signature": "def test_all_relative_markdown_links_exist(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cbfb58e92629ed5ee69bc732f76b34c1f8fbcb00c497cd2b8e0820f422a75e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/fluidsim/test_static.py#SkillStructureTests.test_exactly_six_dated_references",
      "name": "test_exactly_six_dated_references",
      "kind": "method",
      "path": "tests/fluidsim/test_static.py",
      "span": "L28-L43",
      "signature": "def test_exactly_six_dated_references(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2967137971b46bcaca12915dbcf4d84427e98e0970caa72f322deb35a1ef2230",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/fluidsim/test_static.py#SkillStructureTests.test_frontmatter_version_license_and_size",
      "name": "test_frontmatter_version_license_and_size",
      "kind": "method",
      "path": "tests/fluidsim/test_static.py",
      "span": "L17-L26",
      "signature": "def test_frontmatter_version_license_and_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bdb35de8d579e96b9bec95f02c8fa4dde0f2ef52cad4fa86c1a11b78fe96447",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L1-L554",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f109e63244640377e3c51b19b5b059a0362de6434f8ae5f4877bc3073773763c",
      "chars": 23226,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "name": "ApiKeyResolutionTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L174-L225",
      "signature": "class ApiKeyResolutionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7b5b55de8287bc85f4c37c20acc9cb35247c0bf4269e01186d024cd2922eaef",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_absent_key_raises_with_guidance",
      "name": "test_absent_key_raises_with_guidance",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L215-L225",
      "signature": "def test_absent_key_raises_with_guidance(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13f7ccdb1053ff2595f6508c022bb887cd05bce572dcce035e9d8f8ddf7622ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyResolutionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_dotenv_export_prefix_is_tolerated",
      "name": "test_dotenv_export_prefix_is_tolerated",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L202-L213",
      "signature": "def test_dotenv_export_prefix_is_tolerated(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "652bad6982220e6c90b0072d60d429f28e6d01dbb0a4d0866384ba9568a22929",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyResolutionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_dotenv_is_read_when_environment_is_empty",
      "name": "test_dotenv_is_read_when_environment_is_empty",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L189-L200",
      "signature": "def test_dotenv_is_read_when_environment_is_empty(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9e81e0245722fb434ae2769283a2d77f784935c83dd644fef77435d1cfe8c32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyResolutionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_environment_variable_is_read",
      "name": "test_environment_variable_is_read",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L178-L187",
      "signature": "def test_environment_variable_is_read(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "742d6e8bf7e9ed161f8d3f2ada8525e7234f0521a5f9cfc98af5632fe8148445",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyResolutionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_explicit_key_wins",
      "name": "test_explicit_key_wins",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L175-L176",
      "signature": "def test_explicit_key_wins(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "092c71a0e8814eaa7e7aef2da4ee7aa77302aa45bb57d074a49bb871f7a52a6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyResolutionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "name": "CliSurfaceTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L105-L171",
      "signature": "class CliSurfaceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3af9758ae3dc921bfc87000e408efa8e868b2c8cd288c1d172d74cdc89c0842e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_dry_run_prints_the_payload_without_network_or_key",
      "name": "test_dry_run_prints_the_payload_without_network_or_key",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L122-L131",
      "signature": "def test_dry_run_prints_the_payload_without_network_or_key(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "622790eb03da9f93329ed8e0445281651c136012ed87dde499bd19752205d863",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_help_exits_zero",
      "name": "test_help_exits_zero",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L106-L112",
      "signature": "def test_help_exits_zero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd8eedb7c0d18e372f8140e77e9bfe404fc66fafa6d35b2019ec21321b7dbb83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_missing_prompt_is_an_error",
      "name": "test_missing_prompt_is_an_error",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L114-L120",
      "signature": "def test_missing_prompt_is_an_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0064f49ef995166f86ec8673e5a55b7cc133ff370cf566ed9d40344827a9dd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_out_of_range_compression_is_rejected_locally",
      "name": "test_out_of_range_compression_is_rejected_locally",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L152-L159",
      "signature": "def test_out_of_range_compression_is_rejected_locally(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fd9aef00729fd7aeade12993b54526daa514f2d3a649f309b7bbc7b30add2bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_output_format_does_not_offer_svg",
      "name": "test_output_format_does_not_offer_svg",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L143-L150",
      "signature": "def test_output_format_does_not_offer_svg(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef5e40ead4ea25a5ca968901052041bcc7cad76a988860697dd115fdf944fbcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_size_flag_is_gone",
      "name": "test_size_flag_is_gone",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L133-L141",
      "signature": "def test_size_flag_is_gone(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "517218e13234f58e6700f971e0ded4c14ab73282a40f186b0d0e15caac2746fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_targets_the_images_endpoint_not_chat_completions",
      "name": "test_targets_the_images_endpoint_not_chat_completions",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L161-L166",
      "signature": "def test_targets_the_images_endpoint_not_chat_completions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bb5ea12b502f093e9fdddb8a9c1aed63a31282e7d3eae24c1237df16ca96083",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_uses_only_the_standard_library",
      "name": "test_uses_only_the_standard_library",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L168-L171",
      "signature": "def test_uses_only_the_standard_library(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ff04f84086100491680cbaf1385304baae045947b1d4102c0a7c3e97ed44e68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliSurfaceTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests",
      "name": "CostReportingTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L378-L406",
      "signature": "class CostReportingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "33d5b6ca5d475abe92dc9ed7553a0efe32237d8bf9ba2bf20b2b6cdb718559ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests.test_byok_upstream_cost_is_not_reported_as_free",
      "name": "test_byok_upstream_cost_is_not_reported_as_free",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L383-L390",
      "signature": "def test_byok_upstream_cost_is_not_reported_as_free(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "96d9695c288b464c53966f2bcb844aaaf6f5863fa399bb272bff1bde116b5ee5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CostReportingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests.test_cost_never_prints_in_scientific_notation",
      "name": "test_cost_never_prints_in_scientific_notation",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L404-L406",
      "signature": "def test_cost_never_prints_in_scientific_notation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b386c211fec74dd81be8b43d507580c5ea6382f9762e416fc9a5cc73925a4fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CostReportingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests.test_genuinely_free_generation_says_so",
      "name": "test_genuinely_free_generation_says_so",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L392-L393",
      "signature": "def test_genuinely_free_generation_says_so(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5fc436dba58ac8b3352f04ff4816f27f843108d67f2097814076891122064cf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CostReportingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests.test_image_tokens_are_reported_when_present",
      "name": "test_image_tokens_are_reported_when_present",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L395-L399",
      "signature": "def test_image_tokens_are_reported_when_present(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e766343936547a32aa626a8af1793a986a03f939af6cccf479635065913c8a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CostReportingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests.test_missing_usage_reports_nothing",
      "name": "test_missing_usage_reports_nothing",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L401-L402",
      "signature": "def test_missing_usage_reports_nothing(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a13ecb7a2a48ecf0f92e847cf96a79003e07578d3bc23436924b94a73a4ce98b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CostReportingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#CostReportingTests.test_reports_the_billed_cost",
      "name": "test_reports_the_billed_cost",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L379-L381",
      "signature": "def test_reports_the_billed_cost(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "746f2881353e2b3aa309bb5e49d2125c18d8a3ab8a0d2627be363ac0e7e0972a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CostReportingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ErrorMessageTests",
      "name": "ErrorMessageTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L363-L375",
      "signature": "class ErrorMessageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2be8330329c061a8b6aab377073056deeab2b48860c095115284178c3c8cbe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#ErrorMessageTests.test_auth_failure_mentions_the_key_and_content_policy",
      "name": "test_auth_failure_mentions_the_key_and_content_policy",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L369-L372",
      "signature": "def test_auth_failure_mentions_the_key_and_content_policy(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c718c107fbd5370d546d64a41ec317de7605880c50ddbce63a16f6b6fbc6000",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorMessageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ErrorMessageTests.test_bad_request_points_at_model_info",
      "name": "test_bad_request_points_at_model_info",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L364-L367",
      "signature": "def test_bad_request_points_at_model_info(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "159adaa65536cd3fba81fdf1e34cd936ae786e96828c80fb8d6a407509789313",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorMessageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ErrorMessageTests.test_non_json_body_is_passed_through",
      "name": "test_non_json_body_is_passed_through",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L374-L375",
      "signature": "def test_non_json_body_is_passed_through(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c6a2bece02c6ff2bdc2ad689c0b28baaf81e6f99d962b3a80d5139a06a2be15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorMessageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#load_module",
      "name": "load_module",
      "kind": "function",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L19-L33",
      "signature": "def load_module()",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb4cbe5ce8edafcc8e02fbf46d096256e7ea0882e47b7e5519d688941b66c01e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#make_args",
      "name": "make_args",
      "kind": "function",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L39-L55",
      "signature": "def make_args(**overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "973d60fb07a2d4ae52a7e6595936e7d3efbd84bd02ffe77a84daed08d847b55d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests",
      "name": "OutputPathTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L442-L466",
      "signature": "class OutputPathTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "389b220f4c6b273f6a73e3f80fba9199d6435586468ada81d566e548cab1b3e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests.test_default_name_follows_media_type",
      "name": "test_default_name_follows_media_type",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L443-L446",
      "signature": "def test_default_name_follows_media_type(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d1fd878c9a85907b17137f680c4a516d332782005aaf885bce0c14d2f620b06",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests.test_explicit_output_is_respected",
      "name": "test_explicit_output_is_respected",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L455-L456",
      "signature": "def test_explicit_output_is_respected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9184bb5093db5b08d420e81b3ab3cb08ac8c9800eaca78466be6057cd272659b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests.test_jpeg_spelling_is_not_a_mismatch",
      "name": "test_jpeg_spelling_is_not_a_mismatch",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L464-L466",
      "signature": "def test_jpeg_spelling_is_not_a_mismatch(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cca97ea3055653a286d7bcdf91e4b3a36a23861b87c55727ed531e3a7bcb36a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests.test_media_type_parameters_are_ignored",
      "name": "test_media_type_parameters_are_ignored",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L451-L453",
      "signature": "def test_media_type_parameters_are_ignored(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d31b704a685a5ef1d22378a2fd922dd601a6bd888516a4375cbac63f184e67cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests.test_multiple_images_are_numbered",
      "name": "test_multiple_images_are_numbered",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L458-L462",
      "signature": "def test_multiple_images_are_numbered(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5694702475399009ae45352f3e047c246b2cff47cc33caee1150fb1aaee3cc15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#OutputPathTests.test_unknown_media_type_falls_back_to_png",
      "name": "test_unknown_media_type_falls_back_to_png",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L448-L449",
      "signature": "def test_unknown_media_type_falls_back_to_png(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c764f2fa306a79ae888222ce03dca3673a8c19a462510f070debde33e97c99f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PayloadTests",
      "name": "PayloadTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L228-L260",
      "signature": "class PayloadTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4e45325104dd50639d07e26dc25770bca512316635457c998114cd8a5ba8378",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#PayloadTests.test_printed_payload_shortens_base64_references",
      "name": "test_printed_payload_shortens_base64_references",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L251-L260",
      "signature": "def test_printed_payload_shortens_base64_references(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27971f6fd7310ffdaa6a8e1aad88615bb09ff7a69f0a7984147f3e5fe882b56e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PayloadTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PayloadTests.test_references_use_the_input_references_shape",
      "name": "test_references_use_the_input_references_shape",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L244-L249",
      "signature": "def test_references_use_the_input_references_shape(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c354be7336a79c4bc29a81293394c7e976bdf8ba1be7fa18dbc6e57e85f75801",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PayloadTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PayloadTests.test_set_parameters_are_included",
      "name": "test_set_parameters_are_included",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L233-L238",
      "signature": "def test_set_parameters_are_included(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce43d6a7a83061ec19fd56b1a9f90fa97d0ac66c11ceb338e0b0178c1b53e554",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PayloadTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PayloadTests.test_unset_parameters_are_omitted",
      "name": "test_unset_parameters_are_omitted",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L229-L231",
      "signature": "def test_unset_parameters_are_omitted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04b9d16341ef714fa593e1a8dec6fb1f55e119acf11c1ba41c7d50d9f2d502a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PayloadTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PayloadTests.test_zero_seed_survives_omission_filtering",
      "name": "test_zero_seed_survives_omission_filtering",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L240-L242",
      "signature": "def test_zero_seed_survives_omission_filtering(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b12b730d74e8e1fbbba463c0158c582a54539c940476360dfab7e6c9902a0a5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PayloadTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests",
      "name": "PreflightTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L263-L327",
      "signature": "class PreflightTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e454d698d0057768d27318ecab6bc2886f2f4cf777f713f60031cb5c61b6be58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_every_problem_is_reported_at_once",
      "name": "test_every_problem_is_reported_at_once",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L301-L305",
      "signature": "def test_every_problem_is_reported_at_once(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d926ebc80bb50851e6245fbae5377657b344f6425d7c4f0882c38d46c686642b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_n_above_the_model_maximum_is_caught",
      "name": "test_n_above_the_model_maximum_is_caught",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L286-L290",
      "signature": "def test_n_above_the_model_maximum_is_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95374852b9a75f376031ef4db4634027b5fc23d513e0fed9db230d1dbf0ffdea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_suggestions_name_a_model_that_accepts_the_value",
      "name": "test_suggestions_name_a_model_that_accepts_the_value",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L313-L321",
      "signature": "def test_suggestions_name_a_model_that_accepts_the_value(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "843512495d277f9b40fb5b6df2a2bea7803c669cc22399d2e7f5bfdcb60ec459",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_suggestions_skip_undocumented_families",
      "name": "test_suggestions_skip_undocumented_families",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L323-L327",
      "signature": "def test_suggestions_skip_undocumented_families(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e31abae76e7cdfe83ed48b0b96177e5557a732e1511e5b690e27d3d09c6aab0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_too_many_reference_images_are_caught",
      "name": "test_too_many_reference_images_are_caught",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L292-L299",
      "signature": "def test_too_many_reference_images_are_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "001f09628036756aef60c7d5ac55fd2d4bdb5f9eb7e7cba221b4be54fad1720f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_unknown_model_suggests_close_matches",
      "name": "test_unknown_model_suggests_close_matches",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L307-L311",
      "signature": "def test_unknown_model_suggests_close_matches(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "657fc3b595a4e414038411196bbaf1b4e7f3aed72cb190213367416a284f6d3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_unsupported_parameter_is_caught",
      "name": "test_unsupported_parameter_is_caught",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L270-L274",
      "signature": "def test_unsupported_parameter_is_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "39ffc23b7b79684915fca7aabe3db4d2338a6aa7ce0fe41df775020e2083da91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_valid_request_passes",
      "name": "test_valid_request_passes",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L266-L268",
      "signature": "def test_valid_request_passes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7200a73f8df1bd7b43e45efb79ea87af4d6c613bc024840202f9577abc52c719",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#PreflightTests.test_value_outside_the_model_enum_is_caught",
      "name": "test_value_outside_the_model_enum_is_caught",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L276-L284",
      "signature": "def test_value_outside_the_model_enum_is_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "10ca8b860cbecec8f52be2d7ed861fd01912e81853069fc58dced7542f58f287",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "name": "ReferenceEncodingTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L409-L439",
      "signature": "class ReferenceEncodingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ef8d5c9606c4b5159f952e3c39b3ba41f3b994e318066b1b1b0651eccc16a11",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_jpeg_extension_maps_to_jpeg_mime",
      "name": "test_jpeg_extension_maps_to_jpeg_mime",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L424-L428",
      "signature": "def test_jpeg_extension_maps_to_jpeg_mime(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91afdf0e55fda3caa570788e799bdd59a3a8ebeb2e7bfe301a87caa2953c9876",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceEncodingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_local_file_becomes_a_data_url",
      "name": "test_local_file_becomes_a_data_url",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L414-L422",
      "signature": "def test_local_file_becomes_a_data_url(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "129d1e353c17016fa83ab2aaee44df2d55d9ba8dd4ed6254dcca192ac1848d59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceEncodingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_missing_file_raises",
      "name": "test_missing_file_raises",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L430-L432",
      "signature": "def test_missing_file_raises(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b267ec2b7040b7c75b270759b361362a08b6b41fcad05a6f0d9a0371b99c400c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceEncodingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_unsupported_extension_raises",
      "name": "test_unsupported_extension_raises",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L434-L439",
      "signature": "def test_unsupported_extension_raises(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "34c8af49053278e14b4fb702fb394390bb7085f8318594cc2a76ceefd12dc636",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceEncodingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_urls_and_data_urls_pass_through",
      "name": "test_urls_and_data_urls_pass_through",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L410-L412",
      "signature": "def test_urls_and_data_urls_pass_through(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb08ebb71a0edc0d8ca66fa180bc64bca919c2d4844168e09e946574606405da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceEncodingTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#RetryTests",
      "name": "RetryTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L343-L360",
      "signature": "class RetryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "406081fb62ffc6519442eef3d973b336502e997adfebc24655d9c6343a60deb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#RetryTests.test_absurd_retry_after_is_capped",
      "name": "test_absurd_retry_after_is_capped",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L347-L348",
      "signature": "def test_absurd_retry_after_is_capped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d2188c31a6d9ae4c3b5628646531e3066eeb261d950bd105128eb28b84d6344",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#RetryTests.test_backoff_grows",
      "name": "test_backoff_grows",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L353-L354",
      "signature": "def test_backoff_grows(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe1927e1c2bdc5a7c4b8f31e64b7470af582f5c3a26f874ec014ca9b1f935023",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#RetryTests.test_only_transient_statuses_retry",
      "name": "test_only_transient_statuses_retry",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L356-L360",
      "signature": "def test_only_transient_statuses_retry(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dada23864427a9190ba5919e220c8a3c908e22863b6b8239e5a8b7e8b62e75a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#RetryTests.test_retry_after_header_is_honoured",
      "name": "test_retry_after_header_is_honoured",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L344-L345",
      "signature": "def test_retry_after_header_is_honoured(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a398ebeb8715852ebb70d5ad13aaebb5398bf78574acac65a63133a49c276bb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#RetryTests.test_unparsable_retry_after_falls_back_to_backoff",
      "name": "test_unparsable_retry_after_falls_back_to_backoff",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L350-L351",
      "signature": "def test_unparsable_retry_after_falls_back_to_backoff(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab7d60bea05e611259afec4aee413e98bfccc7d706a456df8191c48409d8759f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests",
      "name": "SaveImageTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L469-L514",
      "signature": "class SaveImageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bafd8ee81ac8b61804fcd5c1e488964eb3ae95f12a642b9b8482d30530a189fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_creates_missing_parent_directories",
      "name": "test_creates_missing_parent_directories",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L479-L485",
      "signature": "def test_creates_missing_parent_directories(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e27bf9c25242f923d9d74372c8dc8c97920b9e9241c22eefd8b757f3d9db463b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_downloaded_images_are_size_capped",
      "name": "test_downloaded_images_are_size_capped",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L513-L514",
      "signature": "def test_downloaded_images_are_size_capped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2375778e7f6cba564c8889e8aceaa1f7a0c1f7ec0238bd3f482949f558150c06",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_empty_data_raises",
      "name": "test_empty_data_raises",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L499-L501",
      "signature": "def test_empty_data_raises(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ba6cc0972f505a9d1375104e35585359967381d54eaa59b59e0dff71958f9e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_entries_without_any_image_data_raise",
      "name": "test_entries_without_any_image_data_raise",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L503-L505",
      "signature": "def test_entries_without_any_image_data_raise(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27a799d47ee07b893d8111a9a8a8e16fc30e88f0fd6e5b7d1fb43beef7e2e528",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_non_https_url_in_a_response_is_refused",
      "name": "test_non_https_url_in_a_response_is_refused",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L507-L511",
      "signature": "def test_non_https_url_in_a_response_is_refused(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d15d271f01863860735fdca3b94a9325802204663eee66e6a3039b8328306352",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_numbering_has_no_gaps_when_an_entry_is_empty",
      "name": "test_numbering_has_no_gaps_when_an_entry_is_empty",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L487-L497",
      "signature": "def test_numbering_has_no_gaps_when_an_entry_is_empty(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "231a08b5d4a70d13bf0b878f6465bcb092bbc02fff76a494f28f52eaab7cdeac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SaveImageTests.test_saves_base64_payload",
      "name": "test_saves_base64_payload",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L470-L477",
      "signature": "def test_saves_base64_payload(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "43c1637c1f9d16b1c71dc39b79f338e281e94956ed0607340ac49b5bd84dc547",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveImageTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "name": "SkillDocumentTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L517-L549",
      "signature": "class SkillDocumentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "82a4c3b76e449bdaa3140b2abdad5602477617d8692f68270cab3cc41e498c6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_documentation_does_not_promise_a_size_parameter",
      "name": "test_documentation_does_not_promise_a_size_parameter",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L529-L532",
      "signature": "def test_documentation_does_not_promise_a_size_parameter(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "298e45034dc5c469b21c1b609d1546d201dadaffe8caf3c3df26aa8ebfdc57e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_documented_default_model_matches_the_script",
      "name": "test_documented_default_model_matches_the_script",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L522-L524",
      "signature": "def test_documented_default_model_matches_the_script(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "643337362769462a6646dc379f931404fc9526de0686a180ae0d289afaf8b081",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_frontmatter_version_matches_expected",
      "name": "test_frontmatter_version_matches_expected",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L518-L520",
      "signature": "def test_frontmatter_version_matches_expected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f18f6c117430fcd492207ba3176909fcc7f33b8dd1dbbf14e3e966a4507ac25",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_reference_file_is_present",
      "name": "test_reference_file_is_present",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L526-L527",
      "signature": "def test_reference_file_is_present(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "af6c320a8cbde07b3e9ddfd6eadacc45b7e1edbd68f875d85e96c32b6093f74e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_text_and_integrity_caveats_are_documented",
      "name": "test_text_and_integrity_caveats_are_documented",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L546-L549",
      "signature": "def test_text_and_integrity_caveats_are_documented(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac5223c8b423752754ccf821f0259cac06136ceba7c2388d349bda66c2872393",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_transparent_background_is_not_offered_on_models_that_refuse_it",
      "name": "test_transparent_background_is_not_offered_on_models_that_refuse_it",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L534-L544",
      "signature": "def test_transparent_background_is_not_offered_on_models_that_refuse_it(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "50823fb98d6dbb44678ad02e9047f8444b85d9044734dea1f151e01ccfe89e94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SpecDescriptionTests",
      "name": "SpecDescriptionTests",
      "kind": "class",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L330-L340",
      "signature": "class SpecDescriptionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f965bc1df2170efc7b30cdf0f6a226478beea8a4fc1676cffde4c27e1356a1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/generate-image/test_scripts.py#SpecDescriptionTests.test_bare_capability_reads_as_supported",
      "name": "test_bare_capability_reads_as_supported",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L339-L340",
      "signature": "def test_bare_capability_reads_as_supported(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "36c768ab0a23cb4edc905d62410ddfe56b1f08051fa78d157337959aaaa244de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpecDescriptionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SpecDescriptionTests.test_enum_lists_its_values",
      "name": "test_enum_lists_its_values",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L331-L334",
      "signature": "def test_enum_lists_its_values(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "918a19e74ee6ea805578a8fea92fdd4cd1f460b28ea74a6366f90dec2611b520",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpecDescriptionTests"
    },
    {
      "id": "tests/generate-image/test_scripts.py#SpecDescriptionTests.test_range_shows_its_bounds",
      "name": "test_range_shows_its_bounds",
      "kind": "method",
      "path": "tests/generate-image/test_scripts.py",
      "span": "L336-L337",
      "signature": "def test_range_shows_its_bounds(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df2d60d9d0f3f65d63b472498694dcc87d6321ab97aaf3635820122042472875",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpecDescriptionTests"
    },
    {
      "id": "tests/geniml/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/geniml/test_scripts.py",
      "span": "L1-L367",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "50c63dc3d58c460adfe442774422bcc3ba954fb4b158c42356fac111bfda86a9",
      "chars": 13690,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#BedValidatorTests",
      "name": "BedValidatorTests",
      "kind": "class",
      "path": "tests/geniml/test_scripts.py",
      "span": "L90-L174",
      "signature": "class BedValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2575294981b3dfd520282e4fb1bf3dc1df83be1112dabef42c7be0e098c724ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#BedValidatorTests.test_negative_and_out_of_bounds_intervals_fail",
      "name": "test_negative_and_out_of_bounds_intervals_fail",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L118-L137",
      "signature": "def test_negative_and_out_of_bounds_intervals_fail(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d295a063e95b1bbad7371e005b6f11fcf7a65aa895016d2395b4be12e475a3a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BedValidatorTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#BedValidatorTests.test_symlink_is_rejected",
      "name": "test_symlink_is_rejected",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L139-L160",
      "signature": "def test_symlink_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fd9d2afbde80d6f1567eb6ef2b39b892379d624ece8049707502c0c3976bdf2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BedValidatorTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#BedValidatorTests.test_url_is_rejected_without_network",
      "name": "test_url_is_rejected_without_network",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L162-L174",
      "signature": "def test_url_is_rejected_without_network(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ee8caf323e83e72ddcffe736e3c689387371f4b86849f7b836d55f164a506e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BedValidatorTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#BedValidatorTests.test_valid_bed_and_normalization_plan",
      "name": "test_valid_bed_and_normalization_plan",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L91-L116",
      "signature": "def test_valid_bed_and_normalization_plan(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e7b28dcf07d7e267579e02e4f3e36b540f571a52fdd5e3012e1b404869ab520",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BedValidatorTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#CorpusAuditorTests",
      "name": "CorpusAuditorTests",
      "kind": "class",
      "path": "tests/geniml/test_scripts.py",
      "span": "L177-L206",
      "signature": "class CorpusAuditorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "760ec32839f11c6b8d35e6f130602789ecade25b719315aea79f4d276881d07f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#CorpusAuditorTests.test_detects_patient_leakage_without_emitting_values",
      "name": "test_detects_patient_leakage_without_emitting_values",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L178-L206",
      "signature": "def test_detects_patient_leakage_without_emitting_values(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "838b769e4ea7fa150bc7a74140f26ce31ea329ebaaa33374749d6f6caca550b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CorpusAuditorTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#json_output",
      "name": "json_output",
      "kind": "function",
      "path": "tests/geniml/test_scripts.py",
      "span": "L38-L44",
      "signature": "def json_output(completed: subprocess.CompletedProcess[str]) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee2f8aada86dda3299f37da5101d9fc15c331fc7a98b62f85d2bfd9f47d6db97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#ModelAndTokenizerTests",
      "name": "ModelAndTokenizerTests",
      "kind": "class",
      "path": "tests/geniml/test_scripts.py",
      "span": "L209-L284",
      "signature": "class ModelAndTokenizerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cfb9aaec3c2dbef0a932e21d8910947ae8909c2e2277531322afbd3c55ba9bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#ModelAndTokenizerTests._bundle",
      "name": "_bundle",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L210-L220",
      "signature": "def _bundle(self, root: Path, universe_text: str = \"chr1\\t0\\t10\\nchr1\\t10\\t20\\n\")",
      "exported": false,
      "origin": "ast",
      "body_hash": "2d89faa33138164ef159169bd8ad087a26eb8df36dccd791db1b9214c6976b0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAndTokenizerTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_model_inspector_never_deserializes_checkpoint",
      "name": "test_model_inspector_never_deserializes_checkpoint",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L222-L240",
      "signature": "def test_model_inspector_never_deserializes_checkpoint(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "faf238eb0e459f19288c465a72c59b5ba363c2ec869462a366916567c7f65f73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAndTokenizerTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_matches_exact_bundle_universe",
      "name": "test_tokenizer_plan_matches_exact_bundle_universe",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L242-L262",
      "signature": "def test_tokenizer_plan_matches_exact_bundle_universe(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "748b319e58691f111bad665021f393d98d14360ccc6e021da0c664a462320581",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAndTokenizerTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_rejects_universe_mismatch",
      "name": "test_tokenizer_plan_rejects_universe_mismatch",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L264-L284",
      "signature": "def test_tokenizer_plan_rejects_universe_mismatch(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "406299777eb4e68d27354b2dd424269aa71ccf92d6e8ab32eb38478a6a1bc9aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAndTokenizerTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#PlannerTests",
      "name": "PlannerTests",
      "kind": "class",
      "path": "tests/geniml/test_scripts.py",
      "span": "L287-L362",
      "signature": "class PlannerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4895a96fc6f7fbc52563c912d4d11616dfc0c06662a4aae8f7dcd766afc12918",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#PlannerTests.test_consensus_plan_emits_current_build_universe_command",
      "name": "test_consensus_plan_emits_current_build_universe_command",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L288-L329",
      "signature": "def test_consensus_plan_emits_current_build_universe_command(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "741c43597eb8bc5639119cbc00b1173b2d905775424ea586077cad168717c371",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#PlannerTests.test_embedding_plan_accepts_bounded_synthetic_parquet_envelope",
      "name": "test_embedding_plan_accepts_bounded_synthetic_parquet_envelope",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L331-L362",
      "signature": "def test_embedding_plan_accepts_bounded_synthetic_parquet_envelope(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8450258648f433b80336c4f1d914c9201fe0a5b183298041578f28a1f9fb0113",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "tests/geniml/test_scripts.py",
      "span": "L26-L35",
      "signature": "def run_cli(name: str, *arguments: str, cwd: Path | None = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "004363ede1e46a069c917e84fc4d9d835c74bad0c1d6c5ac596694e2ef62c80d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#ScriptHelpTests",
      "name": "ScriptHelpTests",
      "kind": "class",
      "path": "tests/geniml/test_scripts.py",
      "span": "L47-L87",
      "signature": "class ScriptHelpTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13245cb97a055d3027e41ea7b46b6adf1626b77953eaf6b249337ee19c5255eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geniml/test_scripts.py#ScriptHelpTests.test_all_dependency_free_clis_have_help",
      "name": "test_all_dependency_free_clis_have_help",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L48-L53",
      "signature": "def test_all_dependency_free_clis_have_help(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0212e992744e5fded4a3f44f2f29ca7c852a6f00e946f74fc6b30c137c3f8fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptHelpTests"
    },
    {
      "id": "tests/geniml/test_scripts.py#ScriptHelpTests.test_scripts_parse_and_forbid_dangerous_capabilities",
      "name": "test_scripts_parse_and_forbid_dangerous_capabilities",
      "kind": "method",
      "path": "tests/geniml/test_scripts.py",
      "span": "L55-L87",
      "signature": "def test_scripts_parse_and_forbid_dangerous_capabilities(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc6436d1922460d3e325119b94816afdd13f9b2c646e896216d9c4ba67330484",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptHelpTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L1-L662",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a12638a52ecacb74ea501e3a572743928acde4b78c11f458444e01c024216ddf",
      "chars": 27312,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#_load_script",
      "name": "_load_script",
      "kind": "function",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L29-L38",
      "signature": "def _load_script(name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ac5f4bdf5f8c4d1c2a2f649c9720e589e2f8bac37db7ddccbf9969c50e893e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "name": "AuditBedTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L495-L521",
      "signature": "class AuditBedTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5303c49f3e79e1c0c1f99deff580ace2fefd0d54cb7093170e364022c85e1518",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_bed12_absolute_block_starts_are_fatal",
      "name": "test_bed12_absolute_block_starts_are_fatal",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L506-L509",
      "signature": "def test_bed12_absolute_block_starts_are_fatal(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d7efd30178c6fd374d20d0a5114d84f23a344ad8db44bdfd8171043169db524",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditBedTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_clean_bed_has_no_findings",
      "name": "test_clean_bed_has_no_findings",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L496-L499",
      "signature": "def test_clean_bed_has_no_findings(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "679472f3950191664841e2b07c30a198317cb617021aec19a8f787db2a98f0f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditBedTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_one_based_data_in_a_bed_is_flagged",
      "name": "test_one_based_data_in_a_bed_is_flagged",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L501-L504",
      "signature": "def test_one_based_data_in_a_bed_is_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c2270225eb6a328a130965d6c6f81f1f94eb4c9f3b31bfa48f551d55d9ae629",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditBedTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_space_separated_bed_is_named_as_such",
      "name": "test_space_separated_bed_is_named_as_such",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L516-L521",
      "signature": "def test_space_separated_bed_is_named_as_such(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "31aaab41c2e63e85db46940dbcd9fa6fabe23c839e2d9267b95498e6a203258e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditBedTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_valid_bed12_passes",
      "name": "test_valid_bed12_passes",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L511-L514",
      "signature": "def test_valid_bed12_passes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a139fb1fe62fa3d72ff66cdf893fbbd2fafc01de99d0fedf662bceef9e6624d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditBedTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "name": "AuditCliTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L568-L597",
      "signature": "class AuditCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a784cfc5c62db011552b803aa573e6057941c389911c32d62731e659904794a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_examples_are_capped",
      "name": "test_examples_are_capped",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L584-L590",
      "signature": "def test_examples_are_capped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d16db72ba3e1c62a0444e25b0c35750aea5b3990b317c04f94269fa78af7d266",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_format_can_be_forced",
      "name": "test_format_can_be_forced",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L569-L573",
      "signature": "def test_format_can_be_forced(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aea1cc62dc2f06d41a22901ed83ffc23e480b2d4d3b4d6bae7021745526118a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_missing_file_is_a_usage_error",
      "name": "test_missing_file_is_a_usage_error",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L579-L582",
      "signature": "def test_missing_file_is_a_usage_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "866abfdf5a15d655332552f44fb5e59c3baafc36c97a2481676e4aa6c6bcb073",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_suppressed_findings_still_count_towards_the_exit_code",
      "name": "test_suppressed_findings_still_count_towards_the_exit_code",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L592-L597",
      "signature": "def test_suppressed_findings_still_count_towards_the_exit_code(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7187e18ea9b17b1d7a2af1f7a7dca010b031da65e6fa18685f6816ca2d1dd61",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_unknown_extension_is_refused",
      "name": "test_unknown_extension_is_refused",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L575-L577",
      "signature": "def test_unknown_extension_is_refused(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13769095450cbae26bdb761957650049998687ac29bd54294175c859d182bf3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditGffTests",
      "name": "AuditGffTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L524-L539",
      "signature": "class AuditGffTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba437b334fde888079ecd678eae249e5fd49924bf2e13e3c02378dea2b6dca93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_clean_gtf_passes",
      "name": "test_clean_gtf_passes",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L536-L539",
      "signature": "def test_clean_gtf_passes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1e6cc91d586e55c25aa814018491b2ba7ca912103c02984017906151ace89b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditGffTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_end_before_start_is_fatal_regardless_of_strand",
      "name": "test_end_before_start_is_fatal_regardless_of_strand",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L532-L534",
      "signature": "def test_end_before_start_is_fatal_regardless_of_strand(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7556654236511dc72c232369d4a441317634ecaefd4838322c161bfae6c149e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditGffTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_zero_start_proves_zero_based_data",
      "name": "test_zero_start_proves_zero_based_data",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L525-L530",
      "signature": "def test_zero_start_proves_zero_based_data(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fc13705e12267a6b4d47e90c359430cbb548eceaef827de952145665fe8f1d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditGffTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests",
      "name": "AuditVcfTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L542-L565",
      "signature": "class AuditVcfTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5422c9bf0906cbbb55d202988b5f786a59c926b3ad1e4bc7ed86c407ffec9ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_contig_order_not_coordinate_order_drives_the_sort_check",
      "name": "test_contig_order_not_coordinate_order_drives_the_sort_check",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L556-L561",
      "signature": "def test_contig_order_not_coordinate_order_drives_the_sort_check(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b757b81e9510c1d291c3483ffeaccbd43e8a4e9a1662baa659a70be9fc52ad63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditVcfTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_interleaved_contigs_are_caught",
      "name": "test_interleaved_contigs_are_caught",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L563-L565",
      "signature": "def test_interleaved_contigs_are_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d0fc0d510518f27d9f2509c8975515c58ea6cff394408097c65814fb6a6c9b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditVcfTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_untrimmed_alleles_are_warned_about",
      "name": "test_untrimmed_alleles_are_warned_about",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L551-L554",
      "signature": "def test_untrimmed_alleles_are_warned_about(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "107472a6b8611d0029ac4698453350ee2829ccfb546ce3c6d446667312b70f53",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditVcfTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_vep_dash_allele_is_fatal",
      "name": "test_vep_dash_allele_is_fatal",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L543-L549",
      "signature": "def test_vep_dash_allele_is_fatal(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6aca55e230138fbeed5d2a08b6e11d8267e5f0168c33a3f90ff5e8cc77dfda28",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditVcfTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#BuildTableTests",
      "name": "BuildTableTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L388-L406",
      "signature": "class BuildTableTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b18a80d75d10c440be29e3db3630848d808fc7e34ea161944c055d8947a04077",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#BuildTableTests.test_builds_are_mutually_distinguishable",
      "name": "test_builds_are_mutually_distinguishable",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L394-L400",
      "signature": "def test_builds_are_mutually_distinguishable(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e174a8a33890c6b3208a9e52369c304d19d913a4015d46262b842f2ed351fb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildTableTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#BuildTableTests.test_every_build_lists_the_same_chromosomes",
      "name": "test_every_build_lists_the_same_chromosomes",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L389-L392",
      "signature": "def test_every_build_lists_the_same_chromosomes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3906c5b18170c16637519a2164b5de4226882d96a613baeeabe95746c8f40191",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildTableTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#BuildTableTests.test_grch37_and_grch38_differ_on_chr1",
      "name": "test_grch37_and_grch38_differ_on_chr1",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L402-L406",
      "signature": "def test_grch37_and_grch38_differ_on_chr1(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d43bebb977fdb7c164fbd50314aa1cbea42883144705baabf11286c250cea776",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BuildTableTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "name": "ConventionTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L67-L97",
      "signature": "class ConventionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f5a3f6c631e0f2f4569ce7b2f821075624fe047ee4d2f885780681a61b5eb38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_length_is_convention_independent",
      "name": "test_length_is_convention_independent",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L81-L85",
      "signature": "def test_length_is_convention_independent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6aa62250985e837db62c56ea7d4c67f48397bf1e0169275441f8bce500e0edcb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConventionTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_only_the_start_moves_between_conventions",
      "name": "test_only_the_start_moves_between_conventions",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L75-L79",
      "signature": "def test_only_the_start_moves_between_conventions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7974a919faf814fcc2f8dbad22121d7cd314c5fe0b5ea36a24a0b8eb0365191e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConventionTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_round_trip_through_canonical_is_identity",
      "name": "test_round_trip_through_canonical_is_identity",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L68-L73",
      "signature": "def test_round_trip_through_canonical_is_identity(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c2c1fe1b651db62916b562742215c9f1adbd5692bdd952311b856b14f4586ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConventionTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_samtools_region_spans_both_endpoints",
      "name": "test_samtools_region_spans_both_endpoints",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L87-L93",
      "signature": "def test_samtools_region_spans_both_endpoints(self): # The samtools manual: chr3:1000-2000 is a 1001 bp region.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1a5f1371b73b8cb550e2091c8e256ddf1ab71ce8a22f269d81ed60840528a7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConventionTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_unknown_format_is_rejected",
      "name": "test_unknown_format_is_rejected",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L95-L97",
      "signature": "def test_unknown_format_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f63b0eaf9391c7d4dde8558f650abcafe91dbbb583c611a2f34404d5516daca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConventionTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "name": "ConvertCoordsCliTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L139-L194",
      "signature": "class ConvertCoordsCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d22170872047eeade56383fb6ee624c002a7d5611573ef3c333a4fe5f6e4be5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_bed_to_gff",
      "name": "test_bed_to_gff",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L140-L146",
      "signature": "def test_bed_to_gff(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e80cc19c7906c4e19aa5515c2eb79b2165cabe4f3de74199d666dd4fc96a7617",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_inverted_interval_is_invalid",
      "name": "test_inverted_interval_is_invalid",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L171-L175",
      "signature": "def test_inverted_interval_is_invalid(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "abeff1b9412d24d5b30967a7f9759f86d1068e21262be4332cf985e7fcaadf61",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_json_output_is_parseable",
      "name": "test_json_output_is_parseable",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L183-L186",
      "signature": "def test_json_output_is_parseable(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "767004c0efd1dfc3f01fdfee4bf0c6aa1c20a027227d215cb7e3df6966fe29a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_list_covers_every_convention",
      "name": "test_list_covers_every_convention",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L177-L181",
      "signature": "def test_list_covers_every_convention(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c03e9362be04d8ba7719644d9ce43d4a3cdbcb178e139403bda03888408de613",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_reads_a_bed_file",
      "name": "test_reads_a_bed_file",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L188-L194",
      "signature": "def test_reads_a_bed_file(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "08339392e0a27859d4e25ef1b3c4b1ee8c0af1b1e49f1f42b2203c28909e607a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_ucsc_region_to_bed",
      "name": "test_ucsc_region_to_bed",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L148-L156",
      "signature": "def test_ucsc_region_to_bed(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ef0cdc69d8b313d61c3342c69153b8b1caa6c32d4b8c1baef45a68a3f3a652d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_bed_feature_is_unrepresentable_in_gff",
      "name": "test_zero_length_bed_feature_is_unrepresentable_in_gff",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L158-L163",
      "signature": "def test_zero_length_bed_feature_is_unrepresentable_in_gff(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d30006dbb8c391d9b8079906a56d25c3f4d7d34e6760da6d43ba1c05456867e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_survives_a_half_open_target",
      "name": "test_zero_length_survives_a_half_open_target",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L165-L169",
      "signature": "def test_zero_length_survives_a_half_open_target(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "25cae50392f4b00e6d261d631176b1a2173c1b92da6a9252b7cf880844265192",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConvertCoordsCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "name": "IdentifyTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L409-L487",
      "signature": "class IdentifyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfe6a2a047e3a467cea262f16b1cebcc819a87eb092d1f0d4358402c5409b76e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_bed_max_coordinate_is_not_treated_as_a_contig_length",
      "name": "test_bed_max_coordinate_is_not_treated_as_a_contig_length",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L467-L475",
      "signature": "def test_bed_max_coordinate_is_not_treated_as_a_contig_length(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae2e4d324e3a9697234da23f056885273aa42355489b97a589abbfbe940743dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_bed_past_the_contig_end_is_caught",
      "name": "test_bed_past_the_contig_end_is_caught",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L477-L483",
      "signature": "def test_bed_past_the_contig_end_is_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b217155e11b559893ae6ea8cd83e56333b7d707ede4a9c740c2c1e4f60db475a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_and_hg19_are_reported_as_incompatible",
      "name": "test_grch37_and_hg19_are_reported_as_incompatible",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L434-L441",
      "signature": "def test_grch37_and_hg19_are_reported_as_incompatible(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "397dee926fb4c4d9a7d9d09bc47fd78538353f276abfb0019362d7f717fe185d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_is_identified_by_its_mitochondrion",
      "name": "test_grch37_is_identified_by_its_mitochondrion",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L420-L426",
      "signature": "def test_grch37_is_identified_by_its_mitochondrion(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "330b272dc11c65ce681051853e37e177fc32fafb6cb29c26df36e2235f1ce0f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_is_identified",
      "name": "test_grch38_is_identified",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L428-L432",
      "signature": "def test_grch38_is_identified(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5db7f7c0f50194bc8f56c597afc1d7ee043073d485429fda21fd8f25bc44604",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_vcf_against_hg19_genome_fails",
      "name": "test_grch38_vcf_against_hg19_genome_fails",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L459-L465",
      "signature": "def test_grch38_vcf_against_hg19_genome_fails(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c89bdf9009d74cf2702afdf7e479cc67a7ed8a720719d35b591895e0ddad32a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_hg19_is_identified_by_its_mitochondrion",
      "name": "test_hg19_is_identified_by_its_mitochondrion",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L410-L418",
      "signature": "def test_hg19_is_identified_by_its_mitochondrion(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eecdfd7cd8af7439796ac8381b9403c945c2d1e5a991ee7b2e96d886ad751b6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_matching_files_are_compatible",
      "name": "test_matching_files_are_compatible",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L443-L449",
      "signature": "def test_matching_files_are_compatible(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b01daf64230320fe98d87fbc219fbc85595630d2eddab867168c983e5bd4690",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_unknown_extension_is_refused",
      "name": "test_unknown_extension_is_refused",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L485-L487",
      "signature": "def test_unknown_extension_is_refused(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "88d395ae8b182fde17c97b078828070ec66a23bde00092a4ded53fa7167df09e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_vcf_header_lengths_are_read",
      "name": "test_vcf_header_lengths_are_read",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L451-L457",
      "signature": "def test_vcf_header_lengths_are_read(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f2157ae024cc22b1691c1e35f450144aa8c247c08d4b73a3d479ac36783e536",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IdentifyTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "name": "NormalisationTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L249-L329",
      "signature": "class NormalisationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "46a244b61126517a5f920f3b89594e0df689b29fe11283a9fc1a6dadabb6f818",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "name": "normalise",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L255-L258",
      "signature": "def normalise(self, pos, ref, alt, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0b08e562c75fe85233d8c471e8049bfdaf54400f32bb7f3025af83d7dd726be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L252-L253",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "36367827cf093e0cca3e53cfd9cb2939aa48f3d81137040244bb0cf9ddf7d995",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_cannot_shift_past_the_contig_start",
      "name": "test_cannot_shift_past_the_contig_start",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L298-L301",
      "signature": "def test_cannot_shift_past_the_contig_start(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b3ba4c967867a4ff4516d9b100eceeeaf902cb3a8d0082a5d5a29d421901c1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_deletion_left_aligns_through_the_repeat",
      "name": "test_deletion_left_aligns_through_the_repeat",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L260-L264",
      "signature": "def test_deletion_left_aligns_through_the_repeat(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b08c3cc3bdfdb88d3b9d18f770827bdaa4b01f0208151dabc32a14c927e7e91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_every_spelling_of_one_deletion_agrees",
      "name": "test_every_spelling_of_one_deletion_agrees",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L266-L272",
      "signature": "def test_every_spelling_of_one_deletion_agrees(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73eb4d4d4e821694b84d2ba276f586ee316159d0ba94463261b4e528bcd69714",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_insertion_left_aligns",
      "name": "test_insertion_left_aligns",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L274-L277",
      "signature": "def test_insertion_left_aligns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e61d9be8b19afea001764495e247f698992fabfb139ed16cee2db6defd65e29",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_normalisation_is_idempotent",
      "name": "test_normalisation_is_idempotent",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L290-L296",
      "signature": "def test_normalisation_is_idempotent(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "53b7ebf5cc937ab2a917d3a119f21c03113e03d2c547d203b6f2a66b6434f2ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_normalised_snv_is_untouched",
      "name": "test_normalised_snv_is_untouched",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L285-L288",
      "signature": "def test_normalised_snv_is_untouched(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0c46f35e02bc2685533b2199da33a53e43f4e9d2c30b4240d78f9fe00671b46",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_ref_equal_to_alt_is_rejected",
      "name": "test_ref_equal_to_alt_is_rejected",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L323-L325",
      "signature": "def test_ref_equal_to_alt_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "72559973dc6d3f4b807309cf9247c9b1d3f1f54285d58c6a63e945bf92d966ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_ref_mismatch_is_reported_not_normalised",
      "name": "test_ref_mismatch_is_reported_not_normalised",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L308-L312",
      "signature": "def test_ref_mismatch_is_reported_not_normalised(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "55d40e207d169918543d6cd9c412ff5eea5283eb6c362a6b1cb59840b023e0a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_spanning_deletion_allele_passes_through",
      "name": "test_spanning_deletion_allele_passes_through",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L320-L321",
      "signature": "def test_spanning_deletion_allele_passes_through(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2261fcff94f3b74214f87fefdd08e0dd6e4b451f05e845a19d0c6d42065c7f6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_symbolic_allele_passes_through",
      "name": "test_symbolic_allele_passes_through",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L314-L318",
      "signature": "def test_symbolic_allele_passes_through(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "22b6c9092b931b2a90862b671591771a55ef053f87531a3f1edd2ac62d0e9c1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_untrimmed_snv_becomes_parsimonious",
      "name": "test_untrimmed_snv_becomes_parsimonious",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L279-L283",
      "signature": "def test_untrimmed_snv_becomes_parsimonious(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed483e0d32528f2ba134d7ef09ddd23a73533ff3fd38ca693809bd8e59f00107",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_window_limits_the_shift_and_says_so",
      "name": "test_window_limits_the_shift_and_says_so",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L303-L306",
      "signature": "def test_window_limits_the_shift_and_says_so(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf5388a90cc1461d8b3c93f90917d07a64e03520cc400ba3ac6c6169184912bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_zero_position_is_rejected",
      "name": "test_zero_position_is_rejected",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L327-L329",
      "signature": "def test_zero_position_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fdc241a32ee4fd355422b308e3cb3925f9fee150462f747e127bcdbce9631f8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalisationTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "name": "NormaliseCliTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L332-L380",
      "signature": "class NormaliseCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bd2b1b3d2e9da363190c96ea94604fdbe3cf1b0181e64220cc0c6909b2ffe86",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_difference",
      "name": "test_compare_declares_difference",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L342-L348",
      "signature": "def test_compare_declares_difference(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ee368479d80b13c7a7ebfac834591a99f7cf8f5d9c2b6cd825f2798d4e7a782",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormaliseCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_identity",
      "name": "test_compare_declares_identity",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L333-L340",
      "signature": "def test_compare_declares_identity(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e470cb59ccd515d696c4daafa8f7a60186e669346be7e8195949712ae6e26c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormaliseCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_mismatch_sets_a_failing_exit_code",
      "name": "test_mismatch_sets_a_failing_exit_code",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L350-L355",
      "signature": "def test_mismatch_sets_a_failing_exit_code(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc015dd51e9727940dca24700dfdeb2783c1ae9f70822b9833814e428b498c26",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormaliseCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_missing_reference_is_a_usage_error",
      "name": "test_missing_reference_is_a_usage_error",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L375-L380",
      "signature": "def test_missing_reference_is_a_usage_error(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "53ed478fd39313cc4637e7679eea741cc2aa8436f26d229e7ebe5086b169592a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormaliseCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_reads_a_vcf",
      "name": "test_reads_a_vcf",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L365-L373",
      "signature": "def test_reads_a_vcf(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6583331d6a47577b41bab03bee9468551fa9896a37381e09420f7ba742acde52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormaliseCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_split_expands_multiallelic_alt",
      "name": "test_split_expands_multiallelic_alt",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L357-L363",
      "signature": "def test_split_expands_multiallelic_alt(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8974f81afec8a86d5631899cdd6672344b77fb95b308dfb919f5cace6861686d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormaliseCliTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "name": "ReferenceTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L205-L246",
      "signature": "class ReferenceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ad64845be4e82bc2531a53f33499ac040e69b9907ae952f45299f02aba03117",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_chr_prefix_is_resolved_both_ways",
      "name": "test_chr_prefix_is_resolved_both_ways",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L213-L215",
      "signature": "def test_chr_prefix_is_resolved_both_ways(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f770db760c67b27ee1dac7c3cfae0a7c157f2f185af0db2da6c7455293822c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_fetch_is_zero_based_half_open",
      "name": "test_fetch_is_zero_based_half_open",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L206-L211",
      "signature": "def test_fetch_is_zero_based_half_open(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef92cf67379984f16a63691b61e5333ab9f04076a022886b0691a1b54b3d524f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_indexed_and_unindexed_readers_agree",
      "name": "test_indexed_and_unindexed_readers_agree",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L229-L246",
      "signature": "def test_indexed_and_unindexed_readers_agree(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "474084c048d9cde1e9547ffe80a8adcdf491ac80c54880f5ed84dd58c28a1acf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_missing_contig_names_the_likely_cause",
      "name": "test_missing_contig_names_the_likely_cause",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L223-L227",
      "signature": "def test_missing_contig_names_the_likely_cause(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8e43bb11e6ebb71b27d7add09590deaef0343afe8c9f38431be31cf31c17425",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_past_the_end_is_an_error_naming_the_assembly",
      "name": "test_past_the_end_is_an_error_naming_the_assembly",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L217-L221",
      "signature": "def test_past_the_end_is_an_error_naming_the_assembly(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba65ea68ba1f434163c7d439957479ce56af8e213393429675d1a568c61cafc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "name": "RegionStringTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L100-L136",
      "signature": "class RegionStringTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5187617b84c07c00bcc260a264819b3ec96e89a42709ee9df56d13847c9fa5ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_bare_contig_is_refused",
      "name": "test_bare_contig_is_refused",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L119-L121",
      "signature": "def test_bare_contig_is_refused(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcf9a39af306706e8e656621f2e9a6b6c20266275cc2ca4bba0f8fcd9c594e6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionStringTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_braced_hla_contig_round_trips",
      "name": "test_braced_hla_contig_round_trips",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L123-L129",
      "signature": "def test_braced_hla_contig_round_trips(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd711d0bd6962aff40a04002d495ff89136fd60f82a78b8b1bd00a67b8474925",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionStringTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_ensembl_double_dot_and_strand",
      "name": "test_ensembl_double_dot_and_strand",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L108-L111",
      "signature": "def test_ensembl_double_dot_and_strand(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9751277574bfb781c20b667e0b95caa8485dbac92345ac9741288261d31d78cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionStringTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_start_without_end_is_refused",
      "name": "test_start_without_end_is_refused",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L113-L117",
      "signature": "def test_start_without_end_is_refused(self): # In samtools, chr2:1000000 runs to the end of the contig -- not one base.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a95afebea7b7e73ec6cb8f8eb4331ea91e2f1734779aee8e29ba18e2423834c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionStringTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_thousands_separators_are_accepted",
      "name": "test_thousands_separators_are_accepted",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L101-L106",
      "signature": "def test_thousands_separators_are_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "05f1e9b7c811cafcb8f7c30378a330cb1ba0c182ebdbf78666f8af9d194408b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionStringTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_unbraced_colon_bearing_name_is_refused",
      "name": "test_unbraced_colon_bearing_name_is_refused",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L131-L136",
      "signature": "def test_unbraced_colon_bearing_name_is_refused(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2975c5c59e91c301fad51720130a1378b28cd372175f02af9e7a70f3466a7a14",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionStringTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "name": "rows_from_tsv",
      "kind": "function",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L56-L59",
      "signature": "def rows_from_tsv(text)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b94a8143e2cbc18c0175a22ef065233644c53a490cf7ff22515cf4f4d99a53b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#run_main",
      "name": "run_main",
      "kind": "function",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L48-L53",
      "signature": "def run_main(module, argv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3427f0e530a6e6b16bbac96b96011e753f0491bbf8d27665003a5b29c8e32493",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "name": "SkillStructureTests",
      "kind": "class",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L605-L652",
      "signature": "class SkillStructureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0c6c4cbe6451ae75c7fcaef5072faabc8daa88e90d8c9335f499d97e925ca78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_every_referenced_file_exists",
      "name": "test_every_referenced_file_exists",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L632-L636",
      "signature": "def test_every_referenced_file_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e643ace39b832ce6bd660c5c78c0f67c2248689f72286fba9d06f64914573b42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_every_script_is_mentioned_in_the_skill",
      "name": "test_every_script_is_mentioned_in_the_skill",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L638-L644",
      "signature": "def test_every_script_is_mentioned_in_the_skill(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cb208a878f9723ea4ef648dbf52f9c7bf81ebed0925e3eabb1b95f1e6322505",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_frontmatter_name_matches_the_directory",
      "name": "test_frontmatter_name_matches_the_directory",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L606-L608",
      "signature": "def test_frontmatter_name_matches_the_directory(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "237f53eab06ad79076acecf18542b16df3f4821875d1f3423d19a426ba9ad279",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_local_markdown_links_resolve",
      "name": "test_local_markdown_links_resolve",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L622-L630",
      "signature": "def test_local_markdown_links_resolve(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a9f7ed0b6368ce0829d54b6bb9c85f2438febbe26434ccc2aabb96ba66bf62e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_no_tests_ship_inside_the_skill",
      "name": "test_no_tests_ship_inside_the_skill",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L618-L620",
      "signature": "def test_no_tests_ship_inside_the_skill(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ac5574304224be6c6de4ca98bb380971669cb3d6d19947fda6f44173fc458c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_scripts_import_nothing_outside_the_standard_library",
      "name": "test_scripts_import_nothing_outside_the_standard_library",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L646-L652",
      "signature": "def test_scripts_import_nothing_outside_the_standard_library(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc7943ed759ec0d2bb59364421456e7288233a907448888b0f12ee9dfb0c947f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_skill_md_is_within_the_line_budget",
      "name": "test_skill_md_is_within_the_line_budget",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L614-L616",
      "signature": "def test_skill_md_is_within_the_line_budget(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a08f2fb719cc612e8c9b53246d52a8f9ab571d09c45e1be417fc76862f1d9f31",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_version_is_a_quoted_string",
      "name": "test_version_is_a_quoted_string",
      "kind": "method",
      "path": "tests/genomic-coordinates/test_scripts.py",
      "span": "L610-L612",
      "signature": "def test_version_is_a_quoted_string(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "77c4d6baf0c84260aad67a114fa61bf3833c6b29230d0d66997e7bf167eac220",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L1-L501",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eca584fbdaffd83fad084145f72e80b8f18b5a22d47fdf6799991480fb014aca",
      "chars": 16962,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests",
      "name": "DependencyFreeHelpTests",
      "kind": "class",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L107-L130",
      "signature": "class DependencyFreeHelpTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "243c71df7f8784d671582e3d2eeee8065b515748b03fa9a7f03630f44a87066b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed_without_site_packages",
      "name": "test_all_cli_helps_succeed_without_site_packages",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L108-L113",
      "signature": "def test_all_cli_helps_succeed_without_site_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a719bd94dda8916540dbb3233700a67a170ae009e8d7133a10eb979f42f888e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeHelpTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_nonlocal_and_archive_paths_fail_closed",
      "name": "test_nonlocal_and_archive_paths_fail_closed",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L115-L130",
      "signature": "def test_nonlocal_and_archive_paths_fail_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f73ee054930de2e957f42ffb637518a11921e681a9054366fa5685aa0efc629",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeHelpTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#ExactPinnedStackTests",
      "name": "ExactPinnedStackTests",
      "kind": "class",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L133-L223",
      "signature": "class ExactPinnedStackTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf6e028e9f0ec78037cc4bd3133973275ab686c8d26017e48deac100cec29c66",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L135-L136",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b635e148ff6256858edb3a71967ad5ef2c977cbfaafcf764d626361255d6c87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExactPinnedStackTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.test_core_geometry_join_overlay_dissolve_and_arrow_apis",
      "name": "test_core_geometry_join_overlay_dissolve_and_arrow_apis",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L147-L201",
      "signature": "def test_core_geometry_join_overlay_dissolve_and_arrow_apis(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a777b44fc6554c630003b39fd56ef70bfcca66ca9f15ee049750f78151283e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExactPinnedStackTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.test_exact_package_and_native_versions",
      "name": "test_exact_package_and_native_versions",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L138-L145",
      "signature": "def test_exact_package_and_native_versions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "270d4ae61c1ca0c4dc98ee24820752083c4068349acde4ee6e2fae00532c92f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExactPinnedStackTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.test_geoparquet_11_bbox_roundtrip",
      "name": "test_geoparquet_11_bbox_roundtrip",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L203-L223",
      "signature": "def test_geoparquet_11_bbox_roundtrip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5a6733c12bc1d93d4921ab034d7ed75ffe018222a70f7e2b5216e99381c19a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExactPinnedStackTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests",
      "name": "LocalCliSyntheticTests",
      "kind": "class",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L226-L496",
      "signature": "class LocalCliSyntheticTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "474ca86aeba51fcff513a049edf613ed23c1b71afb732f3a44d7ada58010de2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L228-L229",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bc5d6ffc1eaebb874cb6d2d8b120f40cbd366f23851189264482ab43e025ab3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalCliSyntheticTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_crs_export_and_privacy_planners",
      "name": "test_crs_export_and_privacy_planners",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L382-L496",
      "signature": "def test_crs_export_and_privacy_planners(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5870a175c347205840d59f4edfec75785e7bff9d8340ffadb1cf64e4813ce7ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalCliSyntheticTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_inventory_and_join_cardinality_are_redacted",
      "name": "test_inventory_and_join_cardinality_are_redacted",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L231-L296",
      "signature": "def test_inventory_and_join_cardinality_are_redacted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cea308a4d2948c565d8b1d28ded44233f4438ab946faf212c2396d50bf7a50a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalCliSyntheticTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_validity_dry_run_and_new_output_only",
      "name": "test_validity_dry_run_and_new_output_only",
      "kind": "method",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L298-L380",
      "signature": "def test_validity_dry_run_and_new_output_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37ed0abc0420bb9069b3b7ba55e231b86e2922557d93a6aa56fe72171b905fb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalCliSyntheticTests"
    },
    {
      "id": "tests/geopandas/test_scripts.py#payload",
      "name": "payload",
      "kind": "function",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L60-L66",
      "signature": "def payload(result: subprocess.CompletedProcess[str]) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf4999097793009fe8fedebc522dc0aa5dea437f486f2f2fee7f283cc928de05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#require_stack",
      "name": "require_stack",
      "kind": "function",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L69-L78",
      "signature": "def require_stack() -> tuple[object, object, object, object, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2460a8560852ac14692753564879f5b447b9e2afb8392e348a05b8410f18be4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L36-L57",
      "signature": "def run_script( name: str, *arguments: str, cwd: Path | None = None, no_site: bool = False, ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "08e207b3a465adb8ee294a253e51e608c5502f0cbaa4d382480cbca787038aba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_scripts.py#write_join_fixtures",
      "name": "write_join_fixtures",
      "kind": "function",
      "path": "tests/geopandas/test_scripts.py",
      "span": "L81-L104",
      "signature": "def write_join_fixtures(root: Path) -> tuple[Path, Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "da96caf18a02670bbb1cf963a4f2d3713328d9b26c93da22dabf0114bc9275c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/geopandas/test_static.py",
      "span": "L1-L222",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5af4812d589434bcbebf6083074de5cb7f561ae1b697615557d8be2b6ebb7349",
      "chars": 8460,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_static.py#ScriptSafetyTests",
      "name": "ScriptSafetyTests",
      "kind": "class",
      "path": "tests/geopandas/test_static.py",
      "span": "L77-L149",
      "signature": "class ScriptSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d55f0c31103cd8836b99bb786e03142603af772bbcd3b02de69135dc85381e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_static.py#ScriptSafetyTests.test_no_generated_bytecode_or_research_artifacts",
      "name": "test_no_generated_bytecode_or_research_artifacts",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L142-L149",
      "signature": "def test_no_generated_bytecode_or_research_artifacts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "65b5cf36ff93cc80206ea622d3c1a7120a27151f38180a9114b8d19b0f14c5e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/geopandas/test_static.py#ScriptSafetyTests.test_scripts_omit_network_execution_and_unsafe_serializers",
      "name": "test_scripts_omit_network_execution_and_unsafe_serializers",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L111-L140",
      "signature": "def test_scripts_omit_network_execution_and_unsafe_serializers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e1f51247ee41816716e5fbd699e300dbc6cb5b638c635c4deb5cfc231d4e99e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/geopandas/test_static.py#ScriptSafetyTests.test_scripts_parse_and_keep_optional_imports_lazy",
      "name": "test_scripts_parse_and_keep_optional_imports_lazy",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L78-L109",
      "signature": "def test_scripts_parse_and_keep_optional_imports_lazy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "852b0b3410dd3a8a745128d374142acb5c56ad7e0eca5b1171d27143a03d4df7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SecurityAndStalenessTests",
      "name": "SecurityAndStalenessTests",
      "kind": "class",
      "path": "tests/geopandas/test_static.py",
      "span": "L152-L217",
      "signature": "class SecurityAndStalenessTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4ea8181cf1b7afa4e2bee31166b9fd5f439dae8743de21c4c3818dd55f44df5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_static.py#SecurityAndStalenessTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L154-L158",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c27b6a24d1e6e81d8e1c434484e7573c44f3c42bb3c6520bd5734d0cfbc2e5a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SecurityAndStalenessTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SecurityAndStalenessTests.test_current_api_and_security_guidance_present",
      "name": "test_current_api_and_security_guidance_present",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L191-L217",
      "signature": "def test_current_api_and_security_guidance_present(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc4e2fe9285bd062c94022a5725c81bfcc068d603e83137bd7c9c58fb7b74d05",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SecurityAndStalenessTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SecurityAndStalenessTests.test_install_snapshot_is_pinned_and_uv_only",
      "name": "test_install_snapshot_is_pinned_and_uv_only",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L160-L179",
      "signature": "def test_install_snapshot_is_pinned_and_uv_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90f5332c445e1692264b02ca505fdf68de61cdbfb722c69f3d9cb676f9b8e92b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SecurityAndStalenessTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SecurityAndStalenessTests.test_no_credential_url_or_broad_environment_dump",
      "name": "test_no_credential_url_or_broad_environment_dump",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L181-L189",
      "signature": "def test_no_credential_url_or_broad_environment_dump(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b493207f3798d084f85ccae635741006ef8c335c7efb5d7cc4951c75a0f5612",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SecurityAndStalenessTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SkillStructureTests",
      "name": "SkillStructureTests",
      "kind": "class",
      "path": "tests/geopandas/test_static.py",
      "span": "L23-L74",
      "signature": "class SkillStructureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b189f28ef8e4957628c71ac057b66e9b524fadc72eb1511502037eaeb8d622d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/geopandas/test_static.py#SkillStructureTests.test_documented_cli_inventory_exists",
      "name": "test_documented_cli_inventory_exists",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L68-L74",
      "signature": "def test_documented_cli_inventory_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06460c97c67e79c54df67729b2c9b73b0828977a440a3e451c70dcb500f20052",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SkillStructureTests.test_exactly_six_dated_references",
      "name": "test_exactly_six_dated_references",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L38-L53",
      "signature": "def test_exactly_six_dated_references(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d35b5e28f0730a67f51aac5391639a6794ecfbb6e7e427f141ff969b3d312882",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SkillStructureTests.test_frontmatter_version_license_compatibility_and_size",
      "name": "test_frontmatter_version_license_compatibility_and_size",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L24-L36",
      "signature": "def test_frontmatter_version_license_compatibility_and_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed905f1a54356dd03ca417f9803ae002f88316d562ee6fc426557da3c62ea740",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/geopandas/test_static.py#SkillStructureTests.test_relative_markdown_links_resolve",
      "name": "test_relative_markdown_links_resolve",
      "kind": "method",
      "path": "tests/geopandas/test_static.py",
      "span": "L55-L66",
      "signature": "def test_relative_markdown_links_resolve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "82804ba2a99e8254de53372e75094da843f9861d500b1cfd93fc9fcb5248f80d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L1-L522",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a50f3dd5e4ed3cad3ec2031c858dfc8066df3f12174a9f39782a82ad6d03b69d",
      "chars": 20273,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "name": "canonical_snapshot",
      "kind": "function",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L35-L150",
      "signature": "def canonical_snapshot() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d6cf10b723c9c733e167c0a0eb956556694bc7ad0f510d7f3e2a23a4131417d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#CommonSafetyTests",
      "name": "CommonSafetyTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L153-L185",
      "signature": "class CommonSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "542692d88f78e8427a21d7c963a6a4ce580e0a0c36912e003658236527247f3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#CommonSafetyTests.test_snapshot_reader_rejects_symlink",
      "name": "test_snapshot_reader_rejects_symlink",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L175-L185",
      "signature": "def test_snapshot_reader_rejects_symlink(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fe73a8ae486026e6932371fe259fe809397e88d9295ed520cda9c883d4c84f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#CommonSafetyTests.test_stdout_is_default_and_file_output_is_private",
      "name": "test_stdout_is_default_and_file_output_is_private",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L154-L173",
      "signature": "def test_stdout_is_default_and_file_output_is_private(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eaebd78a3c1a729b768952e5e03df7a60da7cc92c4abad4f681f509eed8e0e30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests",
      "name": "LinuxCgroupTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L245-L269",
      "signature": "class LinuxCgroupTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "76fcac46b81c26aaa3e2d7f7e0d4d29c9a1c5368e24eafa9f892904e5017feab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_cpu_quota_is_capacity_not_a_topology_count",
      "name": "test_cpu_quota_is_capacity_not_a_topology_count",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L260-L269",
      "signature": "def test_cpu_quota_is_capacity_not_a_topology_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f518b110ebf7beb68c38ebd5be2ce303a2303cd0f6a4e89b46645075f620950e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinuxCgroupTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_hierarchical_limits_use_most_restrictive_ancestor",
      "name": "test_hierarchical_limits_use_most_restrictive_ancestor",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L246-L258",
      "signature": "def test_hierarchical_limits_use_most_restrictive_ancestor(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64512b7ce348e81d3ab5ee277f7f631d2838e44d98262499a739e3d0ff4b669e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinuxCgroupTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_hierarchical_limits_use_most_restrictive_ancestor.reader",
      "name": "reader",
      "kind": "function",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L250-L254",
      "signature": "def reader(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1554bd5d5215cf1ded9c4737c7361de9c57078d6a8fb0b411f3bb10bb0ed3fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#ParserTests",
      "name": "ParserTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L188-L242",
      "signature": "class ParserTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9783f5f2f9f87ea3e4699a2d3d247708ab16784847df6763ed772bf59219a67b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#ParserTests.test_accelerator_probe_timeout_is_a_partial_warning",
      "name": "test_accelerator_probe_timeout_is_a_partial_warning",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L217-L242",
      "signature": "def test_accelerator_probe_timeout_is_a_partial_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8dc4d02f0b09bd49a1cf9b988360da3db8cf9b11dab4a508a3fd3c08ae4210e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#ParserTests.test_accelerator_probe_timeout_is_a_partial_warning.fake_run",
      "name": "fake_run",
      "kind": "function",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L218-L221",
      "signature": "def fake_run(command: tuple[str, ...], timeout: float) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "15351c3084d8e6b7917dda2f1d9120bd13665eb5058e18961f831013c52a26ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#ParserTests.test_amd_and_apple_accelerators_are_not_cuda",
      "name": "test_amd_and_apple_accelerators_are_not_cuda",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L203-L215",
      "signature": "def test_amd_and_apple_accelerators_are_not_cuda(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cea1b5ea7afe359f76347689ee844ab701b94705c0ec327ee212106502700a4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#ParserTests.test_cpu_list_is_counted_without_expansion",
      "name": "test_cpu_list_is_counted_without_expansion",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L189-L193",
      "signature": "def test_cpu_list_is_counted_without_expansion(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38882342ef74f2d54f6f2a6237178dd5f36194c1aaf77a398910e493842f738b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#ParserTests.test_nvidia_csv_is_typed_and_does_not_expose_uuid",
      "name": "test_nvidia_csv_is_typed_and_does_not_expose_uuid",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L195-L201",
      "signature": "def test_nvidia_csv_is_typed_and_does_not_expose_uuid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce5d743d212b4fd43d4e64936980ed64a853f06e92f0943bd04937228133f175",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlannerTests",
      "name": "PlannerTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L481-L512",
      "signature": "class PlannerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2b968a27bfe76c1b2561fe8fc52ed1305988e4492a4556bae180b78c691d49c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlannerTests.test_accelerator_plan_executes_nothing",
      "name": "test_accelerator_plan_executes_nothing",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L504-L512",
      "signature": "def test_accelerator_plan_executes_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f6d5647200dc94ff95f8f76fcea86455dda2fd9b48ace19a634d1ac5aa83334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlannerTests.test_io_plan_is_bounded",
      "name": "test_io_plan_is_bounded",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L498-L502",
      "signature": "def test_io_plan_is_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce61d0c07f6ce0194f1b1fce7832177caa4c639c4b0ff722a924c6868a510b6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlannerTests.test_worker_plan_uses_cpu_memory_tasks_and_request",
      "name": "test_worker_plan_uses_cpu_memory_tasks_and_request",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L482-L496",
      "signature": "def test_worker_plan_uses_cpu_memory_tasks_and_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "893f5515a26e5299275497ed3068e8caa65c3c90f891ffdf77267a8c6b376eaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests",
      "name": "PlatformMockTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L303-L449",
      "signature": "class PlatformMockTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef262815263b21e0272935061de57edfefc92d017f2822b8bd34851f6b386b23",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_linux_partial_failure_still_returns_valid_snapshot",
      "name": "test_linux_partial_failure_still_returns_valid_snapshot",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L396-L449",
      "signature": "def test_linux_partial_failure_still_returns_valid_snapshot(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa3ed58525fbb15f5ddb1fcf143ea4a5d53b7552073cea3e837729eb11c7d3c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlatformMockTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_linux_partial_failure_still_returns_valid_snapshot.reader",
      "name": "reader",
      "kind": "function",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L404-L407",
      "signature": "def reader(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2210fedf9390cc2067c5a702945731ab11478201bc398f8b5c69272848ea0e85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_macos_sysctl_and_unified_memory",
      "name": "test_macos_sysctl_and_unified_memory",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L304-L334",
      "signature": "def test_macos_sysctl_and_unified_memory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04f3323f4dce51b43e6aca71f696182b8c55103296e9c6cebf37c8186fbd0164",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlatformMockTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups",
      "name": "test_windows_psutil_affinity_and_processor_groups",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L336-L362",
      "signature": "def test_windows_psutil_affinity_and_processor_groups(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0167b205e5ebb2853748ecec78c48e9122665b7a6563bab3d8ce842ce5438409",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlatformMockTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups.FakeProcess",
      "name": "FakeProcess",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L339-L341",
      "signature": "class FakeProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "02945d67e674111ef25422c1aec8f050b55eafd32102930a2c29458e6d518126",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups.FakeProcess.cpu_affinity",
      "name": "cpu_affinity",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L340-L341",
      "signature": "def cpu_affinity(self) -> list[int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "62cbcaeecfb9154b6b4fe15f04182d7b2279cb983114b7baf9c44e3bcc1b77c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeProcess"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_memory_is_kept_separate_from_limits",
      "name": "test_windows_psutil_memory_is_kept_separate_from_limits",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L364-L394",
      "signature": "def test_windows_psutil_memory_is_kept_separate_from_limits(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b540847d02c1dfb241f33425bed43797d0c6d9d57165269ba60c8a11ec1b8a72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlatformMockTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SchedulerTests",
      "name": "SchedulerTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L272-L300",
      "signature": "class SchedulerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "596502230865fc095f5d2f25170a31ca026c43c538d4ac7d4489e6ffad31b0f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SchedulerTests.test_slurm_named_allocation_is_bounded_and_redacted",
      "name": "test_slurm_named_allocation_is_bounded_and_redacted",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L273-L288",
      "signature": "def test_slurm_named_allocation_is_bounded_and_redacted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20dca4f037aaa52fb20d556b14a653fb2adaf9e1fc108e4fad06ed0e013b887b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchedulerTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SchedulerTests.test_visibility_values_are_summarized_not_returned",
      "name": "test_visibility_values_are_summarized_not_returned",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L290-L300",
      "signature": "def test_visibility_values_are_summarized_not_returned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "745230faef537f8b108a27255ba2aca0fb4e111913fc13ff05118ff4437d45f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SchedulerTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SnapshotToolTests",
      "name": "SnapshotToolTests",
      "kind": "class",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L452-L478",
      "signature": "class SnapshotToolTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fe68002e592411d60631d9a1d17d7d18c9264aef36c859b88d0b7c5dc869633",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_diff_ignores_timestamp_by_default",
      "name": "test_diff_ignores_timestamp_by_default",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L464-L478",
      "signature": "def test_diff_ignores_timestamp_by_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2dce56d2ee1f6e32d4ed43eced3d0bbc9f046d734fcb4e9b0107c102443760b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SnapshotToolTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_validator_accepts_canonical_snapshot",
      "name": "test_validator_accepts_canonical_snapshot",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L453-L455",
      "signature": "def test_validator_accepts_canonical_snapshot(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad8385c8b8a3a18605bd16d216f1bd0687775df036c98d48dee1f4a7eff231eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SnapshotToolTests"
    },
    {
      "id": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_validator_rejects_impossible_disk_order",
      "name": "test_validator_rejects_impossible_disk_order",
      "kind": "method",
      "path": "tests/get-available-resources/test_scripts.py",
      "span": "L457-L462",
      "signature": "def test_validator_rejects_impossible_disk_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d47a9e95eb206d22eadfab20149877b24c95d4daa93ccd6de5b8f81304a2f6e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SnapshotToolTests"
    },
    {
      "id": "tests/gget/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/gget/test_scripts.py",
      "span": "L1-L556",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c022ac81e4b5dacb240d8595b8f69eb383f0fd04295be5ebea6f67ffedb0eb50",
      "chars": 23651,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#archs4_frame",
      "name": "archs4_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L292-L300",
      "signature": "def archs4_frame() -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "06b507b00fb1bc0fdcb253f01efcfcfadb19c3c7c214f91a06e530f7b8213bfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "name": "BatchSequenceAnalysisTests",
      "kind": "class",
      "path": "tests/gget/test_scripts.py",
      "span": "L144-L250",
      "signature": "class BatchSequenceAnalysisTests(WorkingDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c766258f3b31a176d85a658bd2564bc06803f24d9b2bf51773395b77b2d0117f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "name": "fasta",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L145-L150",
      "signature": "def fasta(self, records: int = 2) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "71dffd4c5dc5f916ba09db9e3f98514120b119aecb3462b36e0a241999c8994f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "name": "test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L181-L192",
      "signature": "def test_a_failed_blast_does_not_abort_the_remaining_sequences(self) -> None: # A batch run that dies on sequence 1 of 50 is useless.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a89c38a81dadafbd83233d7938d9e343137b668d90c4dbb3639d63d93b38a5c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_single_sequence_is_not_aligned",
      "name": "test_a_single_sequence_is_not_aligned",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L206-L213",
      "signature": "def test_a_single_sequence_is_not_aligned(self) -> None: # An alignment of one sequence is meaningless and wastes a request.",
      "exported": true,
      "origin": "ast",
      "body_hash": "66e434263258507bfbc2e7fd29bba0111bd7e1911f88ad54d43c84b78507dbe3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_asks_gget_to_write_the_file",
      "name": "test_alignment_asks_gget_to_write_the_file",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L194-L204",
      "signature": "def test_alignment_asks_gget_to_write_the_file(self) -> None: # gget.muscle returns None, so the alignment must be requested via # `out=`; writing the return value would raise TypeError.",
      "exported": true,
      "origin": "ast",
      "body_hash": "46c36d000463532d5df284e4fa68b8065e27f0851d10ff7a4800535a98c71cc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_can_be_switched_off",
      "name": "test_alignment_can_be_switched_off",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L215-L224",
      "signature": "def test_alignment_can_be_switched_off(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b56ae8eaea709fb54091207c95b46aa19a09d2a9a1be9755ef04add73e02b0d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_an_empty_fasta_file_runs_no_queries",
      "name": "test_an_empty_fasta_file_runs_no_queries",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L240-L250",
      "signature": "def test_an_empty_fasta_file_runs_no_queries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b602d8602f2cfd573d195bbc98002c500d7d6ef2b9b1d6a5f6d9e33d90edd12b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "name": "test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L152-L169",
      "signature": "def test_each_sequence_is_blasted_once_with_the_documented_parameters(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "72051710f896f8d95333bf6e42499d092ab520a022dc218aca3351c2830edea9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_one_csv_is_written_per_sequence_named_after_it",
      "name": "test_one_csv_is_written_per_sequence_named_after_it",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L171-L179",
      "signature": "def test_one_csv_is_written_per_sequence_named_after_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aaca89c473dc1457642420cffe6c4c1a88f9a6449102f933fd24a2725681991d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_structure_prediction_stays_a_no_op_even_when_requested",
      "name": "test_structure_prediction_stays_a_no_op_even_when_requested",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L226-L238",
      "signature": "def test_structure_prediction_stays_a_no_op_even_when_requested(self) -> None: # The AlphaFold call is commented out on purpose (it needs `gget setup # alphafold` and hours of compute); the flag must not silently start it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5c3d63d2e7abd876a2d2712e948cc05107a4e9d53ee32a1b61d915c7f3ae3c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSequenceAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#blast_frame",
      "name": "blast_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L96-L100",
      "signature": "def blast_frame(description: str = \"hypothetical protein\") -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d2b602a7849109f65b08faf52a5eb19cd13e47f0e7af6e82dff934a5d776d54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#correlation_frame",
      "name": "correlation_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L426-L429",
      "signature": "def correlation_frame() -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "84624f26f574443e71d17a732d64e984131dacab1c6b35d835259088313e889d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#diseases_frame",
      "name": "diseases_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L432-L435",
      "signature": "def diseases_frame() -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "893adb792765a4e68e9a1c849e6d6abe610d1925a5232fea8bd7c567c3b57ba5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "name": "EnrichmentPipelineTests",
      "kind": "class",
      "path": "tests/gget/test_scripts.py",
      "span": "L303-L404",
      "signature": "class EnrichmentPipelineTests(WorkingDirectoryTestCase): #: The five Enrichr categories the script sweeps, in order.",
      "exported": true,
      "origin": "ast",
      "body_hash": "62836d576b895c1cc94c77043d431940548825ddb00cb48b2f369eab1f21b5ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_database_with_no_hits_is_left_out_of_the_summary",
      "name": "test_a_database_with_no_hits_is_left_out_of_the_summary",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L345-L356",
      "signature": "def test_a_database_with_no_hits_is_left_out_of_the_summary(self) -> None: # Reporting an empty category as a result would overstate the analysis.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae9b06d8a01ce812fd302f9ace8c7d42eff54ee726d435804c265136519082b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_failing_database_does_not_stop_the_sweep",
      "name": "test_a_failing_database_does_not_stop_the_sweep",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L358-L373",
      "signature": "def test_a_failing_database_does_not_stop_the_sweep(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ad4e9d8cb917fe47e76de7d71f66c1ee2f35457129dc34734a1ec6a35b6a377",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_an_expression_failure_leaves_the_enrichment_results_intact",
      "name": "test_an_expression_failure_leaves_the_enrichment_results_intact",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L397-L404",
      "signature": "def test_an_expression_failure_leaves_the_enrichment_results_intact(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "445525626a24597b4005f7a8f01c3ced72eeae214d45fb38a47ea1bbce89dff2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_every_documented_database_is_queried_once_in_order",
      "name": "test_every_documented_database_is_queried_once_in_order",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L307-L314",
      "signature": "def test_every_documented_database_is_queried_once_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7fcee741d811c5f4160519d3022b0e5b9d5014baaff88c5d5596743d1926a41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_expression_lookups_are_capped_at_five_genes",
      "name": "test_expression_lookups_are_capped_at_five_genes",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L375-L386",
      "signature": "def test_expression_lookups_are_capped_at_five_genes(self) -> None: # One ARCHS4 request per gene would make a 2,000-gene list unusable.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff220acdcd5dd2409218f5b29a7295bf865dbf1a3d331b40ca9abff26d7aa363",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_one_csv_per_database_plus_a_summary_is_written",
      "name": "test_one_csv_per_database_plus_a_summary_is_written",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L333-L343",
      "signature": "def test_one_csv_per_database_plus_a_summary_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bffc0d91f245087658f7384dbb11482e35adfb0c3b7a6d4f13a50b0aa837ebec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_species_background_and_plotting_are_forwarded",
      "name": "test_species_background_and_plotting_are_forwarded",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L316-L331",
      "signature": "def test_species_background_and_plotting_are_forwarded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41aba0bef6aa101f9b38bd39e723f9d7c3d9091f4e7dfdb789df0a534b027bfd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_the_top_tissue_is_the_one_with_the_highest_median",
      "name": "test_the_top_tissue_is_the_one_with_the_highest_median",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L388-L395",
      "signature": "def test_the_top_tissue_is_the_one_with_the_highest_median(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "442e3ab342238c106e79dded891bf11b716af920e5b1eb0c113c4428c1667580",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnrichmentPipelineTests"
    },
    {
      "id": "tests/gget/test_scripts.py#enrichr_frame",
      "name": "enrichr_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L282-L289",
      "signature": "def enrichr_frame(term: str = \"p53 signaling pathway\") -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "d55195887b8d58d3a468c812a10ec1372833579ed8f8e9e996612f7bba6d2cfd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests",
      "name": "FastaReadingTests",
      "kind": "class",
      "path": "tests/gget/test_scripts.py",
      "span": "L103-L141",
      "signature": "class FastaReadingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15b8c716d716c2d2248b81d4af50604c312333292ef90e3d54d0f525d30db8ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "name": "read",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L109-L112",
      "signature": "def read(self, text: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0e2d9c0773c151bcaf50778672ac74e98722d2dba25feb29d8a1c0944b225ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L104-L107",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.test_a_header_with_no_sequence_is_still_a_record",
      "name": "test_a_header_with_no_sequence_is_still_a_record",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L134-L138",
      "signature": "def test_a_header_with_no_sequence_is_still_a_record(self) -> None: # Dropping it would silently renumber every later sequence.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdbf77ef2c04a750aca3aa4a3b59a8f002b89280fdcf01339d8ccd19359979dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.test_a_missing_trailing_newline_is_tolerated",
      "name": "test_a_missing_trailing_newline_is_tolerated",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L140-L141",
      "signature": "def test_a_missing_trailing_newline_is_tolerated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8283071959d87a2cd3accca7d8112058a33f1f52fc4d0125b9f66dbd41dbe9bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.test_an_empty_file_yields_no_records",
      "name": "test_an_empty_file_yields_no_records",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L131-L132",
      "signature": "def test_an_empty_file_yields_no_records(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2886a02dc7d6de43c3d697118dc1252a1767a9e97f13c6bef61d0f93fcc3bd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.test_the_final_record_is_not_dropped",
      "name": "test_the_final_record_is_not_dropped",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L120-L125",
      "signature": "def test_the_final_record_is_not_dropped(self) -> None: # The loop flushes on the next '>', so the last record needs the # explicit flush after the file ends.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f75ea011f6ea6869e4b11cce13411632916da27c877ad0b58e3613b970c17f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.test_the_identifier_excludes_the_angle_bracket",
      "name": "test_the_identifier_excludes_the_angle_bracket",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L127-L129",
      "signature": "def test_the_identifier_excludes_the_angle_bracket(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "76445fb7e7f72e1db35de3fac64a756a3086c3098a0077f5bf43c09601ade9f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#FastaReadingTests.test_wrapped_sequence_lines_are_joined",
      "name": "test_wrapped_sequence_lines_are_joined",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L114-L118",
      "signature": "def test_wrapped_sequence_lines_are_joined(self) -> None: # FASTA wraps at 60-80 columns; keeping the newlines would corrupt # every downstream BLAST query.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0830d8031e0675d6c25da6e55032876466ab5028958dbe116e3efba9c7030a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastaReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "name": "GeneAnalysisTests",
      "kind": "class",
      "path": "tests/gget/test_scripts.py",
      "span": "L438-L551",
      "signature": "class GeneAnalysisTests(WorkingDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "af563790dcbbeba564098e090639ec43ae00656db6a7a47c49ce63498c411b6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "name": "stub_everything",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L439-L450",
      "signature": "def stub_everything(self) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a5e5c6fc1409733cd20234247a559ac3aa54126cb58b0723cea54953a7758d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_a_gene_that_does_not_exist_stops_before_any_other_request",
      "name": "test_a_gene_that_does_not_exist_stops_before_any_other_request",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L463-L472",
      "signature": "def test_a_gene_that_does_not_exist_stops_before_any_other_request(self) -> None: # Without the early return the Ensembl ID lookup would index an empty # frame and raise instead of reporting \"not found\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "0539564c54427e8e9cbc1b43d2d4d1c2c5bf78369a55f803faf4dfb589268376",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_already_joined_string_is_written_unchanged",
      "name": "test_an_already_joined_string_is_written_unchanged",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L499-L505",
      "signature": "def test_an_already_joined_string_is_written_unchanged(self) -> None: # Older gget releases returned one string; both shapes must work.",
      "exported": true,
      "origin": "ast",
      "body_hash": "98a7c58402314093f9c8eedd58b2a8eccfcf73c9ef46905200412e3eb2cc36cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_empty_drug_table_is_not_written",
      "name": "test_an_empty_drug_table_is_not_written",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L535-L539",
      "signature": "def test_an_empty_drug_table_is_not_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f39951efbb85f0bcefcb2da7c1907c9ad53ff7550758f3eb354e84d524dacf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_explicit_prefix_is_used_verbatim",
      "name": "test_an_explicit_prefix_is_used_verbatim",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L512-L515",
      "signature": "def test_an_explicit_prefix_is_used_verbatim(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "83c3dfd7dc8d080bb1d61167d0147c4e96598dddabf095f2bdfc2635fc79dc03",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_opentargets_resources_are_requested_with_a_limit",
      "name": "test_both_opentargets_resources_are_requested_with_a_limit",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L525-L533",
      "signature": "def test_both_opentargets_resources_are_requested_with_a_limit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d8d021d478f3bc631db6d1902dcb7f70e750addd3225f7dbe1de00ce19292f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_sequence_forms_are_requested",
      "name": "test_both_sequence_forms_are_requested",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L482-L489",
      "signature": "def test_both_sequence_forms_are_requested(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5af530e4b31da13a5b7d4e32c7167d62d81ce27dfb8ef4b153d04b6825dda3b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_expression_and_correlation_are_separate_archs4_queries",
      "name": "test_expression_and_correlation_are_separate_archs4_queries",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L517-L523",
      "signature": "def test_expression_and_correlation_are_separate_archs4_queries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2079dad403c7906845516a974dd69f6ced8349c3730d03797353bf40878943b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_optional_lookups_may_fail_without_failing_the_run",
      "name": "test_optional_lookups_may_fail_without_failing_the_run",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L541-L551",
      "signature": "def test_optional_lookups_may_fail_without_failing_the_run(self) -> None: # Steps 4-7 are wrapped in warnings on purpose: the sequences and # annotations already retrieved are worth keeping.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c27b26c5b42648ecd5d1a6e9319aade320a0b49a6f99a9e2c3c3d9c42d235c65",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_ensembl_identifier_from_the_search_drives_every_lookup",
      "name": "test_the_ensembl_identifier_from_the_search_drives_every_lookup",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L474-L480",
      "signature": "def test_the_ensembl_identifier_from_the_search_drives_every_lookup(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d48f66b1c0c9ab382bffab56c0dde9c6e03dace339d9aebfdc647d5182a85c48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_fasta_files_hold_the_lines_gget_returned",
      "name": "test_the_fasta_files_hold_the_lines_gget_returned",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L491-L497",
      "signature": "def test_the_fasta_files_hold_the_lines_gget_returned(self) -> None: # gget.seq returns a list of FASTA lines; writing the list itself # raises TypeError, so the join is what makes the file valid.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c50490365a70ad8c62ffe275588f56171e6a0b485279a3df45404ab074a90f33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_output_prefix_defaults_to_the_lowercased_gene",
      "name": "test_the_output_prefix_defaults_to_the_lowercased_gene",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L507-L510",
      "signature": "def test_the_output_prefix_defaults_to_the_lowercased_gene(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "550bb2b2981defe6b3d5f190ee4569bc961cb192a3687a2e07381e2e36e9b132",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_search_is_scoped_to_the_species_and_a_single_hit",
      "name": "test_the_search_is_scoped_to_the_species_and_a_single_hit",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L452-L461",
      "signature": "def test_the_search_is_scoped_to_the_species_and_a_single_hit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f63f99d263ab30deb69e4fb4f0fda379fdc9c80f2d07eda4e9c95435e1a4de5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneAnalysisTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests",
      "name": "GeneListReadingTests",
      "kind": "class",
      "path": "tests/gget/test_scripts.py",
      "span": "L253-L279",
      "signature": "class GeneListReadingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d74e756a565e353c4967eb688fb4377822094feae16b42103e77f29a45c2e30",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L254-L257",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_csv_read_as_text_would_keep_the_commas",
      "name": "test_a_csv_read_as_text_would_keep_the_commas",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L273-L276",
      "signature": "def test_a_csv_read_as_text_would_keep_the_commas(self) -> None: # Guards the suffix check: the same content named .txt is not a CSV.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0266f634b30201f31769133e10be1e4471a204419d2fd3f141bce3eb4865e540",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_csv_takes_the_first_column_and_skips_the_header",
      "name": "test_a_csv_takes_the_first_column_and_skips_the_header",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L268-L271",
      "signature": "def test_a_csv_takes_the_first_column_and_skips_the_header(self) -> None: # The header row must not become a gene symbol.",
      "exported": true,
      "origin": "ast",
      "body_hash": "aab0c2647c166bdab19b3d4e0b54dd1ceddf97b6843c4f083c99bfde18d3e9ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_plain_list_drops_blank_lines_and_whitespace",
      "name": "test_a_plain_list_drops_blank_lines_and_whitespace",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L264-L266",
      "signature": "def test_a_plain_list_drops_blank_lines_and_whitespace(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b259f59f1254e51a4e8da85d513dffa19d0deb02f8de5e100d769e1564ab1e47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests.test_an_empty_list_file_yields_no_genes",
      "name": "test_an_empty_list_file_yields_no_genes",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L278-L279",
      "signature": "def test_an_empty_list_file_yields_no_genes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "244f243e1432ac0129cb77307b31b9ed69dab8b953dbc9f64dcd779657783685",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#GeneListReadingTests.write",
      "name": "write",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L259-L262",
      "signature": "def write(self, name: str, text: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8b13993675bd29a7a78faa4758fd96efc5e2cfaa79d631ded99047038cc0beb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/gget/test_scripts.py#info_frame",
      "name": "info_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L420-L423",
      "signature": "def info_frame() -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "661ad0227c6a41f601604ee46832a3810589143130fce73bc700c5a1a98999a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#search_frame",
      "name": "search_frame",
      "kind": "function",
      "path": "tests/gget/test_scripts.py",
      "span": "L407-L417",
      "signature": "def search_frame(ensembl_id: str = \"ENSG00000141510\") -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "43767e7ede9d61b8513e970c38de302e328d7a3b0120ba4090c7bbdf482edefa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "name": "WorkingDirectoryTestCase",
      "kind": "class",
      "path": "tests/gget/test_scripts.py",
      "span": "L53-L93",
      "signature": "class WorkingDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e25a87f8edc81010ca659e6b386a33bd14dc32f18375f96abaca814b45634bd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "name": "quietly",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L90-L93",
      "signature": "def quietly(self, function, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d9376db02ba16a6d99129ef62dbc776a91c1165778d61042d678374a6b6f6f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkingDirectoryTestCase"
    },
    {
      "id": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L56-L77",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fc760121825136a0f6a9e52fe4a02e01f4c2e2448139fde2af7a8ae1059fb19",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkingDirectoryTestCase"
    },
    {
      "id": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "name": "stub",
      "kind": "method",
      "path": "tests/gget/test_scripts.py",
      "span": "L79-L88",
      "signature": "def stub(self, name: str, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "584d811dcae0c0e60839bc15d42ba8e91dd7cda8b32c5aaa0c1fc34efd5e69cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkingDirectoryTestCase"
    },
    {
      "id": "tests/gtars/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/gtars/test_scripts.py",
      "span": "L1-L432",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4288a6f1c0565bfc2f17288064969419251d74d27c3643a211bf2e9e36ac47c7",
      "chars": 15245,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#ArtifactTests",
      "name": "ArtifactTests",
      "kind": "class",
      "path": "tests/gtars/test_scripts.py",
      "span": "L402-L427",
      "signature": "class ArtifactTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a133ae505c8589280b6955701adf62c337c2f6f841517a25a6b9ee5adb8666b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#ArtifactTests.test_wheel_filename_and_checksum_are_screened_without_loading",
      "name": "test_wheel_filename_and_checksum_are_screened_without_loading",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L403-L427",
      "signature": "def test_wheel_filename_and_checksum_are_screened_without_loading(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "90cc5bbedd0fa8f10b888f6404e28c6d66970def16c343202522d789b9dc615d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#BedValidatorTests",
      "name": "BedValidatorTests",
      "kind": "class",
      "path": "tests/gtars/test_scripts.py",
      "span": "L130-L185",
      "signature": "class BedValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "23abd0621f29b58a83042ff1b628b2157f9716602da574320097665202e256ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#BedValidatorTests.test_bad_bounds_and_url_are_rejected",
      "name": "test_bad_bounds_and_url_are_rejected",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L159-L185",
      "signature": "def test_bad_bounds_and_url_are_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebb9f9a07aafdd0449d832c6ec96804b38ddaa60e746c09519f07d77a266f3f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BedValidatorTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#BedValidatorTests.test_valid_local_bed",
      "name": "test_valid_local_bed",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L131-L157",
      "signature": "def test_valid_local_bed(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f8ac5e986a10159a0922e9102d24b1c568004c295f60c939ed0f59d130a2bcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BedValidatorTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#CliResult",
      "name": "CliResult",
      "kind": "class",
      "path": "tests/gtars/test_scripts.py",
      "span": "L53-L57",
      "signature": "class CliResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfe9293d90941588ff0528871097444f50610927e99f1fa58ccfd30609f46e84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#CliResult.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L54-L57",
      "signature": "def __init__(self, returncode: int, stdout: str, stderr: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5c537fce1a4a9f62e89e45f1acead0e1295cbfa3c9a2c259f70b3155734825af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliResult"
    },
    {
      "id": "tests/gtars/test_scripts.py#payload",
      "name": "payload",
      "kind": "function",
      "path": "tests/gtars/test_scripts.py",
      "span": "L81-L87",
      "signature": "def payload(completed: CliResult) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b91c72ce2a054bc31739d2364f5db748a18101d55d2992b38b4ab4e3cb19a3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#PlanningTests",
      "name": "PlanningTests",
      "kind": "class",
      "path": "tests/gtars/test_scripts.py",
      "span": "L188-L304",
      "signature": "class PlanningTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3caf34a7c712043f472f3ca3c92ceb9f5d0c3bede417bd9b489c654e71b90a9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#PlanningTests.test_coverage_preflight_requires_sorted_bounded_input",
      "name": "test_coverage_preflight_requires_sorted_bounded_input",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L252-L304",
      "signature": "def test_coverage_preflight_requires_sorted_bounded_input(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cd86743288ca4dfde05ce5acd5728627fd403fdfbba8414371a708f9101a1fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanningTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#PlanningTests.test_overlap_and_coverage_plans_are_fixed_dry_runs",
      "name": "test_overlap_and_coverage_plans_are_fixed_dry_runs",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L189-L250",
      "signature": "def test_overlap_and_coverage_plans_are_fixed_dry_runs(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "93ff3c91bf0b75f659b9f9538c96ebc5593fb5a64edbf20db338a449c6c7095c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanningTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "tests/gtars/test_scripts.py",
      "span": "L60-L78",
      "signature": "def run_cli(name: str, *arguments: str, cwd: Path | None = None) -> CliResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "387e56e8a5f0bbe8e809060b36bcba9bdd036f5936119f4588efbb6fdefac2da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#sha512t24u",
      "name": "sha512t24u",
      "kind": "function",
      "path": "tests/gtars/test_scripts.py",
      "span": "L90-L92",
      "signature": "def sha512t24u(sequence: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4f2a54fbf020643b6a234cd21f5f1872bb518b7307bab0907757381013dcc2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#StaticSafetyTests",
      "name": "StaticSafetyTests",
      "kind": "class",
      "path": "tests/gtars/test_scripts.py",
      "span": "L95-L127",
      "signature": "class StaticSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e39cd4ea56f777cae8885701435293dec24039966c92c99f0305d0741bbe602f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#StaticSafetyTests.test_all_dependency_free_clis_have_help",
      "name": "test_all_dependency_free_clis_have_help",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L96-L101",
      "signature": "def test_all_dependency_free_clis_have_help(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0212e992744e5fded4a3f44f2f29ca7c852a6f00e946f74fc6b30c137c3f8fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#StaticSafetyTests.test_bundled_reference_inventory_and_relative_links",
      "name": "test_bundled_reference_inventory_and_relative_links",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L103-L127",
      "signature": "def test_bundled_reference_inventory_and_relative_links(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "069ee65f3321630182782a4c5a30de53f3ae61e7ab6537b47998762fd28b6549",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests",
      "name": "TokenizerAndRefgetTests",
      "kind": "class",
      "path": "tests/gtars/test_scripts.py",
      "span": "L307-L399",
      "signature": "class TokenizerAndRefgetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "10fd3a6ac26dec3dedd06ef9de3ceb151117ca6e40a57c37c1998587527b1267",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_refget_digest_validation_uses_known_acgt_digest",
      "name": "test_refget_digest_validation_uses_known_acgt_digest",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L363-L399",
      "signature": "def test_refget_digest_validation_uses_known_acgt_digest(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "095a7e43aa63f71c4574e5780f16416fb7dc80cf0c02075b393660cfcd6606fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TokenizerAndRefgetTests"
    },
    {
      "id": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_tokenizer_manifest_matches_exact_universe",
      "name": "test_tokenizer_manifest_matches_exact_universe",
      "kind": "method",
      "path": "tests/gtars/test_scripts.py",
      "span": "L308-L361",
      "signature": "def test_tokenizer_manifest_matches_exact_universe(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d70055a1b8c8e30dc34aa74832e72cd4008bf0054b8f53b5ef0b75934d1a0f81",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TokenizerAndRefgetTests"
    },
    {
      "id": "tests/gtars/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/gtars/test_static.py",
      "span": "L1-L57",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "39e006f9d46075bf26879a2a6efc2505c0cf650794aca514d4b6589cc3faf6f4",
      "chars": 1978,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_static.py#_word",
      "name": "_word",
      "kind": "function",
      "path": "tests/gtars/test_static.py",
      "span": "L13-L14",
      "signature": "def _word(*codepoints: int) -> str",
      "exported": false,
      "origin": "ast",
      "body_hash": "34997dbd67b9c964b11a962c9b3c136a6c8b2ee2b762ee0e0ca67cf477858c54",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_static.py#StaticAstTests",
      "name": "StaticAstTests",
      "kind": "class",
      "path": "tests/gtars/test_static.py",
      "span": "L17-L52",
      "signature": "class StaticAstTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "996339a8351bc3f23c60ef9043fda5e182b62023d5e5fda2974dec7ea4e07752",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/gtars/test_static.py#StaticAstTests.test_scripts_parse_and_omit_dangerous_capabilities",
      "name": "test_scripts_parse_and_omit_dangerous_capabilities",
      "kind": "method",
      "path": "tests/gtars/test_static.py",
      "span": "L18-L52",
      "signature": "def test_scripts_parse_and_omit_dangerous_capabilities(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "71d99114bc0901a7a1e668fa7283cf3f7bebfc42b28b76e5ce136fc1ae7557ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticAstTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L1-L268",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a1a8ecc45534cbb9cc47eeb1ce92c03a23f9591199e9f280105df373c37939d3",
      "chars": 10892,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hugging-science/test_scripts.py#CatalogueSourceTests",
      "name": "CatalogueSourceTests",
      "kind": "class",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L229-L263",
      "signature": "class CatalogueSourceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a747f9ff489bb0789f48e204ca734ba15fe9d26574237b2fa0f6d6d87ff1e26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_network_failures_exit_with_a_message_rather_than_a_traceback",
      "name": "test_network_failures_exit_with_a_message_rather_than_a_traceback",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L251-L263",
      "signature": "def test_network_failures_exit_with_a_message_rather_than_a_traceback(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1be37eb9bff1dd443b776034130ee57e0b228d93787f968faefc10d28a794ac5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueSourceTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_requests_identify_the_skill_and_carry_a_timeout",
      "name": "test_requests_identify_the_skill_and_carry_a_timeout",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L241-L249",
      "signature": "def test_requests_identify_the_skill_and_carry_a_timeout(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1645a78b11c756bcc6ae02caf310984315c9e0aeb95e412719fc332d82a4a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueSourceTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_the_base_url_is_https",
      "name": "test_the_base_url_is_https",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L238-L239",
      "signature": "def test_the_base_url_is_https(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff2e6feddd311989f728859935a205e5118bffb4d20bba1b90375e21800934f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueSourceTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_topic_slugs_are_lowercase_hyphenated_and_sorted",
      "name": "test_topic_slugs_are_lowercase_hyphenated_and_sorted",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L230-L236",
      "signature": "def test_topic_slugs_are_lowercase_hyphenated_and_sorted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d5bac786fe620950dca962b0a3242ad6a44f621e6b5f993a26f4a1bc64e982b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueSourceTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests",
      "name": "FilterTests",
      "kind": "class",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L138-L188",
      "signature": "class FilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4be40fa339e7f510ce8382e5d424b947681261611baef8e1e031e33eb9582a1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L139-L140",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7781532c8ddd934093cbb4c9809ff09409d8c01cb941b6421da6c4c75e6c88cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_a_tag_also_matches_the_type_field",
      "name": "test_a_tag_also_matches_the_type_field",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L176-L180",
      "signature": "def test_a_tag_also_matches_the_type_field(self) -> None: # `matches_filter` falls back to `type` so `--tag model` still works # on entries that carry no explicit tags.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c4002ab9ad8ee0651a8ae9deb48270939ea09b1e1835a16244159d2871c62e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_an_unknown_kind_matches_nothing_rather_than_everything",
      "name": "test_an_unknown_kind_matches_nothing_rather_than_everything",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L186-L188",
      "signature": "def test_an_unknown_kind_matches_nothing_rather_than_everything(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3c3cdfa8a1a07c7a706b5b8f947716200eb3576637a113e83031a2acb28dd44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_each_cli_filter_value_selects_its_section",
      "name": "test_each_cli_filter_value_selects_its_section",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L145-L150",
      "signature": "def test_each_cli_filter_value_selects_its_section(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f592af3549dae3002e6efa9a6cc54e3b916277603b4a730078a260a6e240407",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_kind_and_tag_must_both_match",
      "name": "test_kind_and_tag_must_both_match",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L182-L184",
      "signature": "def test_kind_and_tag_must_both_match(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b93f8559a31d3c91eeb2ebc0614be51bb998f5ea7a33c77819f6106194b27051",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_kind_matching_is_case_insensitive",
      "name": "test_kind_matching_is_case_insensitive",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L168-L170",
      "signature": "def test_kind_matching_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "34901932878c009cb4d84749c47301ab827fd6b94483c3d9d8ae915ab8c74c12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_no_filter_matches_everything",
      "name": "test_no_filter_matches_everything",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L142-L143",
      "signature": "def test_no_filter_matches_everything(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7e58490f2c4057ec3356aed965acb6b21e635faea2098e5d1ac02903564fba1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_tag_matching_is_a_case_insensitive_substring",
      "name": "test_tag_matching_is_a_case_insensitive_substring",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L172-L174",
      "signature": "def test_tag_matching_is_a_case_insensitive_substring(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8408f498636289bd77624c3112eafa8f787077157b66ba6a7fbda437529811ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_the_aliases_absorb_singular_section_headings_upstream",
      "name": "test_the_aliases_absorb_singular_section_headings_upstream",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L152-L160",
      "signature": "def test_the_aliases_absorb_singular_section_headings_upstream(self) -> None: # The alias sets map one CLI value onto the section spellings the # source markdown may use, so `--filter datasets` still works when a # topic file writes `## Dataset`.",
      "exported": true,
      "origin": "ast",
      "body_hash": "dee09561e7e16eaa6e48e10b2f16571e7926571f6ec29307cc6a15fb7a8c89a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#FilterTests.test_the_cli_only_offers_the_aliased_filter_values",
      "name": "test_the_cli_only_offers_the_aliased_filter_values",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L162-L166",
      "signature": "def test_the_cli_only_offers_the_aliased_filter_values(self) -> None: # matches_filter falls back to an exact section match for anything that # is not an alias key, so the CLI must not offer values outside them.",
      "exported": true,
      "origin": "ast",
      "body_hash": "344cda6d78670230ed5f3f9e65adc5598e7ee11058225154a6d59c10d84ddeb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests",
      "name": "ParserTests",
      "kind": "class",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L65-L135",
      "signature": "class ParserTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a6e1672cd90f410c431658203c83879f7ac61ac8ed29dd9ef6f01eacbecf0af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L66-L67",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7781532c8ddd934093cbb4c9809ff09409d8c01cb941b6421da6c4c75e6c88cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_an_entry_before_any_section_is_labelled_unknown",
      "name": "test_an_entry_before_any_section_is_labelled_unknown",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L116-L118",
      "signature": "def test_an_entry_before_any_section_is_labelled_unknown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d251ada8622f52b233132880ade5a0c964bc8dd91b94c9777a83ab6908d13c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_an_entry_without_prose_has_an_empty_description",
      "name": "test_an_entry_without_prose_has_an_empty_description",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L106-L107",
      "signature": "def test_an_entry_without_prose_has_an_empty_description(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eee62b2a16d422a9e3882a549dcd8cbce46c46361a8c0a1110dfd36ed8d14e33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_content_before_the_first_entry_is_ignored",
      "name": "test_content_before_the_first_entry_is_ignored",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L109-L114",
      "signature": "def test_content_before_the_first_entry_is_ignored(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e928d21e898c9fb0ef3426d1f63fd2ed03e0568ce0c70b039b21845c8a33bd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_empty_input_yields_no_entries",
      "name": "test_empty_input_yields_no_entries",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L127-L129",
      "signature": "def test_empty_input_yields_no_entries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "461e7029e59400b08d3ae115b4cac62ce0421327ab92c42ee0e7b3c71d08a378",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_every_entry_is_found",
      "name": "test_every_entry_is_found",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L69-L78",
      "signature": "def test_every_entry_is_found(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "92bdb8d147e5b4052d861e8ef4b392dffbe89feeed78dad589116df0e727fb27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_huggingface_link_and_url_keys_all_fill_the_url",
      "name": "test_huggingface_link_and_url_keys_all_fill_the_url",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L95-L98",
      "signature": "def test_huggingface_link_and_url_keys_all_fill_the_url(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46eebdc47b1d84e0e9dae33fda9cf8c38d8e7446c51d91b814bb4836a87b722b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_metadata_bullets_populate_the_record",
      "name": "test_metadata_bullets_populate_the_record",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L87-L93",
      "signature": "def test_metadata_bullets_populate_the_record(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed61db15b38c48738d1fbb5890eac7520616b755c45cecef9a2c69f066164816",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_prose_after_the_bullets_becomes_the_description",
      "name": "test_prose_after_the_bullets_becomes_the_description",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L100-L104",
      "signature": "def test_prose_after_the_bullets_becomes_the_description(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9da96899dc756e3b438a8ad7191a3b073b4a6362d9207ebdabd02653998d6bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_tags_are_split_and_blank_entries_discarded",
      "name": "test_tags_are_split_and_blank_entries_discarded",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L131-L135",
      "signature": "def test_tags_are_split_and_blank_entries_discarded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c79759cfd0f7fdbb6fe5afc045c306f17b7f5b5bb134fbab7d7bbe5fd227ad0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_the_count_suffix_is_stripped_from_the_section_label",
      "name": "test_the_count_suffix_is_stripped_from_the_section_label",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L80-L85",
      "signature": "def test_the_count_suffix_is_stripped_from_the_section_label(self) -> None: # \"## Datasets (2)\" must land in the same bucket as \"## Datasets\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "3baeaa67bd8175ca3215413fa9f28eb9445daf73cd382ad46324e55a0c2f8af2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#ParserTests.test_unrecognised_bullet_keys_are_dropped_not_misfiled",
      "name": "test_unrecognised_bullet_keys_are_dropped_not_misfiled",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L120-L125",
      "signature": "def test_unrecognised_bullet_keys_are_dropped_not_misfiled(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93dc2e74ad04bf1dc512975d23c5ef63c054dbcdcee9e6417c702994783429b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests",
      "name": "RenderTests",
      "kind": "class",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L191-L226",
      "signature": "class RenderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6fa5a95f3058e159004c0c88b87dfccaa73af73a35a2372ae138e80998a076d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L192-L193",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7781532c8ddd934093cbb4c9809ff09409d8c01cb941b6421da6c4c75e6c88cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests.test_a_rendered_catalogue_round_trips_through_the_parser",
      "name": "test_a_rendered_catalogue_round_trips_through_the_parser",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L217-L226",
      "signature": "def test_a_rendered_catalogue_round_trips_through_the_parser(self) -> None: # render_entries emits the same H2/H3 shape the parser reads, so a # round trip must preserve every title and section.",
      "exported": true,
      "origin": "ast",
      "body_hash": "911045fe88928a08b19df4bcd26dcfda0e0bd7e8794c6eff87ffcd841ffc2918",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests.test_an_empty_result_says_so_rather_than_rendering_nothing",
      "name": "test_an_empty_result_says_so_rather_than_rendering_nothing",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L214-L215",
      "signature": "def test_an_empty_result_says_so_rather_than_rendering_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4c11c2a6e0d378e386d8e3c70fa07f35922f945b08d151ff3b83142e3214ba5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests.test_an_entry_renders_only_the_fields_it_has",
      "name": "test_an_entry_renders_only_the_fields_it_has",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L195-L201",
      "signature": "def test_an_entry_renders_only_the_fields_it_has(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf561c63800645c343d6118c8e1418710d8c68110de281a83a7c83014405f821",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests.test_grouped_rendering_counts_each_section",
      "name": "test_grouped_rendering_counts_each_section",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L203-L207",
      "signature": "def test_grouped_rendering_counts_each_section(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "12c4c58c186e1f0b433d954ebfa748d3b74605e4f640724536bfa6d94f09a260",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/hugging-science/test_scripts.py#RenderTests.test_ungrouped_rendering_omits_section_headers",
      "name": "test_ungrouped_rendering_omits_section_headers",
      "kind": "method",
      "path": "tests/hugging-science/test_scripts.py",
      "span": "L209-L212",
      "signature": "def test_ungrouped_rendering_omits_section_headers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae7f23d11b023e6e73fc7219e036878732003578a500ca26e665d59b6f32f597",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L1-L570",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "4401e01a0ec5a3c0c9577a286d4d6d0c7f06412e1a9cc568e3819375f344f617",
      "chars": 20032,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests",
      "name": "ConfigAndPlanTests",
      "kind": "class",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L289-L406",
      "signature": "class ConfigAndPlanTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "180b33f9d56a8bede937bec383c2cb944dff8d50fe82cfecd63e2efb6ae3a3ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_missing_prices_make_plan_unready",
      "name": "test_missing_prices_make_plan_unready",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L349-L363",
      "signature": "def test_missing_prices_make_plan_unready(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46886c108f401fb3db1bcb493395a2ee3273c58162c28047952190295ddc46c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigAndPlanTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_named_env_check_is_boolean_only",
      "name": "test_named_env_check_is_boolean_only",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L290-L308",
      "signature": "def test_named_env_check_is_boolean_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a82d9582c1a5a8d4964a84a3e2ab65a074164dd67e2ce13119082a23579a7a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigAndPlanTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_secret_field_duplicate_key_and_traversal_are_rejected",
      "name": "test_secret_field_duplicate_key_and_traversal_are_rejected",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L365-L406",
      "signature": "def test_secret_field_duplicate_key_and_traversal_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "608d4a93f4207c78beff4fce6131fc2e99799d0e65400d6d421b6884fcf74734",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigAndPlanTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "name": "test_task_config_and_cost_plan",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L310-L347",
      "signature": "def test_task_config_and_cost_plan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "96461626f0c91ef301c6e7407f1f40dde0fb17cd9e0cf2bf521f11aea8e76c62",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigAndPlanTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#DatasetAuditTests",
      "name": "DatasetAuditTests",
      "kind": "class",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L409-L454",
      "signature": "class DatasetAuditTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0b062194a132683d901470db46c886025648c7d8f2bcdbc4acf4cba8434cf56",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_cross_split_duplicate_fails_with_hashed_evidence",
      "name": "test_cross_split_duplicate_fails_with_hashed_evidence",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L431-L454",
      "signature": "def test_cross_split_duplicate_fails_with_hashed_evidence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "703b9f3be83c3a43efbee123daba9ff8c77055c9450269b42cac28a8df5c3990",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetAuditTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_manifest_audit_passes_and_does_not_echo_untrusted_text",
      "name": "test_manifest_audit_passes_and_does_not_echo_untrusted_text",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L410-L429",
      "signature": "def test_manifest_audit_passes_and_does_not_echo_untrusted_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e748946c6f6918cf09d91462ac934091abac3f41b23077b6f3ffe03c0e799ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetAuditTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#file_sha256",
      "name": "file_sha256",
      "kind": "function",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L55-L56",
      "signature": "def file_sha256(path: Path) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4e6f5b88b2e7092f5cb064cf42ba8b95f67070c61d73d24bb7dfda9d8314513",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#make_manifest",
      "name": "make_manifest",
      "kind": "function",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L138-L184",
      "signature": "def make_manifest(root: Path, *, duplicate_test: bool = False) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea40329be58185db5b342775e9e96b55b4282a95339652ee0aba6d845ed8b5f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#make_run_config",
      "name": "make_run_config",
      "kind": "function",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L59-L115",
      "signature": "def make_run_config(*, rates: bool = True) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cf0c5ee191e7a4920ee3e682ff7fb1378bcd0c8a10a1db01adc6e3504c63809",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#make_task_config",
      "name": "make_task_config",
      "kind": "function",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L118-L135",
      "signature": "def make_task_config() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e557a69c4c7efbd5bf483252c61015927bbae56229f764cdd01e2eda713c470",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests",
      "name": "OutputAndEvaluationTests",
      "kind": "class",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L457-L565",
      "signature": "class OutputAndEvaluationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6504ad30ad0242abd3c05d0b61279baa55e9a0deedcdc9361a65ab4a438c497d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_evaluation_plan_preserves_split_roles",
      "name": "test_evaluation_plan_preserves_split_roles",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L540-L565",
      "signature": "def test_evaluation_plan_preserves_split_roles(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "baa212155c4fdd731d5c57e29f5848c7489ce9db4072965b553ee85de2df9700",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputAndEvaluationTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_hypothesis_inspector_redacts_text_and_finds_normalized_duplicate",
      "name": "test_hypothesis_inspector_redacts_text_and_finds_normalized_duplicate",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L458-L491",
      "signature": "def test_hypothesis_inspector_redacts_text_and_finds_normalized_duplicate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "822fb78c5af15767d040637fa045e0ddc23ad1154d9f406a61c537f0e4602a27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputAndEvaluationTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_result_inspection_and_metrics",
      "name": "test_result_inspection_and_metrics",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L493-L538",
      "signature": "def test_result_inspection_and_metrics(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c35ad559138d068bb6d81d1a8b501b519fc1ad5f5695bd93191e6bb232125b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputAndEvaluationTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L24-L45",
      "signature": "def run_script( name: str, *arguments: str, cwd: Path | None = None, environment: dict[str, str] | None = None, ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "c978b35c6e046d957682f7fa810dd7bde2fb79e9dc8f6361b106dce53c34fefa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "name": "SafetyAndHelpTests",
      "kind": "class",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L187-L286",
      "signature": "class SafetyAndHelpTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4e1404d742ffd325429f03f04b7662d34bbf62370a5018fa9778b0e5d858a1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_all_cli_help_paths_work_without_site_packages",
      "name": "test_all_cli_help_paths_work_without_site_packages",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L222-L235",
      "signature": "def test_all_cli_help_paths_work_without_site_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "79111aae0f9755a2bce7777f974a55dec92e2af2778502598ba8253b0c4eb0ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndHelpTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_example_run_config_validates_without_dependencies",
      "name": "test_example_run_config_validates_without_dependencies",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L264-L276",
      "signature": "def test_example_run_config_validates_without_dependencies(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "085b0cb2fda76f9391edd19caa0d2e661a4c9e89afb6b7df13c8c4bb4a51fd82",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndHelpTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_local_markdown_links_resolve",
      "name": "test_local_markdown_links_resolve",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L278-L286",
      "signature": "def test_local_markdown_links_resolve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfaf59abd219d44b1acd8333a34947bc1805aa3b0166e4ae692354facc20caba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndHelpTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_scripts_have_no_network_or_dynamic_execution_surface",
      "name": "test_scripts_have_no_network_or_dynamic_execution_surface",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L188-L220",
      "signature": "def test_scripts_have_no_network_or_dynamic_execution_surface(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "72f3b6839b938bd7a36213848f01bb126bde79a6a3a8fa69b43aef23c9f5a1ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndHelpTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_skill_metadata_progressive_disclosure_and_file_set",
      "name": "test_skill_metadata_progressive_disclosure_and_file_set",
      "kind": "method",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L237-L262",
      "signature": "def test_skill_metadata_progressive_disclosure_and_file_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6f0b4ba3c3dd63df8e51486afb362ced0412650db88cbcab23a02b3ee2a3630",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndHelpTests"
    },
    {
      "id": "tests/hypogenic/test_scripts.py#write_json",
      "name": "write_json",
      "kind": "function",
      "path": "tests/hypogenic/test_scripts.py",
      "span": "L48-L52",
      "signature": "def write_json(path: Path, document: Any) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7166bc9dc3cdf2cfab7574cf3d4c6f0b9a3b5c084591120b0f65413e98f62236",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L1-L401",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "efacd11b871d646d4f438b9379920b3a92216f300162698f7105da6e4236c843",
      "chars": 17272,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "name": "assert_no_decision_keys",
      "kind": "function",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L54-L65",
      "signature": "def assert_no_decision_keys(test: unittest.TestCase, report: dict) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e9f42c72590e007fe0fe31599f57a5ab2c6d516a230dd6934a4f46f030a81de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests",
      "name": "CausalClaimLintTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L171-L202",
      "signature": "class CausalClaimLintTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9580c7630705e840879c012e4c7549d0064c184891ae09edbc42e32ec83d8f36",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_associational_tag_cannot_hide_causal_verb",
      "name": "test_associational_tag_cannot_hide_causal_verb",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L194-L202",
      "signature": "def test_associational_tag_cannot_hide_causal_verb(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "abfd852dde8b6491a084446870d154f3cf68fececc97ea8502a64f41b62e778f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CausalClaimLintTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_fully_annotated_causal_claim_is_structurally_valid",
      "name": "test_fully_annotated_causal_claim_is_structurally_valid",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L178-L192",
      "signature": "def test_fully_annotated_causal_claim_is_structurally_valid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "687ca1141e4b7057d934ddaf55fdbd6760317f712540dd8e6b379c6083247e6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CausalClaimLintTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_unmarked_causal_language_is_invalid",
      "name": "test_unmarked_causal_language_is_invalid",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L172-L176",
      "signature": "def test_unmarked_causal_language_is_invalid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37783dd19b21584b4ec68f779f7db659f2f1db3dc61623a0596a90b01b1996ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CausalClaimLintTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests",
      "name": "EvidenceLedgerTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L228-L256",
      "signature": "class EvidenceLedgerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c33f0e90221bb5422231813065045865e869aae6aa05136340c62520ce1780c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_comprehensive_search_label_still_requires_human_review",
      "name": "test_comprehensive_search_label_still_requires_human_review",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L244-L256",
      "signature": "def test_comprehensive_search_label_still_requires_human_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "73de052d081fdeec1510e4be03d7010caf449e1b8cea477257fddf69ae688fcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceLedgerTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "name": "test_synthetic_ledger_and_boundary_cross_check",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L229-L242",
      "signature": "def test_synthetic_ledger_and_boundary_cross_check(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bd9807c203af1b0422075080b704db6a255d741171e187846c9000b59d0f419",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceLedgerTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests",
      "name": "FalsificationControlTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L205-L225",
      "signature": "class FalsificationControlTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0540e8d48a152daacc882cb7873187b70b90fd8be95b7514158d5802c3918184",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_identical_discriminating_expectations_are_invalid",
      "name": "test_identical_discriminating_expectations_are_invalid",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L216-L225",
      "signature": "def test_identical_discriminating_expectations_are_invalid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "67cda286f1e844a1d638de303c6858c75816558ec23034a5d217610348ec29fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FalsificationControlTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_template_is_valid_pending_human_review",
      "name": "test_template_is_valid_pending_human_review",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L206-L214",
      "signature": "def test_template_is_valid_pending_human_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c7b24de0a62bd03858e37720613eb0ee37c105b414a2d8fa30f2ea9714dd63b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FalsificationControlTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "name": "FileSafetyAndStaticTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L280-L391",
      "signature": "class FileSafetyAndStaticTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d55be3ae5d5fac3d385e14bd0c2ec3c49c262506f3d7ef3d4b9531e3b97aa7bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_assets_parse_and_source_ledger_is_dated",
      "name": "test_assets_parse_and_source_ledger_is_dated",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L360-L372",
      "signature": "def test_assets_parse_and_source_ledger_is_dated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16c2ba675316b27425f122c6379d7e2e487268ef790e5a2dd2f1c371d4ad6905",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_duplicate_json_keys_are_rejected",
      "name": "test_duplicate_json_keys_are_rejected",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L281-L286",
      "signature": "def test_duplicate_json_keys_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "60b7d3497a5fc9722c76718af3c180885de45c125e6c3d5f64d93af211dcc721",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_oversized_json_is_rejected_before_parsing",
      "name": "test_oversized_json_is_rejected_before_parsing",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L288-L293",
      "signature": "def test_oversized_json_is_rejected_before_parsing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "68ea375f26cec6f2a5d5cf84d5f01b7f8aa3f805639b45e302e38fce59c5fd55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_private_output_refuses_implicit_overwrite",
      "name": "test_private_output_refuses_implicit_overwrite",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L308-L316",
      "signature": "def test_private_output_refuses_implicit_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e092e2fc675c20789afc6d335ca9c29030636e394c1c685a0d2f336c6097efff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_removed_external_schematic_and_latex_assets_stay_absent",
      "name": "test_removed_external_schematic_and_latex_assets_stay_absent",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L385-L391",
      "signature": "def test_removed_external_schematic_and_latex_assets_stay_absent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "59dda21408b01fa95459d4342e2740d7feaa1815bd8121cddcc5c62e810e68c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_scripts_have_no_network_dynamic_execution_or_secret_access",
      "name": "test_scripts_have_no_network_dynamic_execution_or_secret_access",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L318-L358",
      "signature": "def test_scripts_have_no_network_dynamic_execution_or_secret_access(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "138cc69f89edf343418e57fd6770939c0dc6265a451d3642a0f7803bc52b09e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_skill_frontmatter_and_progressive_disclosure",
      "name": "test_skill_frontmatter_and_progressive_disclosure",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L374-L383",
      "signature": "def test_skill_frontmatter_and_progressive_disclosure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f2b7f1d3d5028669ae311459f80f3fef6db84b053850cae3b0ba0d1a572f4a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_symlink_input_is_rejected",
      "name": "test_symlink_input_is_rejected",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L295-L306",
      "signature": "def test_symlink_input_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "908ac41bbebd2d42db47fc1b260b410a15245944ff25edbe6dd279b993d01279",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests",
      "name": "HypothesisSchemaTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L68-L120",
      "signature": "class HypothesisSchemaTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17258824003cf9c0c6fbec969c69b2f4788cf3ce78bf9b5da5fdb236952a623d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_causal_question_requires_estimand",
      "name": "test_causal_question_requires_estimand",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L102-L110",
      "signature": "def test_causal_question_requires_estimand(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61a4d74bbabc8afa4d8ed0b71868091cdf0852aa9bd7da2e5237c646dc1c9197",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HypothesisSchemaTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_external_sensitive_data_declaration_blocks_record",
      "name": "test_external_sensitive_data_declaration_blocks_record",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L112-L120",
      "signature": "def test_external_sensitive_data_declaration_blocks_record(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30574f3f7dd781ae8047516b3317d7c617f50484684192b58baad302474a8b75",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HypothesisSchemaTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_non_candidate_status_is_rejected",
      "name": "test_non_candidate_status_is_rejected",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L96-L100",
      "signature": "def test_non_candidate_status_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b2f329a8b412beee484fce626c127bb3005c6df6e5f312092c2f8433241fb5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HypothesisSchemaTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_template_is_valid_and_keeps_candidates_distinct",
      "name": "test_template_is_valid_and_keeps_candidates_distinct",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L69-L94",
      "signature": "def test_template_is_valid_and_keeps_candidates_distinct(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54cf6365b70ab168fff4ada049dfb16dccc31c5270fa491e3c82158df1d761ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HypothesisSchemaTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "name": "load_asset_json",
      "kind": "function",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L46-L47",
      "signature": "def load_asset_json(name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "fde4c05ea2f623155b0eec8a9583c4114cd022946d6a1b25036b28f6191d1d72",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests",
      "name": "OperationalizationTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L123-L141",
      "signature": "class OperationalizationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24cccf88cd0f636d329c34871d4ac111967c3e79bbe5e5e89689cfb047950277",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_applicable_measurement_requires_validity_source",
      "name": "test_applicable_measurement_requires_validity_source",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L134-L141",
      "signature": "def test_applicable_measurement_requires_validity_source(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca88b79e4e790777827f1ebca3e572c2883aaea73fe6c17074718f4aa15317e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OperationalizationTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_template_is_valid_with_visible_measurement_gaps",
      "name": "test_template_is_valid_with_visible_measurement_gaps",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L124-L132",
      "signature": "def test_template_is_valid_with_visible_measurement_gaps(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "19b31e5e51c694e708a5dadbe1dfed80c0a36baddd4cf7bc545d99b943b1d523",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OperationalizationTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests",
      "name": "PredictionMatrixTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L144-L168",
      "signature": "class PredictionMatrixTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60061b8f32b7999e55f6d4c180a040519dc1adf3556484f125e2dac6861b3156",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_csv_requires_exact_header",
      "name": "test_csv_requires_exact_header",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L163-L168",
      "signature": "def test_csv_requires_exact_header(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5ed0bbca0252e795b31607486f26eaf8e175b5c1c1016d1d287ba12ca2e5b1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PredictionMatrixTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_identical_focal_and_rival_expectations_are_rejected",
      "name": "test_identical_focal_and_rival_expectations_are_rejected",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L153-L161",
      "signature": "def test_identical_focal_and_rival_expectations_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "47021af7bba593f768ad374cac78d4abc75ae87e7def6c08689f9eb83454778e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PredictionMatrixTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_template_cross_checks_against_record",
      "name": "test_template_cross_checks_against_record",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L145-L151",
      "signature": "def test_template_cross_checks_against_record(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f8db6cf01c4be46cedbe513ff7bfa8fa0befa7365b8702d8def6122ea5d8844",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PredictionMatrixTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests",
      "name": "ScaffoldTests",
      "kind": "class",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L259-L277",
      "signature": "class ScaffoldTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0aca19a0c72e8f2b6e23facc0da2fb40fd5b42b2e464620ffa1bd35c3b85facd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_scaffold_contains_all_candidates_without_selection",
      "name": "test_scaffold_contains_all_candidates_without_selection",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L260-L266",
      "signature": "def test_scaffold_contains_all_candidates_without_selection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "764b7350c0f50f437a0fe8e5f421fdb03e724189b2d74439a33b13ab1dac60b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_unresolved_gate_blocks_scaffold",
      "name": "test_unresolved_gate_blocks_scaffold",
      "kind": "method",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L268-L277",
      "signature": "def test_unresolved_gate_blocks_scaffold(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea0f6155d4146a4c565aecd9024372d3a4bc6f107a3f654c18fa71e4d9b14618",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldTests"
    },
    {
      "id": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "name": "valid_record",
      "kind": "function",
      "path": "tests/hypothesis-generation/test_scripts.py",
      "span": "L50-L51",
      "signature": "def valid_record() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "94885ed0b5aff3b2b05a0c840125301eb26e1d3a1d0ce078261483d4620ea68c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py",
      "name": "test_check_version.py",
      "kind": "file",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L1-L200",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5e4d496f490fe5c243d6ea6913dc74a8ad19e221e48da917fc22fa3bdd5454c5",
      "chars": 9113,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex",
      "name": "_FakeIdcIndex",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L191-L195",
      "signature": "class _FakeIdcIndex",
      "exported": false,
      "origin": "ast",
      "body_hash": "f30d3160d6778ef020da2e6484aa18092fcfd9cd8c3dbc6fd5e9ca89503e2d3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L194-L195",
      "signature": "def __init__(self, version)",
      "exported": false,
      "origin": "ast",
      "body_hash": "92fd06eeeb0feb9c84c32cdae68830793af1e36dd7062aa76262d669c07907ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "_FakeIdcIndex"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "name": "TestInstallCommands",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L58-L94",
      "signature": "class TestInstallCommands",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec860c492273fb2ca05f5460e93f960ae7da5b0314cde0366c61925cef100543",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_instructions_name_the_version_and_the_interpreter",
      "name": "test_instructions_name_the_version_and_the_interpreter",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L89-L94",
      "signature": "def test_instructions_name_the_version_and_the_interpreter(self, capsys)",
      "exported": true,
      "origin": "ast",
      "body_hash": "be342f6699f8f3199f9b3551a6463c65477bbce4a34a692e117d894176d3e342",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInstallCommands"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_no_command_bypasses_an_externally_managed_interpreter",
      "name": "test_no_command_bypasses_an_externally_managed_interpreter",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L82-L87",
      "signature": "def test_no_command_bypasses_an_externally_managed_interpreter(self, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e75dfcf39fa1407196d23c4b53f4c10fde0c5ada9ff9014adbc70cf73c5ff99f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInstallCommands"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_pip_form_targets_the_running_interpreter",
      "name": "test_pip_form_targets_the_running_interpreter",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L61-L64",
      "signature": "def test_pip_form_targets_the_running_interpreter(self, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c876bc8dcb3ca01b3cd0223c51a45f6d7bc94bc2dd0856e9e658729d6c2823f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInstallCommands"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_upgrade_flag_applies_to_every_form",
      "name": "test_upgrade_flag_applies_to_every_form",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L77-L80",
      "signature": "def test_upgrade_flag_applies_to_every_form(self, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "922fec7078f407bfd7fd495314d75532e4fa1939a4641fc66c2a2634de47f331",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInstallCommands"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_uv_form_is_preferred_when_uv_is_available",
      "name": "test_uv_form_is_preferred_when_uv_is_available",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L66-L75",
      "signature": "def test_uv_form_is_preferred_when_uv_is_available(self, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "82879ef312849911f9f7f1fb22f7d43caf50cbf10d5474dfe2c8efd1f58c8847",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInstallCommands"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck",
      "name": "TestMinimumCheck",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L121-L148",
      "signature": "class TestMinimumCheck",
      "exported": true,
      "origin": "ast",
      "body_hash": "a93226e0bd2413c1c2dfaae3f0299e77aded9159675fd700f014ed44c5e604ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_current_version_is_returned",
      "name": "test_current_version_is_returned",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L138-L141",
      "signature": "def test_current_version_is_returned(self, monkeypatch, capsys)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ced74c9b97eb261aae5ae831b86777152e1df0d92ff21cb5b3e390666793b9d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMinimumCheck"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_main_exit_code_follows_the_check",
      "name": "test_main_exit_code_follows_the_check",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L143-L148",
      "signature": "def test_main_exit_code_follows_the_check(self, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0f75cc2f653ab426a9c51dd4f767730c0a2d313faa52df1ded118e98f79b233",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMinimumCheck"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_missing_package_reports_none_and_instructs",
      "name": "test_missing_package_reports_none_and_instructs",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L124-L131",
      "signature": "def test_missing_package_reports_none_and_instructs(self, monkeypatch, capsys): # `None` in sys.modules makes `import idc_index` raise ImportError, so this test # exercises the not-installed path whether or not the package is present.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9524e70a22d427ce2d40c5412d7806a5c21259c3ca941a3ec9b8c956222846bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMinimumCheck"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_older_version_reports_none",
      "name": "test_older_version_reports_none",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L133-L136",
      "signature": "def test_older_version_reports_none(self, monkeypatch, capsys)",
      "exported": true,
      "origin": "ast",
      "body_hash": "41f08e27eed2f55d5729c9842a1571c90b09712261b59b462e0921ab67de2e6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestMinimumCheck"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort",
      "name": "TestNetworkChecksAreBestEffort",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L151-L166",
      "signature": "class TestNetworkChecksAreBestEffort",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb0090eac5e8756e36ccd03540dd21b1739eb5d79a1d512fa0da6d20f01d3f34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort.test_fetch_json_returns_none_when_unreachable",
      "name": "test_fetch_json_returns_none_when_unreachable",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L152-L154",
      "signature": "def test_fetch_json_returns_none_when_unreachable(self): # .invalid never resolves (RFC 2606), so this stays offline.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6914c08daf2a47130436606345b5ba4a618fb49db4cca3d9b3025585676983a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNetworkChecksAreBestEffort"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort.test_notify_updates_survives_an_unreachable_network",
      "name": "test_notify_updates_survives_an_unreachable_network",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L156-L158",
      "signature": "def test_notify_updates_survives_an_unreachable_network(self, monkeypatch)",
      "exported": true,
      "origin": "ast",
      "body_hash": "45159cbff1caaba4bf1c988a55796f5d8be788f1f5058902c4c31b50c5707e87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNetworkChecksAreBestEffort"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort.test_skill_update_notice_is_conservative",
      "name": "test_skill_update_notice_is_conservative",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L160-L166",
      "signature": "def test_skill_update_notice_is_conservative(self, monkeypatch, capsys): # A GitHub tag equal to the shipped version is not an update.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c892415cacc43898229a7c6da3b6532837902a1d64654e46a17ef38760d0a0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNetworkChecksAreBestEffort"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls",
      "name": "TestNeverInstalls",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L97-L118",
      "signature": "class TestNeverInstalls",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fe4b4e92b4d9190dfdeb2b39c02065498b649c407a89e9b18b20e7e29e2367e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls._source",
      "name": "_source",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L105-L107",
      "signature": "def _source(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "1d69422345b6cb3179abe1e96cdd35a6dbb93cd149f63583d260aefbdc1f8b15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNeverInstalls"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls.test_source_has_no_dynamic_execution",
      "name": "test_source_has_no_dynamic_execution",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L115-L118",
      "signature": "def test_source_has_no_dynamic_execution(self): # Downstream registries reject bundled scripts that call eval/exec.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e52de725ab86ce319519dc3fbb34bca5e8e49f14a7baf7cd1438be35d071e415",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNeverInstalls"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls.test_source_has_no_installer_call",
      "name": "test_source_has_no_installer_call",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L109-L113",
      "signature": "def test_source_has_no_installer_call(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a6df42c3a31274d067232c894c08566b8fbdf33e19a5ff5a473498e671c8e71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNeverInstalls"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "name": "TestParseVersion",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L35-L55",
      "signature": "class TestParseVersion",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a81eaf198307e4e20394df4550e2c60373684835d020f2afdb614728fbfbfb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_ignores_components_past_the_third",
      "name": "test_ignores_components_past_the_third",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L54-L55",
      "signature": "def test_ignores_components_past_the_third(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "393030ae4cedaadd67d79c453f86811df79be387ccde5ab1fd9ac3136b8903a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestParseVersion"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_orders_numerically",
      "name": "test_orders_numerically",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L36-L38",
      "signature": "def test_orders_numerically(self): # String comparison would (wrongly) order \"0.12.0\" < \"0.9.0\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "881e9e665184755516093c6261903457342920d7254637d765cedec000832f2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestParseVersion"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_pads_short_versions",
      "name": "test_pads_short_versions",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L50-L52",
      "signature": "def test_pads_short_versions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40219450b444dcfa3951687863e6b02649215331a1d2fa9f4a9b1f6aa218295e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestParseVersion"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_strips_v_prefix",
      "name": "test_strips_v_prefix",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L40-L41",
      "signature": "def test_strips_v_prefix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff9ee7c68b13984c47c24ed451bae20dd7da6b67b714a8671ac4a3362eb4006b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestParseVersion"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_tolerates_prereleases",
      "name": "test_tolerates_prereleases",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L43-L48",
      "signature": "def test_tolerates_prereleases(self): # A pre-release tag upstream must not crash the startup check. It compares equal # to its base release, so the update notices stay conservative.",
      "exported": true,
      "origin": "ast",
      "body_hash": "66fbb080bd684714752840969e8e1ec212adb4701ca675d5e7a0b4ff3629b434",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestParseVersion"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter",
      "name": "TestVersionsMatchFrontmatter",
      "kind": "class",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L169-L188",
      "signature": "class TestVersionsMatchFrontmatter",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe8fc3574dc3f9d9d3efd36e0d6a27c050092fffd189e8e488312e4b58cde1bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter._frontmatter",
      "name": "_frontmatter",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L172-L174",
      "signature": "def _frontmatter(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "73e7a606319da44759f766ba7bef1ca076847710f0b9364224fa4ee592d246dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVersionsMatchFrontmatter"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter.test_min_version_matches_metadata",
      "name": "test_min_version_matches_metadata",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L176-L178",
      "signature": "def test_min_version_matches_metadata(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a988289105336f17efced8b997beeb1cef5feba4e32988fb0813b2cf8ad97531",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVersionsMatchFrontmatter"
    },
    {
      "id": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter.test_skill_version_matches_metadata",
      "name": "test_skill_version_matches_metadata",
      "kind": "method",
      "path": "tests/imaging-data-commons/test_check_version.py",
      "span": "L180-L188",
      "signature": "def test_skill_version_matches_metadata(self): # `metadata.version` is this repository's skill version; the script pins the # upstream release it came from, recorded as `source-skill-version`. The script # compares it against upstream's GitHub releases to notify about skill updates, # so a stale value points users at a release they already have.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7847558787b04cb7878008f17883f391d6d0e447b1a4489d0812d0a0b3ab221",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestVersionsMatchFrontmatter"
    },
    {
      "id": "tests/infographics/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/infographics/test_scripts.py",
      "span": "L1-L174",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7792b6e0e2cfb4b4e1abeab05ab0b8218ae0c6377855187d0fb0e98f07671a77",
      "chars": 7115,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "name": "OptionCatalogueTests",
      "kind": "class",
      "path": "tests/infographics/test_scripts.py",
      "span": "L93-L141",
      "signature": "class OptionCatalogueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "68e5fd7984ec84d0eea31017fc87af37f8085ead0fbcc80ad48578e6d9b6b309",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L101-L102",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b01f68ae4409744bf48fc4697146cb090f51dd3d0ba31db7134c3c79f1493124",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptionCatalogueTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_every_catalogue_is_non_empty_and_free_of_duplicates",
      "name": "test_every_catalogue_is_non_empty_and_free_of_duplicates",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L104-L109",
      "signature": "def test_every_catalogue_is_non_empty_and_free_of_duplicates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41aac2820c198ec28755cbb47478f53733356a2106f46bd41f0754038e81b8b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptionCatalogueTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_every_catalogued_value_is_documented_by_list_options",
      "name": "test_every_catalogued_value_is_documented_by_list_options",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L111-L123",
      "signature": "def test_every_catalogued_value_is_documented_by_list_options(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ca98f3001d7503742b6eeb34be1821de35528289d18506370f977c99ac3c1b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptionCatalogueTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_option_names_are_lowercase_slugs",
      "name": "test_option_names_are_lowercase_slugs",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L137-L141",
      "signature": "def test_option_names_are_lowercase_slugs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41d8f4374bb971ffadafa48106a9a050fe2584313e37bd75dd7dd868a082d84c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptionCatalogueTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_the_palettes_are_the_recognised_colourblind_safe_sets",
      "name": "test_the_palettes_are_the_recognised_colourblind_safe_sets",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L132-L135",
      "signature": "def test_the_palettes_are_the_recognised_colourblind_safe_sets(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2ea7339499b4d8f50d356fac72912a153c237f838488b13a1d2dde4ef56ecbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptionCatalogueTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_the_parser_offers_each_catalogue_as_choices",
      "name": "test_the_parser_offers_each_catalogue_as_choices",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L125-L130",
      "signature": "def test_the_parser_offers_each_catalogue_as_choices(self) -> None: # `choices=` wired to the catalogue means adding an option is one edit; # a hand-copied list drifts.",
      "exported": true,
      "origin": "ast",
      "body_hash": "28aff175b576e0261fa539cc32af05586a40ab792806cce6b940a8098c76d593",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptionCatalogueTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#ParserTests",
      "name": "ParserTests",
      "kind": "class",
      "path": "tests/infographics/test_scripts.py",
      "span": "L144-L169",
      "signature": "class ParserTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d4f7c59ad9c51e8044680a488b12995faaa31573b51d522f1bf1960388474e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/infographics/test_scripts.py#ParserTests.test_an_unknown_option_value_is_rejected_at_the_boundary",
      "name": "test_an_unknown_option_value_is_rejected_at_the_boundary",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L152-L166",
      "signature": "def test_an_unknown_option_value_is_rejected_at_the_boundary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "082074a9aa5910466b93671bfd3cb17221aacc71328a325108e35a84ab7599f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#ParserTests.test_help_lists_every_documented_flag",
      "name": "test_help_lists_every_documented_flag",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L145-L150",
      "signature": "def test_help_lists_every_documented_flag(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7862c1d308fb5af327ff601be70bd143258bdfd11486ec689169020d23d8c69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#ParserTests.test_the_generator_script_is_shipped",
      "name": "test_the_generator_script_is_shipped",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L168-L169",
      "signature": "def test_the_generator_script_is_shipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "986acc145335f396943776b16e02ce8dab0be80146919b9796ff3bd569aab01e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParserTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "name": "SubprocessEnvironmentTests",
      "kind": "class",
      "path": "tests/infographics/test_scripts.py",
      "span": "L44-L90",
      "signature": "class SubprocessEnvironmentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fc3f9a82a629b36590d800ae0fb80044003ecb86368bb2ad70c93a0730365f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_an_empty_key_is_omitted_rather_than_passed_blank",
      "name": "test_an_empty_key_is_omitted_rather_than_passed_blank",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L61-L68",
      "signature": "def test_an_empty_key_is_omitted_rather_than_passed_blank(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0473d9b3ca38653d455fef7a587120d064360003c3dcdf3a5c81bed8e0276e3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SubprocessEnvironmentTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_only_allowlisted_variables_are_forwarded",
      "name": "test_only_allowlisted_variables_are_forwarded",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L45-L54",
      "signature": "def test_only_allowlisted_variables_are_forwarded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "abf5ffd98792ff60e4b82e20ac579baa4131e3cbd9a804414cd77f46746065e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SubprocessEnvironmentTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_allowlist_carries_no_credential_variables",
      "name": "test_the_allowlist_carries_no_credential_variables",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L70-L74",
      "signature": "def test_the_allowlist_carries_no_credential_variables(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8655748bad403cf08e45bf49fd9f1568ff615753d13f2034f5d70be21d18f0ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SubprocessEnvironmentTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_allowlist_keeps_tls_and_proxy_settings_working",
      "name": "test_the_allowlist_keeps_tls_and_proxy_settings_working",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L76-L80",
      "signature": "def test_the_allowlist_keeps_tls_and_proxy_settings_working(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "74740fd2bfa3e7b08c095260b38ad69854713c0592b727f56fbf56d99ce168bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SubprocessEnvironmentTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_allowlist_matches_the_schematic_scripts",
      "name": "test_the_allowlist_matches_the_schematic_scripts",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L82-L90",
      "signature": "def test_the_allowlist_matches_the_schematic_scripts(self) -> None: # Both CLIs solve the same problem the same way; a divergence means one # of them was updated and the other forgotten.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e213e18fb44d0c5294af60f17116a99f73edf987f8177b55dbb78f138713fb3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SubprocessEnvironmentTests"
    },
    {
      "id": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_api_key_is_injected_when_supplied",
      "name": "test_the_api_key_is_injected_when_supplied",
      "kind": "method",
      "path": "tests/infographics/test_scripts.py",
      "span": "L56-L59",
      "signature": "def test_the_api_key_is_injected_when_supplied(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ae732500c52377d98626e4da028796b2588f5091d7a2e9821714242c11cd395",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SubprocessEnvironmentTests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L1-L679",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fff2d9c29eb7e8b89801d577748814fe2c56e11c16d4838c9541ab9c67674f1b",
      "chars": 25483,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#approval",
      "name": "approval",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L49-L50",
      "signature": "def approval() -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dc5593d0cf42035b52faaf2c4689b2f05163f7d351d2fef62ef7dd9a9761a65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "name": "capa_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L167-L226",
      "signature": "def capa_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bc976ddd2127443aa19bc752c17db9d0c6fc7287f0b901dec5643b6d4ee200f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "name": "CLITests",
      "kind": "class",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L428-L675",
      "signature": "class CLITests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c377d9179cafa9b559d20b57eed9dd3811214c9521dc0c386400728a5d0ef45",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "name": "assert_valid",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L454-L462",
      "signature": "def assert_valid(self, script: str, data: dict[str, Any]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bd769112720abad688925c58aacd155933217b0a577f8196f8232c2e6c5d6c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "name": "run_cli",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L431-L447",
      "signature": "def run_cli( self, script: str, *arguments: str, cwd: Path | None = None, ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa0ecdf235ba6f8a4b5ab48c21208ce3f8e2d9ebc405b6ef7f0dc15cea3bb672",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_all_help_commands",
      "name": "test_all_help_commands",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L464-L469",
      "signature": "def test_all_help_commands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc2731969521863ef3e96a3f41f42e2cbfb3283ffb18a647a14675cea824a574",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_closed_capa_without_effectiveness_fails",
      "name": "test_closed_capa_without_effectiveness_fails",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L523-L533",
      "signature": "def test_closed_capa_without_effectiveness_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "80a3a2eea1fc42f723fe30ca4585039e3ce03ba7b793ece04e9c937a18ba4e85",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_device_domain_is_refused_under_laboratory_profile",
      "name": "test_device_domain_is_refused_under_laboratory_profile",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L662-L675",
      "signature": "def test_device_domain_is_refused_under_laboratory_profile(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8389d164da4778d8ce3d4e06015990ef981ff60f01ded156051d389d5313673a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_distributed_json_templates_fail_closed",
      "name": "test_distributed_json_templates_fail_closed",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L593-L611",
      "signature": "def test_distributed_json_templates_fail_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8942ac2e5bbece1572c75399ac7f3bf476d1a02468c4d4840d486ca1c39a10a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_duplicate_json_key_is_input_error",
      "name": "test_duplicate_json_key_is_input_error",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L544-L550",
      "signature": "def test_duplicate_json_key_is_input_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6f689f6c016f7a4d15bef4ce46f31ca2cc6d0676195ffaf5e26576cba0b13c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_evidence_path_traversal_is_refused",
      "name": "test_evidence_path_traversal_is_refused",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L560-L576",
      "signature": "def test_evidence_path_traversal_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1c50c2704a0fe545dc9490d03ed5f621e5c059f9ca70b9e8cd99d9a7353af5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_laboratory_profile_uses_its_own_domains",
      "name": "test_laboratory_profile_uses_its_own_domains",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L645-L660",
      "signature": "def test_laboratory_profile_uses_its_own_domains(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c60577abf8256f8be95fd24907c073683767d68ab106460816bc0ee020f9b11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_manifest_and_gap_analyzer",
      "name": "test_manifest_and_gap_analyzer",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L489-L521",
      "signature": "def test_manifest_and_gap_analyzer(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61aa4de9c83bf6504e75362c8c850e1cdea7ef7baccc7a7a7b1316dc0d67dae0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_output_is_deterministic",
      "name": "test_output_is_deterministic",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L552-L558",
      "signature": "def test_output_is_deterministic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b7910ca46916c905fc479b220de692b25453959a776c93d2be69e4d1b5e49f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_refuses_overwrite_without_force",
      "name": "test_refuses_overwrite_without_force",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L578-L591",
      "signature": "def test_refuses_overwrite_without_force(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61682cf96cc19a2a5178eff21d57a920a44499d4613cc071138fc47bd58ac21a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_standard_specific_templates_fail_closed",
      "name": "test_standard_specific_templates_fail_closed",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L613-L630",
      "signature": "def test_standard_specific_templates_fail_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c56c1faea63ca7da77bd389a92d9e9abc3d00a08ce2fd2e25e71979069734786",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_undetermined_applicability_fails",
      "name": "test_undetermined_applicability_fails",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L535-L542",
      "signature": "def test_undetermined_applicability_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b8c38dd753e30a599f9e9f504c2c36bdc7d0f0bdaed627dbf894a043a479c7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_unknown_standard_is_refused",
      "name": "test_unknown_standard_is_refused",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L632-L643",
      "signature": "def test_unknown_standard_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d7a1875186f39f5eec0c9b9ea6b6e24f14aaff94082265eda16c3ee64ac83be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_capa",
      "name": "test_valid_capa",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L477-L478",
      "signature": "def test_valid_capa(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b924e92d364061a9c5b0c165c4ee6f19d8591fdc90dcc55fc2425ca24d5ac43a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_document_register",
      "name": "test_valid_document_register",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L474-L475",
      "signature": "def test_valid_document_register(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "373854bcc1f98f2acc01dd12c024512cf8bb543a2f82bef6de15aa693a429915",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_qmsr",
      "name": "test_valid_qmsr",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L483-L484",
      "signature": "def test_valid_qmsr(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2abd56d34a3f51cc9f38dbf8bee52c25284953a5389c8b47be9daa89dc884221",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_scope",
      "name": "test_valid_scope",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L471-L472",
      "signature": "def test_valid_scope(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "db72acb72740f6b9c55ca24edb71f6d1e57b19c41b498881ed440686d1a19efe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_supplier_controls",
      "name": "test_valid_supplier_controls",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L486-L487",
      "signature": "def test_valid_supplier_controls(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c1f4c4fdf9cd585097c89c8082f1d181885b3ce1698cb90e0ccd42424162058",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_traceability",
      "name": "test_valid_traceability",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L480-L481",
      "signature": "def test_valid_traceability(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c91793ac07771ed6da6f66ce53988f21ab441a28d1902b607ede4b777b3bee5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "name": "write_json",
      "kind": "method",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L449-L452",
      "signature": "def write_json(self, directory: Path, name: str, data: Any) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "978132b8198a83e4e7721b66d1d6a8cfe3edbe857efaad3c9af9b1f701bd0851",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CLITests"
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "name": "controlled",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L53-L65",
      "signature": "def controlled( *, identifier: str, status: str = \"approved\", source_id: str = \"SRC-1\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bdbbcaab068d30414230131b811f8cbbd222e4c46738a3b9cd78732279bc325",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "name": "document_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L118-L164",
      "signature": "def document_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6da6ed183182f4afac8531ce139a775128cf5684a32d75767f8d009f312b5ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "name": "evidence",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L38-L46",
      "signature": "def evidence(identifier: str = \"EV-1\") -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "de281417fd4c5f1b14f4643048305d63dce13d1561f935b5b34f523a6d0e47c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "name": "manifest_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L337-L372",
      "signature": "def manifest_data( local_path: str = \"evidence.md\", digest: str | None = None, domain: str = \"document-and-record-control\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "297a938eecfc5c07305b50c46a788bda2a58ed7b9cae395b6db39cda8be570cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "name": "metadata",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L68-L73",
      "signature": "def metadata(identifier_key: str, identifier: str) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf340036c5916caeedd0327e7f10ec9bb762ec8ff84ccf135ab509aa7c614c6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "name": "qmsr_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L283-L334",
      "signature": "def qmsr_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "285228dfac223a42117450c00a38a4e1ba3f50052eb0d13e607337490def4938",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "name": "scope_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L76-L115",
      "signature": "def scope_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3dd948e70bc68ce5b1876034dc7a658b1bafb385c90e7665254b5ceb533f8341",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#source",
      "name": "source",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L28-L35",
      "signature": "def source(identifier: str = \"SRC-1\") -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "714b235db58877cdfb6be5b652a1dab5e08d18d069b996c4a4eecf7147ea54b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "name": "supplier_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L375-L425",
      "signature": "def supplier_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "983553f09b786b24c7e01027c66965ad0c4d31a229bc583d274041556b2c28c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "name": "traceability_data",
      "kind": "function",
      "path": "tests/iso-standards-readiness/test_scripts.py",
      "span": "L229-L280",
      "signature": "def traceability_data() -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ef4d1e360b051c90b0cbca1995abad74f5bd2b8f553824468db8b3de0855ae1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L1-L397",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3569cfaa09242372f2147a6c01bcdd521eda75d93468553c90716f3df7a1d7a8",
      "chars": 16298,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L41-L48",
      "signature": "def run_cli(*args: str) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ec8e59740f9b844ab283cd46ce60159da96e39d451b478a18e7e4d56c2bf955",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "name": "TestDeclaredInterfaces",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L220-L295",
      "signature": "class TestDeclaredInterfaces(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32fb077799e7923bbc94298b229dcdbda2380a0f3762aaae1de0558872e04558",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "name": "_check",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L237-L240",
      "signature": "def _check(self, interfaces) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "d9abf8ff7496aae8ba773f596b5e0156603eb185de6c68646e8d90f818b148bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._manifest",
      "name": "_manifest",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L227-L235",
      "signature": "def _manifest(self, interfaces) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "28166ad4cc50c714dd51e24cfc6cfba879c657c161702ee38a98671258fd6d51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._pocket",
      "name": "_pocket",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L242-L250",
      "signature": "def _pocket(self, value: float) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "913a4382e45a61f3bd82b9764f8b8b1e6175129169bc14395bbf88c3558eb060",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_manifest_without_interfaces_says_how_to_add_them",
      "name": "test_manifest_without_interfaces_says_how_to_add_them",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L283-L288",
      "signature": "def test_manifest_without_interfaces_says_how_to_add_them(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d503b4c3bf1c17219d04eb3ed46184773f32c700e4cef7e1ca386568caf65e69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_one_failing_entry_fails_the_whole_check",
      "name": "test_one_failing_entry_fails_the_whole_check",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L265-L269",
      "signature": "def test_one_failing_entry_fails_the_whole_check(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "02aa794027a17bd44bbb10c36e2eb1c5772449fbe4488aee3aa3aa2de38901ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_at_maximum_material_passes",
      "name": "test_pocket_at_maximum_material_passes",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L252-L257",
      "signature": "def test_pocket_at_maximum_material_passes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0138c1778e5a22d88d14033cbfd7221ea3065dd643b98378dc68b15589e3a712",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_sized_from_nominal_fails",
      "name": "test_pocket_sized_from_nominal_fails",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L259-L263",
      "signature": "def test_pocket_sized_from_nominal_fails(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e7096258ede9177633241965c6b7ae30df1596b123e9ab4f2f3e46e624bc240",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unsupported_target_is_rejected",
      "name": "test_unsupported_target_is_rejected",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L290-L295",
      "signature": "def test_unsupported_target_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a35f2aa8787536e6d704e3207e8c7d2942c4063d0526e0644302fdc046da30b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unverified_standard_is_flagged_in_the_output",
      "name": "test_unverified_standard_is_flagged_in_the_output",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L271-L281",
      "signature": "def test_unverified_standard_is_flagged_in_the_output(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cacda93edc94f63b0e23ec47d7b09303024436ba5cdd1eb7ea10000dfded6c77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDeclaredInterfaces"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "name": "TestFitArithmetic",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L155-L217",
      "signature": "class TestFitArithmetic(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e6ca32301fdb39296c184a953b67189449af86a62239d401519b8ea7acba746",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "name": "_fit",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L158-L159",
      "signature": "def _fit(self, *args: str) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "cfb7fd7d409b3daf32f59a3037b9db14218c8f45c500de96420010240c8dd882",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_clearance_offset_shifts_the_expected_band",
      "name": "test_clearance_offset_shifts_the_expected_band",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L192-L199",
      "signature": "def test_clearance_offset_shifts_the_expected_band(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d170c0670c4aeae2e5ac06e5a6e58faa6d616cefb362efa49dee212cf5ec3a21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_envelope_intent_requires_maximum_material_condition",
      "name": "test_envelope_intent_requires_maximum_material_condition",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L177-L190",
      "signature": "def test_envelope_intent_requires_maximum_material_condition(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbe3c59c2f063e48e036b2a9a0cc615a84c97b41330a72af443fb0e242e39fe6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_match_intent_accepts_a_conforming_dimension",
      "name": "test_match_intent_accepts_a_conforming_dimension",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L161-L167",
      "signature": "def test_match_intent_accepts_a_conforming_dimension(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a93bfcbdf765a2fe2755bd5bac0d9c166fe6f1cf3ab6cbf338cde5db581d808c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_match_intent_rejects_an_out_of_tolerance_dimension",
      "name": "test_match_intent_rejects_an_out_of_tolerance_dimension",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L169-L175",
      "signature": "def test_match_intent_rejects_an_out_of_tolerance_dimension(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8522a23b31c9d115dd0922a2fb08671016d9cf174b3231aba6b7850c245ec247",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_non_numeric_value_is_rejected",
      "name": "test_non_numeric_value_is_rejected",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L208-L212",
      "signature": "def test_non_numeric_value_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c7c1937ad7b559d7a84326549e6b1a5f761a41953661b1ad84aa96daca9ed83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_standard_without_bbox_checks_explains_itself",
      "name": "test_standard_without_bbox_checks_explains_itself",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L214-L217",
      "signature": "def test_standard_without_bbox_checks_explains_itself(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ebc4170bfe4b6ce337d6addf70c3dc56b92e570b10e35cfd893854a711c4bdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_unknown_dimension_is_rejected",
      "name": "test_unknown_dimension_is_rejected",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L201-L206",
      "signature": "def test_unknown_dimension_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7733eb638e0dcd60052725c97bb8e2158500db13964359cf3c6ad1f48e8f3eb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestFitArithmetic"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelp",
      "name": "TestHelp",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L83-L95",
      "signature": "class TestHelp(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5c867b7aa003ff89d91c366202d3fc1d9ab07cbfd1ed13623bce82c3d16f152",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelp.test_check_subcommands_have_help",
      "name": "test_check_subcommands_have_help",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L91-L95",
      "signature": "def test_check_subcommands_have_help(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40ceb3bbdb2c80a5c543c66c8cb6e368543dae00a5796749aaee858d202cfc1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelp"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelp.test_each_cli_has_help",
      "name": "test_each_cli_has_help",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L84-L89",
      "signature": "def test_each_cli_has_help(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c7f204ea64bd53e71cd71fca6211a986e0a4160c8554a5725a618fa71ac8317",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelp"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "name": "TestHelpers",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L358-L392",
      "signature": "class TestHelpers(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "43d44b08ed90665708e47ba38a38f8545ed2971da2509ce239fd0d921134f439",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_load_shape_rejects_unsupported_suffix",
      "name": "test_load_shape_rejects_unsupported_suffix",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L386-L388",
      "signature": "def test_load_shape_rejects_unsupported_suffix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "378ae8ba957d8367ea852aae8d9e87624792e5ef636c8a5d8d98f2e6c3a62d34",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_measure_rejects_unknown_name",
      "name": "test_measure_rejects_unknown_name",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L381-L384",
      "signature": "def test_measure_rejects_unknown_name(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "076510be6937881b187699025228865514639170d06ddbb6baf8ec43f1ea5afc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_measure_resolves_bbox_names",
      "name": "test_measure_resolves_bbox_names",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L370-L375",
      "signature": "def test_measure_resolves_bbox_names(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "97c8ad746f55f3d8ff612ce348700d1d625e7dc8150982f16b66f0e598c69a77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_measure_swap_xy_exchanges_axes",
      "name": "test_measure_swap_xy_exchanges_axes",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L377-L379",
      "signature": "def test_measure_swap_xy_exchanges_axes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c5ed0a9ecf42828a573c204f3d40c8791404f40cd7396a92300673fa1a8eeda",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_parse_params_coerces_types",
      "name": "test_parse_params_coerces_types",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L359-L364",
      "signature": "def test_parse_params_coerces_types(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c46790194b66729fc929c8e7b4be12ebdfdb5b0022e09938aedb00cbb586798",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_parse_params_rejects_malformed_pairs",
      "name": "test_parse_params_rejects_malformed_pairs",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L366-L368",
      "signature": "def test_parse_params_rejects_malformed_pairs(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "37ed5dc0cbc8a9a3de1ffcb7debf0d9e1b22590335aa6dc5df98bd0b13a52a7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_run_model_rejects_a_missing_file",
      "name": "test_run_model_rejects_a_missing_file",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L390-L392",
      "signature": "def test_run_model_rejects_a_missing_file(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "35bbf8eefbc2b4fce1c591a9c01ac39a289834d1c10ecf8fb52886c318ce2d40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestHelpers"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "name": "TestInterfaceNormalisation",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L298-L335",
      "signature": "class TestInterfaceNormalisation(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "54e4e63c93b84a9c97d9fb3f7baef0ea381efcdceb204768323636cb56318b38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_a_model_declaring_nothing_returns_empty",
      "name": "test_a_model_declaring_nothing_returns_empty",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L334-L335",
      "signature": "def test_a_model_declaring_nothing_returns_empty(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a1d7f6cb53f66d59f0c99ae58e034051e9cff49745858428183d813d530b0b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInterfaceNormalisation"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_bad_intent_is_rejected",
      "name": "test_bad_intent_is_rejected",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L314-L318",
      "signature": "def test_bad_intent_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c844295311d9fae94ec19fbe39d9978fa704b3bbeadb785ca2792a0134a4df16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInterfaceNormalisation"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_callable_form_wins_over_a_static_list",
      "name": "test_callable_form_wins_over_a_static_list",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L326-L332",
      "signature": "def test_callable_form_wins_over_a_static_list(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cfacb4d417f5686a0797a695906b8db6e46a20720b6c6ef22395b70e4c80c6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInterfaceNormalisation"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_defaults_are_filled_in",
      "name": "test_defaults_are_filled_in",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L299-L306",
      "signature": "def test_defaults_are_filled_in(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b6320784381c57e6ec7389a169ba417b5dfe8d1ee68984de6cf85fbd76a4261",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInterfaceNormalisation"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_missing_keys_are_named",
      "name": "test_missing_keys_are_named",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L308-L312",
      "signature": "def test_missing_keys_are_named(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bfcd5579b70182b6e70d12e14212e4be6a132281e8e188dcb145de2e3b76b30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInterfaceNormalisation"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_non_numeric_value_is_rejected",
      "name": "test_non_numeric_value_is_rejected",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L320-L324",
      "signature": "def test_non_numeric_value_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "274089dbbc36f656996dbc5f1a1ec9d17958aa9d850b72d7c7c34aa9d81267d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestInterfaceNormalisation"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "name": "TestLayout",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L51-L80",
      "signature": "class TestLayout(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a6bd8c1189409b85ab293e297307b55dcb1a795533fe97519e192e7df1d13bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_all_references_present",
      "name": "test_all_references_present",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L55-L58",
      "signature": "def test_all_references_present(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a891f594cc0cb16f59b179acf10b484d51e799bfa51f24aa33ea3606a4e3aca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestLayout"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_no_script_shadows_a_stdlib_module",
      "name": "test_no_script_shadows_a_stdlib_module",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L66-L75",
      "signature": "def test_no_script_shadows_a_stdlib_module(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "28a12f0bacaab3ad700a46fdb708ce6b0bdc83cac0dbcd6d6eee69155c9dcfd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestLayout"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_scripts_are_executable_clis",
      "name": "test_scripts_are_executable_clis",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L77-L80",
      "signature": "def test_scripts_are_executable_clis(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "331958931b488bd8e8677d44bcf7d0208ffcdce9b3f5eff8c6379a83a22adfce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestLayout"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_skill_md_exists",
      "name": "test_skill_md_exists",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L52-L53",
      "signature": "def test_skill_md_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "93c3127ea48a241bff70f988287929b8fc3be515f483e5cbe19e777332dcc1e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestLayout"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_skill_md_links_every_reference",
      "name": "test_skill_md_links_every_reference",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L60-L64",
      "signature": "def test_skill_md_links_every_reference(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb1819f78b95baf450730d07b90bea34a75863e3a950441b0bcd2976490d7fef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestLayout"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli",
      "name": "TestStandardsCli",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L338-L355",
      "signature": "class TestStandardsCli(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbbbd6ed5c76c29e1e6e8d40d3484140e7af2d836ceb6aacac398ea159717167",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_list_runs_without_build123d",
      "name": "test_list_runs_without_build123d",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L339-L343",
      "signature": "def test_list_runs_without_build123d(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebb6655cb096bb5d094329d83c30728a20da5ecc088041b9da84e936cad0c0fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsCli"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_show_reports_the_source_document",
      "name": "test_show_reports_the_source_document",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L345-L350",
      "signature": "def test_show_reports_the_source_document(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "200fbcb67f6f228285738262ea161fb01985da2fd5c3818ec41767748efbafe1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsCli"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_show_unknown_standard_lists_alternatives",
      "name": "test_show_unknown_standard_lists_alternatives",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L352-L355",
      "signature": "def test_show_unknown_standard_lists_alternatives(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5aa0f9d999b7d45220e26e957b68e5a74206c1373bbad80dec31113b1ad25186",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsCli"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "name": "TestStandardsDatabase",
      "kind": "class",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L98-L152",
      "signature": "class TestStandardsDatabase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f17c23e149e4a1fcd68252aff15c81f67e6e42a7c93a82f934517187be2599a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L99-L100",
      "signature": "def setUp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7ed9e7405ce20fc408f5ad78ca384b874c2a2476890361b672e1b4a696eac49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_every_standard_is_well_formed",
      "name": "test_every_standard_is_well_formed",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L105-L114",
      "signature": "def test_every_standard_is_well_formed(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f47546f47edcc350eb0ba6722df51130ed079bf320a46f46e1a427e61cd33f71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_fit_checks_reference_real_dimensions",
      "name": "test_fit_checks_reference_real_dimensions",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L116-L124",
      "signature": "def test_fit_checks_reference_real_dimensions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd943b50282c8042a26a6823ddc7960791fe94fda65e1b42ad8770dc33dc82c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_get_standard_rejects_unknown_id",
      "name": "test_get_standard_rejects_unknown_id",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L150-L152",
      "signature": "def test_get_standard_rejects_unknown_id(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce605b83f789731bd2bacf06a7b64364e8e60f1ab1575e838302a1056d652140",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_metric_and_imperial_grids_are_distinct",
      "name": "test_metric_and_imperial_grids_are_distinct",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L143-L148",
      "signature": "def test_metric_and_imperial_grids_are_distinct(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "af8bc05eb72c324e5b69a3543b29e8d2e720eb51a2a2633ce736e742321157c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_slas_footprint_matches_the_published_standard",
      "name": "test_slas_footprint_matches_the_published_standard",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L137-L141",
      "signature": "def test_slas_footprint_matches_the_published_standard(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1921069b6efcbc9403a01e997dda50f72f237e2d889adf7b5f68d6886efd48b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_units_are_millimetres",
      "name": "test_units_are_millimetres",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L102-L103",
      "signature": "def test_units_are_millimetres(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "34616676c29d3791c856feaeb86162882dc954305552e7ad978fa2b6e502e39c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_unverified_entries_say_so_in_their_notes",
      "name": "test_unverified_entries_say_so_in_their_notes",
      "kind": "method",
      "path": "tests/lab-hardware-cad/test_scripts.py",
      "span": "L126-L135",
      "signature": "def test_unverified_entries_say_so_in_their_notes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fb06d0667fffe85cf1c032b51b4c17ff96e31cf0ca28aa074ed0d4f771612aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestStandardsDatabase"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L1-L401",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a75220011ab7b32e3f94c71f3629ff3a5c9534d3be6439b4f7eedd8bc3c23aaf",
      "chars": 18227,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "name": "ApiUrlTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L214-L266",
      "signature": "class ApiUrlTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73134170a5b4e7ce8ff5d16a78162dfb6819df42773cd697b55d652dd2e56821",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_a_custom_port_query_or_fragment_is_refused",
      "name": "test_a_custom_port_query_or_fragment_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L240-L251",
      "signature": "def test_a_custom_port_query_or_fragment_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e01487b79a21f5117f2fd7e002dc83af7c0c50c25107573d26e52fdb36b701d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_a_non_allowlisted_host_is_refused_and_lists_the_alternatives",
      "name": "test_a_non_allowlisted_host_is_refused_and_lists_the_alternatives",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L253-L256",
      "signature": "def test_a_non_allowlisted_host_is_refused_and_lists_the_alternatives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ae769e487d8d604c7209edd2c8ee942c29d6ffa8802cdafc105ffe45e620650",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_a_trailing_slash_and_mixed_case_host_are_normalised",
      "name": "test_a_trailing_slash_and_mixed_case_host_are_normalised",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L222-L227",
      "signature": "def test_a_trailing_slash_and_mixed_case_host_are_normalised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f22f3f0f31b89303980381c178a35b27a47c3cf51d304557905455d3f3d53ecd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_an_empty_url_is_refused",
      "name": "test_an_empty_url_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L264-L266",
      "signature": "def test_an_empty_url_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c62bfcf49cad963cb12f9b3da7b7e6c433b13f1b76a971689ad860931b3155f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_embedded_credentials_are_refused",
      "name": "test_embedded_credentials_are_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L234-L238",
      "signature": "def test_embedded_credentials_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29100dafcb9612272830efd12d761ac7d8d240657a8112258fbf87f2aa05ead9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_every_documented_region_url_normalises_to_itself",
      "name": "test_every_documented_region_url_normalises_to_itself",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L215-L220",
      "signature": "def test_every_documented_region_url_normalises_to_itself(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0370ceeb5624c5421e7cdc609d510d07f76568b16970ec00b1e51fa39a427997",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_plain_http_is_refused",
      "name": "test_plain_http_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L229-L232",
      "signature": "def test_plain_http_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c154051bce246f3ac04607a309aebc5cc85bcd2e7960a0c8755cc897518e8b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_the_path_must_be_exactly_api",
      "name": "test_the_path_must_be_exactly_api",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L258-L262",
      "signature": "def test_the_path_must_be_exactly_api(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8655e7431d2df2b9e30096563ea26b87afd1aa89dc1e83a7b66461dce61ce2fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiUrlTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#AuthParameterTests",
      "name": "AuthParameterTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L121-L156",
      "signature": "class AuthParameterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9afa026c9064be34b8a61b27f1cd7e27eda642223d0959aa9082c2d332bf245e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_an_omitted_expiry_defaults_to_now",
      "name": "test_an_omitted_expiry_defaults_to_now",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L153-L156",
      "signature": "def test_an_omitted_expiry_defaults_to_now(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b97897819e15583d97d2e363fedb2e91592198dcaf5221db488a19e9e41ade5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuthParameterTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_eln_parameters_carry_the_key_expiry_and_signature",
      "name": "test_eln_parameters_carry_the_key_expiry_and_signature",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L122-L132",
      "signature": "def test_eln_parameters_carry_the_key_expiry_and_signature(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f029d895ceb1bf4c4b8b11b12fb40c9edc3d6f5055f2de6ab78e69c86b7c952",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuthParameterTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_inventory_headers_sign_the_resolved_path",
      "name": "test_inventory_headers_sign_the_resolved_path",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L140-L151",
      "signature": "def test_inventory_headers_sign_the_resolved_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8f67ddf01d476e9a3186f7c18a2219ed4845c530e479cef811ed139fa92225a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuthParameterTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_the_password_never_appears_in_the_parameters",
      "name": "test_the_password_never_appears_in_the_parameters",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L134-L138",
      "signature": "def test_the_password_never_appears_in_the_parameters(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c75c140cb582c4a2d889af4e858e22a3c49bc2c823ae489d259321cc2ccf155d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuthParameterTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests",
      "name": "ComponentValidationTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L159-L171",
      "signature": "class ComponentValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a98d4b2728350c71f950e7df83a998f26e46ccc9f3789fd52f54e975aea57aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests.test_anything_outside_the_documented_shape_is_refused",
      "name": "test_anything_outside_the_documented_shape_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L167-L171",
      "signature": "def test_anything_outside_the_documented_shape_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "17a11dcbcb9b2483544cf9d30297b73870016c8a3037a2239dcb150223e4bfa9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComponentValidationTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests.test_valid_method_names_are_accepted",
      "name": "test_valid_method_names_are_accepted",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L160-L165",
      "signature": "def test_valid_method_names_are_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "443ea4b867a98781d7e7513e70e8e153eeabfd15e1a722793148d7c369445215",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComponentValidationTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "name": "ContainerLimitTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L305-L390",
      "signature": "class ContainerLimitTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3383031532d0be8540a0550ea051ed2ec975a3f73454f5a40bf6a6ee952d00f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests._inspect",
      "name": "_inspect",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L323-L328",
      "signature": "def _inspect(self, build) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "97b3e866ac60079117c87886f466e3b1d35256c2fa46c3f321a286edfe427ce5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_member_count_over_the_limit_is_reported",
      "name": "test_a_member_count_over_the_limit_is_reported",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L368-L375",
      "signature": "def test_a_member_count_over_the_limit_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9da9d17dae37bed6d389f6b156c2a3be292f672d695527c80532cb8b2c441164",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_missing_file_is_refused",
      "name": "test_a_missing_file_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L377-L380",
      "signature": "def test_a_missing_file_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "13523ccc1f4b181c42327d32945a8a793124d64639da2dbe7f373242c927e322",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_missing_manifest_is_reported",
      "name": "test_a_missing_manifest_is_reported",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L350-L354",
      "signature": "def test_a_missing_manifest_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "45111d66d8ec83336571677438a4a0969b17f938b028b33f0dd3d4d572ce0743",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_non_zip_file_is_refused_rather_than_crashing",
      "name": "test_a_non_zip_file_is_refused_rather_than_crashing",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L382-L387",
      "signature": "def test_a_non_zip_file_is_refused_rather_than_crashing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c074e9bf2d824599d331f12d63c234f73c5baf728fdb738a019e29ff4a37a28",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error",
      "name": "test_a_symlink_member_is_reported_as_an_error",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L341-L348",
      "signature": "def test_a_symlink_member_is_reported_as_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8d216129a508b34040e0f8ba36e0754f3ec81e90fe867fb98947355c1169715",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error.build",
      "name": "build",
      "kind": "function",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L342-L345",
      "signature": "def build(handle: zipfile.ZipFile) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f375b88cb3eca086bedaf33cf8de7935f035b3b6745617f0a06f19f3e1cc244",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_traversing_member_is_reported_as_an_error",
      "name": "test_a_traversing_member_is_reported_as_an_error",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L330-L339",
      "signature": "def test_a_traversing_member_is_reported_as_an_error(self) -> None: # The inspector reports rather than raises: the point is to hand back a # full account of what is wrong with an archive, not to stop at the # first problem.",
      "exported": true,
      "origin": "ast",
      "body_hash": "26acbeb4be67d7792495b158a039ac24f39f725a8daa772fde0b09c692df44b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_non_positive_limits_are_refused_outright",
      "name": "test_non_positive_limits_are_refused_outright",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L356-L366",
      "signature": "def test_non_positive_limits_are_refused_outright(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df49dec97736178644c4017d50d8c9b437f3467ef725c4eb0cf1e1188854671e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_the_documented_limits_are_positive_and_ordered",
      "name": "test_the_documented_limits_are_positive_and_ordered",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L306-L321",
      "signature": "def test_the_documented_limits_are_positive_and_ordered(self) -> None: # Every limit exists to stop a zip bomb; a zero or negative one would # disable the guard silently.",
      "exported": true,
      "origin": "ast",
      "body_hash": "93affb0552a10a56c211ad7e0fd66541690077360af6923689e371f106d35753",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_the_manifest_name_is_the_documented_one",
      "name": "test_the_manifest_name_is_the_documented_one",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L389-L390",
      "signature": "def test_the_manifest_name_is_the_documented_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "83ebab947f440fa570888ae2a05ae0fcc5d674ac58a2a28c71194f5965344635",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerLimitTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "name": "ContainerMemberTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L269-L302",
      "signature": "class ContainerMemberTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe0bb1c3604b41c0043335cc8fcd75d41256f3c23cafca22746b43dc43b2ae3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_backslashes_nulls_and_empty_names_are_rejected",
      "name": "test_backslashes_nulls_and_empty_names_are_rejected",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L282-L285",
      "signature": "def test_backslashes_nulls_and_empty_names_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cfd91435563b4641558a67995141c9893814db668e0539a471fc0b374b4e8e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMemberTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_ordinary_member_paths_are_accepted",
      "name": "test_ordinary_member_paths_are_accepted",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L272-L275",
      "signature": "def test_ordinary_member_paths_are_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ded0b39af8c29bfc0838e5356d55da55a4dc0ce9b33d53501fb933a0301d137",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMemberTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_redundant_but_harmless_segments_are_allowed",
      "name": "test_redundant_but_harmless_segments_are_allowed",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L287-L293",
      "signature": "def test_redundant_but_harmless_segments_are_allowed(self) -> None: # PurePosixPath collapses `.` and doubled separators, so these resolve # inside the extraction root and are not treated as ambiguous. Only # `..` actually escapes.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f9d893723edaf17c444f887b66f4d43c5948a6adaf254b6759114a2651fd0e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMemberTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_symlink_members_are_detected_from_the_mode_bits",
      "name": "test_symlink_members_are_detected_from_the_mode_bits",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L295-L302",
      "signature": "def test_symlink_members_are_detected_from_the_mode_bits(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7270a04afcaf4e5dd91eb6ecf30ad6011fc30c33d7a390f1d133dde59deea3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMemberTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_traversal_and_absolute_paths_are_rejected",
      "name": "test_traversal_and_absolute_paths_are_rejected",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L277-L280",
      "signature": "def test_traversal_and_absolute_paths_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c1aebeeddbccad33eddfbe55bc59bac9688218d2d46f651a43de74772af10b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ContainerMemberTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "name": "InventoryPathTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L174-L211",
      "signature": "class InventoryPathTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "75d77373e8e52275ef2207c533ab9ee88f6f3f3946d3f77a18dda4fe208fa940",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_path_outside_the_public_v1_prefix_is_refused",
      "name": "test_a_path_outside_the_public_v1_prefix_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L195-L199",
      "signature": "def test_a_path_outside_the_public_v1_prefix_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "457b214a6a7df8723c68acf33c0ae9b97cb2425d8b7055ed6a427f203ece27ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_percent_encoded_path_is_refused",
      "name": "test_a_percent_encoded_path_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L187-L189",
      "signature": "def test_a_percent_encoded_path_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c519fcc20f7e524132c96dac4e7db22e01737957fa900066652ca3b1ae1d5435",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_query_or_fragment_is_refused",
      "name": "test_a_query_or_fragment_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L180-L185",
      "signature": "def test_a_query_or_fragment_is_refused(self) -> None: # Signing a path but sending it with a query signs the wrong thing.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3a31209d1aa1fdf754f8ec3cbf9f37deaf9a36740eb6602f5bfb26260a24f3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_resolved_route_is_accepted",
      "name": "test_a_resolved_route_is_accepted",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L175-L178",
      "signature": "def test_a_resolved_route_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccee2440cc14b7a26714e17ec7c412a64ce264ea6b3b687861335adc9dafa019",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_traversal_and_ambiguous_segments_are_refused",
      "name": "test_traversal_and_ambiguous_segments_are_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L201-L205",
      "signature": "def test_traversal_and_ambiguous_segments_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "11536c02d2a709524faadc35fffaed64bfa5c85b5393d23b809844601cf86413",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_unresolved_placeholders_are_refused",
      "name": "test_unresolved_placeholders_are_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L191-L193",
      "signature": "def test_unresolved_placeholders_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "79639eeef9e0246ddf0b3b7cdc912579d85bb1d437aabc302f1612fa031ad843",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_whitespace_and_backslashes_are_refused",
      "name": "test_whitespace_and_backslashes_are_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L207-L211",
      "signature": "def test_whitespace_and_backslashes_are_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c383bf7b4fc1f0e5b398f8f173f664bdbfd2c4ea0938be20490401a27ffe1fb1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryPathTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "name": "SignatureTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L46-L118",
      "signature": "class SignatureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aeeede6f23f2077617d05e99ae126b917853f473f3460e2b79c59b7396c0e2d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_a_negative_expiry_is_refused",
      "name": "test_a_negative_expiry_is_refused",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L94-L96",
      "signature": "def test_a_negative_expiry_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "94532c29352e0c097c018550075331724dd679b94af6014580db5e066b549451",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_empty_inputs_are_refused_before_signing",
      "name": "test_empty_inputs_are_refused_before_signing",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L82-L92",
      "signature": "def test_empty_inputs_are_refused_before_signing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "59a4e2b0de36b45aab34b8ffd9b1fd7a954047045017fdc893b19f20980a9bf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_every_input_changes_the_signature",
      "name": "test_every_input_changes_the_signature",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L70-L80",
      "signature": "def test_every_input_changes_the_signature(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c380d04de9b5179bf90c99343f31000604e1a762c7c754c00d11796d41dae87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_official_vendor_vector_reproduces_exactly",
      "name": "test_the_official_vendor_vector_reproduces_exactly",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L47-L55",
      "signature": "def test_the_official_vendor_vector_reproduces_exactly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5e610778666f67bd877d8b7079f2d8a656072118eb1e82ba1966b8bce82b380",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call",
      "name": "test_the_self_test_command_reports_a_pass_without_a_network_call",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L103-L118",
      "signature": "def test_the_self_test_command_reports_a_pass_without_a_network_call(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52792700b217f97e5de6dbe270b22722dfebb182991f1e399cac534a80ba6017",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call.Args",
      "name": "Args",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L104-L105",
      "signature": "class Args",
      "exported": true,
      "origin": "ast",
      "body_hash": "54b9ff4e2e8c9660fd0fe01d3ac164c834779a38099c2bcf214801ff9591e882",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_signature_is_base64_hmac_sha512_over_the_concatenation",
      "name": "test_the_signature_is_base64_hmac_sha512_over_the_concatenation",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L57-L68",
      "signature": "def test_the_signature_is_base64_hmac_sha512_over_the_concatenation(self) -> None: # Recomputed independently: any change to the message layout shows up # here rather than as a 401 from the API.",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c03c94e0e6ed705627106c57c61b5ab68ba04c52441b6d7cd3f5807f848b30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_signature_is_uri_encoded_for_a_query_parameter",
      "name": "test_the_signature_is_uri_encoded_for_a_query_parameter",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L98-L101",
      "signature": "def test_the_signature_is_uri_encoded_for_a_query_parameter(self) -> None: # Base64 contains '+' and '/', which are meaningful in a query string.",
      "exported": true,
      "origin": "ast",
      "body_hash": "78a696b71c2969d9a6692ca765cffb84d1e53c36c56d4be64e1c7ac1e55074b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SignatureTests"
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#XmlHelperTests",
      "name": "XmlHelperTests",
      "kind": "class",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L393-L396",
      "signature": "class XmlHelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1448f94b883eadf5c2e6b6121328c8ff908e817cefce53a7b1cf4c10461a4122",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/labarchive-integration/test_scripts.py#XmlHelperTests.test_namespaced_tags_are_reduced_to_their_local_name",
      "name": "test_namespaced_tags_are_reduced_to_their_local_name",
      "kind": "method",
      "path": "tests/labarchive-integration/test_scripts.py",
      "span": "L394-L396",
      "signature": "def test_namespaced_tags_are_reduced_to_their_local_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3a7b135cb964574a6a06d043844174b61bc2c27c2d39bfc0a951798c410b102",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "XmlHelperTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L1-L266",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f36de2589dd48f29a6280a05048fdbb6657d0712e16f7ca6012e966b12f69791",
      "chars": 10794,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#CatalogueTests",
      "name": "CatalogueTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L118-L148",
      "signature": "class CatalogueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4958162c4cb99b9f1b505f2c0f6ca8f59670179b59a815477b49e06eae5ea116",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#CatalogueTests.test_every_symbol_group_is_non_empty_and_latch_scoped",
      "name": "test_every_symbol_group_is_non_empty_and_latch_scoped",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L119-L126",
      "signature": "def test_every_symbol_group_is_non_empty_and_latch_scoped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "961f3646133511352b771e66b3ba620ed67cfbdfe05024007f520ad8ad06186a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#CatalogueTests.test_method_targets_are_also_catalogued_as_symbols",
      "name": "test_method_targets_are_also_catalogued_as_symbols",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L137-L148",
      "signature": "def test_method_targets_are_also_catalogued_as_symbols(self) -> None: # A class whose methods are probed must itself be in SYMBOL_GROUPS, or # the report cannot say whether a missing method means a missing class.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e949955323c0efb6051b5cec817b2fae767fccb140cea70fe015c9d9e59268f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#CatalogueTests.test_no_symbol_is_catalogued_twice",
      "name": "test_no_symbol_is_catalogued_twice",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L128-L135",
      "signature": "def test_no_symbol_is_catalogued_twice(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "86b9cdf665d77465aab1d9bb9977817bd35fbfd70312b05191262a0aad4a638b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ExitCodeTests",
      "name": "ExitCodeTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L226-L261",
      "signature": "class ExitCodeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7576d74e33192adf48bc38887780502fb45b8f67a9e6816affbdfc1bb56dc1fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ExitCodeTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L227-L233",
      "signature": "def _run(self, *flags: str) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "74ecd1f52753e6049233707c0c49e4513f5e40cf6a65a8922a4735f67f42baf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_a_missing_sdk_exits_two_regardless_of_strict",
      "name": "test_a_missing_sdk_exits_two_regardless_of_strict",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L235-L247",
      "signature": "def test_a_missing_sdk_exits_two_regardless_of_strict(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5aeec24b2d1ca8563c69e22d4e1c4112eaf769538c9ec3308e0a1d6f091bb52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_an_installed_sdk_exits_zero",
      "name": "test_an_installed_sdk_exits_zero",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L255-L261",
      "signature": "def test_an_installed_sdk_exits_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "841948839af16c1190b3e0967a549b91253c92b80f7b91d4a6789a4ab19aa7bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_json_output_parses_even_when_the_sdk_is_absent",
      "name": "test_json_output_parses_even_when_the_sdk_is_absent",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L249-L253",
      "signature": "def test_json_output_parses_even_when_the_sdk_is_absent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f359ae2a691978b07ff756cf277f357ed111b8eab4a0361cafc125c89614344",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests",
      "name": "MethodInspectionTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L102-L115",
      "signature": "class MethodInspectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "faa459afe325243f31fc0179b5f6a062e155b3d7487edda0a04774b982e7db74",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests.test_an_unimportable_class_reports_one_error_not_per_method",
      "name": "test_an_unimportable_class_reports_one_error_not_per_method",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L112-L115",
      "signature": "def test_an_unimportable_class_reports_one_error_not_per_method(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "91ae205d2a1470ddfe709221126cabb3e81859c9989826d7a2b548da2789d4f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MethodInspectionTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests.test_present_and_absent_methods_are_distinguished",
      "name": "test_present_and_absent_methods_are_distinguished",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L103-L110",
      "signature": "def test_present_and_absent_methods_are_distinguished(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "91902a06b9d46ba3244af06db3787cf6eb3a36fc13a24b3bd0019629ec6a71de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MethodInspectionTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests",
      "name": "NormalizeReprTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L35-L57",
      "signature": "class NormalizeReprTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe42b82f59d373a2deedfae9085ae82a4c7907aa6f8d6a1cb4dc0a52ac630cb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_bare_addresses_are_replaced_everywhere",
      "name": "test_bare_addresses_are_replaced_everywhere",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L44-L48",
      "signature": "def test_bare_addresses_are_replaced_everywhere(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "623800829073906e927caa1e8051269c954420a3706928a8ed38d54e300a14f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizeReprTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_object_repr_loses_its_address",
      "name": "test_object_repr_loses_its_address",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L38-L42",
      "signature": "def test_object_repr_loses_its_address(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c7173c3f36ca4548a8837539e87f109feaa2bd80f625f4152fc7e5508c8be6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizeReprTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_scrubbing_is_idempotent",
      "name": "test_scrubbing_is_idempotent",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L55-L57",
      "signature": "def test_scrubbing_is_idempotent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d727266d987c040048296ae0091517958786513869bf3f11e56ef8f5236bd8fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizeReprTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_text_without_an_address_is_untouched",
      "name": "test_text_without_an_address_is_untouched",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L50-L53",
      "signature": "def test_text_without_an_address_is_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c82f8f594c1b593c7b44921f2f0c274696f7d7968f29ce35d2ca26f644f50ad4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizeReprTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ReportShapeTests",
      "name": "ReportShapeTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L200-L223",
      "signature": "class ReportShapeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec7423c9717ac2b041a99c60aadc3aaf9575a9a0ce800f731d4e438f6fbdebe7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ReportShapeTests.test_printing_a_report_without_the_sdk_does_not_raise",
      "name": "test_printing_a_report_without_the_sdk_does_not_raise",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L215-L223",
      "signature": "def test_printing_a_report_without_the_sdk_does_not_raise(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "abdde7f0bb1b5b315f27fa73e41348f0c979d81b19cd42d0928f4fed0fae75fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportShapeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ReportShapeTests.test_the_report_describes_the_environment_and_every_group",
      "name": "test_the_report_describes_the_environment_and_every_group",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L201-L208",
      "signature": "def test_the_report_describes_the_environment_and_every_group(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0865e0ea322abd860efd93093a8675cae39386bb49e0c0912098a3748c4b442a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportShapeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#ReportShapeTests.test_the_report_is_json_serialisable",
      "name": "test_the_report_is_json_serialisable",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L210-L213",
      "signature": "def test_the_report_is_json_serialisable(self) -> None: # --json is the documented machine-readable path, so nothing in the # report may be a non-serialisable introspection object.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f603e1039819c91b3c8344300f75166d777103593fb7a31656a31b307edc8bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportShapeTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "name": "RequiredSymbolTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L151-L197",
      "signature": "class RequiredSymbolTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb2e2a3d9dfe4c26f9ddd311300dc6a258d5bbad0739e9e584e43722fcbbaee3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests._report",
      "name": "_report",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L152-L160",
      "signature": "def _report(self, availability: dict[str, bool]) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "d96e6f00aea70a169c75e684eea72cba2334496460cab326a3d9b1ba204aa2bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredSymbolTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_a_fully_available_sdk_has_no_required_failures",
      "name": "test_a_fully_available_sdk_has_no_required_failures",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L171-L173",
      "signature": "def test_a_fully_available_sdk_has_no_required_failures(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "26a6820d352ab210e482e73b6f5c5e51d1256b59000ef9769bf9a3972bba21a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredSymbolTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_an_empty_report_counts_as_failing",
      "name": "test_an_empty_report_counts_as_failing",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L184-L187",
      "signature": "def test_an_empty_report_counts_as_failing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cef529aea9e19572feaf46d1fe6f63b2ca5866e109014867e9d90903cdb7e7ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredSymbolTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_any_single_missing_core_symbol_is_a_failure",
      "name": "test_any_single_missing_core_symbol_is_a_failure",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L175-L182",
      "signature": "def test_any_single_missing_core_symbol_is_a_failure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be452c4db27b5a530e685d09ecbe50664da8dc4d43eba0fded330fe342ba0fdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredSymbolTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_every_required_symbol_is_one_the_script_catalogues",
      "name": "test_every_required_symbol_is_one_the_script_catalogues",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L189-L197",
      "signature": "def test_every_required_symbol_is_one_the_script_catalogues(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c7a3e3bdcb6bb76a325484b895be11ca6555412cd4029424e9f882f0f3b054b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredSymbolTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests",
      "name": "SafeSignatureTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L60-L69",
      "signature": "class SafeSignatureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "258a4535c88b25dd711fca3f18db2237d183a54b894472441de7de9604f3d845",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests.test_a_signature_is_returned_for_an_ordinary_function",
      "name": "test_a_signature_is_returned_for_an_ordinary_function",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L61-L64",
      "signature": "def test_a_signature_is_returned_for_an_ordinary_function(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f1e9dfc8b47b27d2be196f29739f847083e49a1e8e011297dbd5ea14bbbe14b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafeSignatureTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests.test_objects_without_a_signature_yield_none_rather_than_raising",
      "name": "test_objects_without_a_signature_yield_none_rather_than_raising",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L66-L69",
      "signature": "def test_objects_without_a_signature_yield_none_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1cf4de69584e22619fada3b60e2c851b832bb5a4cde1ca7dc87fe04ca4c74520",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafeSignatureTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests",
      "name": "SymbolInspectionTests",
      "kind": "class",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L72-L99",
      "signature": "class SymbolInspectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a4d94640ef3730d91daeec7072b0e53bb66c0f6e7c33bd6aa1681f985d331a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_a_missing_symbol_is_reported_without_raising",
      "name": "test_a_missing_symbol_is_reported_without_raising",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L81-L84",
      "signature": "def test_a_missing_symbol_is_reported_without_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04b00fa03e7a348efd2a96a9ff4f4471576b35a8dbdad0e455b6e87e2396bc5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolInspectionTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_an_available_symbol_is_reported_with_its_kind_and_signature",
      "name": "test_an_available_symbol_is_reported_with_its_kind_and_signature",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L73-L79",
      "signature": "def test_an_available_symbol_is_reported_with_its_kind_and_signature(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d6051634e278a0f97db53445164fe8bd93edcf08edfafe9004bdaadff9e5695",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolInspectionTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_an_unimportable_module_becomes_the_diagnostic",
      "name": "test_an_unimportable_module_becomes_the_diagnostic",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L86-L92",
      "signature": "def test_an_unimportable_module_becomes_the_diagnostic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b30a91d59e19cb4c2eebc2e9c64c0965eed6f37ff99444af59bf23e9f5e854ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolInspectionTests"
    },
    {
      "id": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_plain_symbols_carry_no_workflow_interface",
      "name": "test_plain_symbols_carry_no_workflow_interface",
      "kind": "method",
      "path": "tests/latchbio-integration/test_scripts.py",
      "span": "L94-L99",
      "signature": "def test_plain_symbols_carry_no_workflow_interface(self) -> None: # `python_interface` only appears for Latch workflow objects; it must # not be invented for ordinary callables.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3713759a8bf2998b96ff56da5ce2eb12ef6f0849062e71f2ecc88a08a6462e57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolInspectionTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L1-L116",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ba0cad28f2e1ae3d547cd543c78a4704bcbc25f2843f6f28d9db36db9e2bd9e7",
      "chars": 4405,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latex-posters/test_scripts.py#AssetTests",
      "name": "AssetTests",
      "kind": "class",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L106-L111",
      "signature": "class AssetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0dd4e38eb48dddc75ee4c5fdd0396b0bfeb84f2fb74711142c1b680aee0afc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latex-posters/test_scripts.py#AssetTests.test_every_documented_asset_is_shipped",
      "name": "test_every_documented_asset_is_shipped",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L107-L111",
      "signature": "def test_every_documented_asset_is_shipped(self) -> None: # The skill's value is its templates; a SKILL.md that names one it does # not ship sends the agent looking for a file that is not there.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5780ac096bc4e1653a201be847347c5aaf77dc1a433b5f7312946d569397141",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AssetTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "name": "ReviewScriptTests",
      "kind": "class",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L36-L103",
      "signature": "class ReviewScriptTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "76ee97c06211b6cc23020edf863ccdfc92fead4ee56219d33e6d6284b592c8e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L54-L61",
      "signature": "def _run(self, *args: str) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "0e574a620cd8e9acad69a6922f55fc765d47ee1fbe0a6b295e536d2ffedd4bc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L37-L38",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "657b24fd1752573e85cb332e856ae69b43d079572d6ed1940da48ce7529d74a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_a_missing_file_exits_non_zero_and_names_it",
      "name": "test_a_missing_file_exits_non_zero_and_names_it",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L68-L71",
      "signature": "def test_a_missing_file_exits_non_zero_and_names_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eaf563993a7ae5f89ff14a8b5140eb80da6f4518364d2c30bd381547048d4233",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_a_missing_poppler_tool_degrades_instead_of_aborting",
      "name": "test_a_missing_poppler_tool_degrades_instead_of_aborting",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L73-L94",
      "signature": "def test_a_missing_poppler_tool_degrades_instead_of_aborting(self) -> None: # Deliberately no `set -e`: this is a report, and one unavailable # inspector must not truncate the remaining checks or the manual # checklist. Running with an empty PATH-ish environment proves it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "44afc9c488270b9a2641f28ac6550d886e87acf6744b4c84f36921fd8ccf0db1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_every_python_script_it_invokes_is_shipped",
      "name": "test_every_python_script_it_invokes_is_shipped",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L96-L103",
      "signature": "def test_every_python_script_it_invokes_is_shipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a82fbc9b6c399e529dc9528311b3608c4cfd5db34f9d4179c6b7f85105934ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_it_is_executable_shell_with_a_shebang",
      "name": "test_it_is_executable_shell_with_a_shebang",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L40-L43",
      "signature": "def test_it_is_executable_shell_with_a_shebang(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d80db6af3d3c44a0c0cbdb5e575f2e1d8ea7efbffc5b78fb42d8ae62f47601a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_it_parses_as_bash",
      "name": "test_it_parses_as_bash",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L45-L52",
      "signature": "def test_it_parses_as_bash(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f26a80bfbc40de3fa248350a1a0201044a2f1964e151c201eb0e4d1881c8fd9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_no_argument_exits_non_zero_with_usage",
      "name": "test_no_argument_exits_non_zero_with_usage",
      "kind": "method",
      "path": "tests/latex-posters/test_scripts.py",
      "span": "L63-L66",
      "signature": "def test_no_argument_exits_non_zero_with_usage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a78bf8627cf20b1cd46727fda9e8db4d212f9a56370a87a90deb31348b88e5df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewScriptTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L1-L220",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c8b6980b41aca81a76c6c781bfa1cc4915a42d5ef4a1fd40387bb48a3da0f2ce",
      "chars": 8100,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "name": "DiscoveryTests",
      "kind": "class",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L85-L134",
      "signature": "class DiscoveryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d77ca9f52f733a4387e3c59bf7af5324a3aa36fdee8aa84b0d98182a63cd1a0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "name": "_found",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L97-L100",
      "signature": "def _found(self, **kwargs) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "031c0804782c1743d837aa2f8e3ad77465dae5fdf8a3dbc27124efdffdba7775",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L86-L89",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_is_matched_case_insensitively",
      "name": "test_an_explicit_extension_is_matched_case_insensitively",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L117-L119",
      "signature": "def test_an_explicit_extension_is_matched_case_insensitively(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "179ff52d621bc92ac6b31c240d408b6f54118195652f028455ad17fc7bd12a98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_narrows_the_selection",
      "name": "test_an_explicit_extension_narrows_the_selection",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L112-L115",
      "signature": "def test_an_explicit_extension_narrows_the_selection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fafca6cd48845c8a6d3c2ddfad7136a96efa61480ce8c29ebfa9e4d459800713",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_directories_are_skipped",
      "name": "test_directories_are_skipped",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L127-L129",
      "signature": "def test_directories_are_skipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9704469d01cc847a96b12fd058851f2f5a067b2e7d11461ca02659e85cdde0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "name": "test_matching_is_case_insensitive",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L108-L110",
      "signature": "def test_matching_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "710728f3307d78d49f3068228ab30f4a4fcec1068d44372a5405fe4115592b96",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_only_supported_extensions_are_yielded",
      "name": "test_only_supported_extensions_are_yielded",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L102-L106",
      "signature": "def test_only_supported_extensions_are_yielded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df0dbdafd9a103990e3e30a3a342b9aa9d20c67fe31bd8c7c9bf04055803a35e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "name": "test_recursion_is_opt_in",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L121-L125",
      "signature": "def test_recursion_is_opt_in(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9dddbfe5623b15c1d3d1f41fab2a4b70c26069b486c48c01b52fefcc0ac712f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "name": "test_the_order_is_deterministic",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L131-L134",
      "signature": "def test_the_order_is_deterministic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d124018fe3585a35df05cc9bc9a9fef96cfe8712824e388c0d3029227492ceb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "name": "touch",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L91-L95",
      "signature": "def touch(self, relative: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "41e5ffba1c3d9223de0dc12b4f8c351dbfdc53117bcc78c4e772a2f99c3d2433",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ExtensionTests",
      "name": "ExtensionTests",
      "kind": "class",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L70-L82",
      "signature": "class ExtensionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "33452e9c55aa132f3338fd76f62d0f20db80af9ab815813232655037ccd10393",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#ExtensionTests.test_the_default_set_is_lowercase_and_dotted",
      "name": "test_the_default_set_is_lowercase_and_dotted",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L71-L76",
      "signature": "def test_the_default_set_is_lowercase_and_dotted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "472b94659b758cb89cdf1c694bfe9b0caf9f10d5f94e0c52c76ae5601627a5c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ExtensionTests.test_the_documented_document_and_image_families_are_covered",
      "name": "test_the_documented_document_and_image_families_are_covered",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L78-L82",
      "signature": "def test_the_documented_document_and_image_families_are_covered(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "77a20922a8b3df065e08d90759c5f5b7e26538ed2baa614757c7338013cc17e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#parse_result",
      "name": "parse_result",
      "kind": "function",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L50-L54",
      "signature": "def parse_result(text: str = \"hello\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "4acdea4c12343400a58fe77b76b3156098e3b8407b89b588f5043c1018336ad3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests",
      "name": "ParseOneTests",
      "kind": "class",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L161-L215",
      "signature": "class ParseOneTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5fc6e4a080fcfd749aed71e50dd57a917aeef24be847e9a725fcfb281268148",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L162-L168",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc17da117783a16aff8dfb4aa162b71b60d8e53d86fa85ebc48bdc33467b7b4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParseOneTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests.test_a_failing_document_is_reported_not_raised",
      "name": "test_a_failing_document_is_reported_not_raised",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L191-L199",
      "signature": "def test_a_failing_document_is_reported_not_raised(self) -> None: # One corrupt file must not abort a hundred-document batch.",
      "exported": true,
      "origin": "ast",
      "body_hash": "11105fbeeb2bc1c2eb4f04a8186366ec44baa2c32c3c23cad42cc9a4df5dd27a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParseOneTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests.test_an_unknown_format_falls_back_to_text",
      "name": "test_an_unknown_format_falls_back_to_text",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L213-L215",
      "signature": "def test_an_unknown_format_falls_back_to_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8814d79e5e82c20aaa3e93f457f7bcedf8ca3a904d0f2039cd924505d27e6d49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParseOneTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests.test_json_output_writes_the_structured_result",
      "name": "test_json_output_writes_the_structured_result",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L181-L189",
      "signature": "def test_json_output_writes_the_structured_result(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d10b0ae431567a24517370fecd071812f58ee45ad36d2f156f3a53995e0b6125",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParseOneTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests.test_text_output_writes_the_plain_text",
      "name": "test_text_output_writes_the_plain_text",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L170-L179",
      "signature": "def test_text_output_writes_the_plain_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5cda608f33678a41ca353fa81c05316b69a00033dcc0246d3f8f94cc03dbcc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParseOneTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#ParseOneTests.test_the_output_name_comes_from_the_source_stem",
      "name": "test_the_output_name_comes_from_the_source_stem",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L201-L211",
      "signature": "def test_the_output_name_comes_from_the_source_stem(self) -> None: # Consequence: report.pdf and report.docx both write report.txt.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fe3c9d3cea5a6afe9765831d8a21729f5194311a583a302ffcbde7fc49322b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ParseOneTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#SerialisationTests",
      "name": "SerialisationTests",
      "kind": "class",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L137-L158",
      "signature": "class SerialisationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cd23eead56be0906c7922ac274884e2b0c97374fc24390cb9ee39ba89aa81a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#SerialisationTests.test_a_result_becomes_a_json_serialisable_dictionary",
      "name": "test_a_result_becomes_a_json_serialisable_dictionary",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L138-L142",
      "signature": "def test_a_result_becomes_a_json_serialisable_dictionary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5168923f76a16e52c5ce412a473837c8fcfd7d6f7914c2629f72e4a3edf3915d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialisationTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#SerialisationTests.test_a_text_item_keeps_its_position_font_and_confidence",
      "name": "test_a_text_item_keeps_its_position_font_and_confidence",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L150-L158",
      "signature": "def test_a_text_item_keeps_its_position_font_and_confidence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfbed33ed140015f4fa9d05d7d42e2a3f5c24776952aa1443723f4075a9de06c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialisationTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#SerialisationTests.test_page_geometry_and_text_items_survive",
      "name": "test_page_geometry_and_text_items_survive",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L144-L148",
      "signature": "def test_page_geometry_and_text_items_survive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f5da61dd6350b82d4e6d1338abc924012f1e207db9977c2e3f0ff36897ada89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialisationTests"
    },
    {
      "id": "tests/liteparse/test_scripts.py#StubParser",
      "name": "StubParser",
      "kind": "class",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L57-L67",
      "signature": "class StubParser",
      "exported": true,
      "origin": "ast",
      "body_hash": "74874acc0455f6ba86cc5a7c960908e692032dba2a05b3cc752dd87cfb2c975c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/liteparse/test_scripts.py#StubParser.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L60-L61",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e0c52e6978b6c2f19c6c7888c0b5e7935eb6e4613fc7f5b570807d2e1089d868",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubParser"
    },
    {
      "id": "tests/liteparse/test_scripts.py#StubParser.parse",
      "name": "parse",
      "kind": "method",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L63-L67",
      "signature": "def parse(self, path: Path)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa1c15a9bf04db29e6f0088ea9f070878b250de88ce1a2354971dde1a685c785",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubParser"
    },
    {
      "id": "tests/liteparse/test_scripts.py#text_item",
      "name": "text_item",
      "kind": "function",
      "path": "tests/liteparse/test_scripts.py",
      "span": "L37-L47",
      "signature": "def text_item(text: str = \"hello\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "b279ab0b458c1b0bcdc84c370c839e850d5638874cbcc8ad32dfde303e0804a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L1-L275",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5126fb99c4f1d2c930cf8a331922f68bddaa5df4aef562459c5f8172f34586e3",
      "chars": 11486,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "name": "DeduplicationTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L68-L108",
      "signature": "class DeduplicationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7c30e24282ff27cc1c267992bc4d91e4410edf42a48af25a8d9f6363257ece1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests.test_an_empty_list_deduplicates_to_an_empty_list",
      "name": "test_an_empty_list_deduplicates_to_an_empty_list",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L103-L104",
      "signature": "def test_an_empty_list_deduplicates_to_an_empty_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bd3ebc49855c78b85c197c462aab57d0a2db557bb8816c52509bbf61033f7c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests.test_doi_comparison_ignores_case_and_surrounding_space",
      "name": "test_doi_comparison_ignores_case_and_surrounding_space",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L76-L81",
      "signature": "def test_doi_comparison_ignores_case_and_surrounding_space(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "95b3ec51b1c5b959476e27942e82aafb346c7f303785aade31c1cd53592b3aa3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests.test_records_sharing_a_doi_collapse_to_one",
      "name": "test_records_sharing_a_doi_collapse_to_one",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L69-L74",
      "signature": "def test_records_sharing_a_doi_collapse_to_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f5dbbc59639dc9b73018c07972afced4d6e0c65f20cd4f11406d92b957ff7a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests.test_records_with_neither_doi_nor_title_are_all_kept",
      "name": "test_records_with_neither_doi_nor_title_are_all_kept",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L106-L108",
      "signature": "def test_records_with_neither_doi_nor_title_are_all_kept(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5999b4c97dd403d87010324b14d0942fadac12d2f64c66c523bbb80470c1c52c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests.test_the_first_occurrence_is_the_one_kept",
      "name": "test_the_first_occurrence_is_the_one_kept",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L94-L101",
      "signature": "def test_the_first_occurrence_is_the_one_kept(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4629c2dff06cb3c018e2eccc982d1fabd23aac9b0dda94de621e0271f21eb15c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#DeduplicationTests.test_titles_only_deduplicate_records_that_have_no_doi",
      "name": "test_titles_only_deduplicate_records_that_have_no_doi",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L83-L92",
      "signature": "def test_titles_only_deduplicate_records_that_have_no_doi(self) -> None: # Two records with the same title but different DOIs are two papers.",
      "exported": true,
      "origin": "ast",
      "body_hash": "73f09107dfee068453d65a58f0ec976300a961c9189083acbf9ce197c111644a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeduplicationTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#DependencyCheckTests",
      "name": "DependencyCheckTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L263-L270",
      "signature": "class DependencyCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de96483d7f821d82bff76238a3a8814d0a6f3ce356e10dafa54e4a02c1341e0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#DependencyCheckTests.test_the_pdf_generator_reports_missing_tooling_rather_than_crashing",
      "name": "test_the_pdf_generator_reports_missing_tooling_rather_than_crashing",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L264-L270",
      "signature": "def test_the_pdf_generator_reports_missing_tooling_rather_than_crashing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9381b4a59a10207100654c1a45e0e5b2479621e9e3cf99c9330cb992a41f98de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyCheckTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests",
      "name": "FormattingTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L203-L246",
      "signature": "class FormattingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8e6a51f53a6a74ab952576d6af4c5bd23fdf9db03cf79588c3af6dd322b8df7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_an_empty_corpus_formats_without_error",
      "name": "test_an_empty_corpus_formats_without_error",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L242-L246",
      "signature": "def test_an_empty_corpus_formats_without_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c7b83db91ef292c4e99ecba4e4f834cd7ffbe668e25eb83eacf3139a4812213",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_an_unknown_format_is_refused_by_name",
      "name": "test_an_unknown_format_is_refused_by_name",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L238-L240",
      "signature": "def test_an_unknown_format_is_refused_by_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e87da6e3fcb618583e725de0e185e66dca1f2d41cc87c9557a32e9bfb3cf6d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_bibtex_entries_are_balanced_and_keyed_by_author_and_year",
      "name": "test_bibtex_entries_are_balanced_and_keyed_by_author_and_year",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L222-L227",
      "signature": "def test_bibtex_entries_are_balanced_and_keyed_by_author_and_year(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "47bbbca8c2e331fcd14b7b66b1c0aa4e6b2cf69e11ec9297e8fd479f752cbb6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_bibtex_falls_back_to_a_placeholder_key",
      "name": "test_bibtex_falls_back_to_a_placeholder_key",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L234-L236",
      "signature": "def test_bibtex_falls_back_to_a_placeholder_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d1e4edc4e1dfccc321b4e4afd63e783474daf6ab1383bc35afcc5c84674c195",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_bibtex_omits_fields_the_record_does_not_have",
      "name": "test_bibtex_omits_fields_the_record_does_not_have",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L229-L232",
      "signature": "def test_bibtex_omits_fields_the_record_does_not_have(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10590db9635aa7f8d024b9b404499bdcec2ea06f63b741ab21cc878500079e28",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_json_output_round_trips",
      "name": "test_json_output_round_trips",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L204-L206",
      "signature": "def test_json_output_round_trips(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40ca5e03c085b8c9e366fac92ce98ffdd4db3e143537f4b40c5972d5d86a16f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_markdown_lists_every_record_with_a_resolvable_doi_link",
      "name": "test_markdown_lists_every_record_with_a_resolvable_doi_link",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L208-L214",
      "signature": "def test_markdown_lists_every_record_with_a_resolvable_doi_link(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "68bb3a2bf02836815345841387c4b2fae3e8d296e451c38a276b581fb058b6cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#FormattingTests.test_markdown_substitutes_placeholders_for_absent_fields",
      "name": "test_markdown_substitutes_placeholders_for_absent_fields",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L216-L220",
      "signature": "def test_markdown_substitutes_placeholders_for_absent_fields(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "36590557987ada0de4e5c894f4953a239c8348cb3800b95f60c7eb4cb2a0a3d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormattingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#PipelineTests",
      "name": "PipelineTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L249-L260",
      "signature": "class PipelineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d9c7198bbfaef23fa110429b8ce011c61da98c9e79eb195b7e3b03fc97f1331",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#PipelineTests.test_dedupe_filter_and_rank_compose_into_a_stable_corpus",
      "name": "test_dedupe_filter_and_rank_compose_into_a_stable_corpus",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L250-L260",
      "signature": "def test_dedupe_filter_and_rank_compose_into_a_stable_corpus(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fd39a6ea34f9cd0cf6e3807a0672f012808c1847296719fdf6b5ca451403c1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests",
      "name": "RankingTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L111-L144",
      "signature": "class RankingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bc97a9f58a581b14cb89ad18201eca86064b2834e05e8b611b6d4758d8b6cde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests.test_a_missing_citation_count_sorts_last_rather_than_erroring",
      "name": "test_a_missing_citation_count_sorts_last_rather_than_erroring",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L142-L144",
      "signature": "def test_a_missing_citation_count_sorts_last_rather_than_erroring(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7b7bf041444f4ef9149d8c518f2a49bce5cc2df5ccfa539a78abeef800ca9c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests.test_an_unknown_criterion_leaves_the_order_untouched",
      "name": "test_an_unknown_criterion_leaves_the_order_untouched",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L131-L135",
      "signature": "def test_an_unknown_criterion_leaves_the_order_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "28f566756e0bfa47139b1d2b4c3be564d6f6659ca86bd54ca532fb07695efbbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests.test_citation_ranking_puts_the_most_cited_first",
      "name": "test_citation_ranking_puts_the_most_cited_first",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L112-L115",
      "signature": "def test_citation_ranking_puts_the_most_cited_first(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f55bd7a2b940d4b9d528edbbfd34790f30dec1ab45a061efbac70b4a968453e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests.test_ranking_does_not_mutate_the_input",
      "name": "test_ranking_does_not_mutate_the_input",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L137-L140",
      "signature": "def test_ranking_does_not_mutate_the_input(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c0100293d5067caef00afc5516c2c3f5596d23bff6cb39d32d7364c0ad8d4ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests.test_relevance_ranking_uses_the_relevance_score",
      "name": "test_relevance_ranking_uses_the_relevance_score",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L122-L129",
      "signature": "def test_relevance_ranking_uses_the_relevance_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46f61b3bf77c4a2d9fbccc3a0719136fe368973c97b3b5a4f095315c7efd941f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#RankingTests.test_year_ranking_puts_the_newest_first",
      "name": "test_year_ranking_puts_the_newest_first",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L117-L120",
      "signature": "def test_year_ranking_puts_the_newest_first(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fddf2cf798acbb50f7a932d4284d2ad98cb0a1d132e5a68bd26df2bdc700b091",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#SummaryTests",
      "name": "SummaryTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L172-L200",
      "signature": "class SummaryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "308cdbf68e63f7e4bc6d58a5cbbffa6f2a21253f521dfb1149fae06c5cf8de95",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#SummaryTests.test_a_non_numeric_citation_count_is_skipped",
      "name": "test_a_non_numeric_citation_count_is_skipped",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L192-L196",
      "signature": "def test_a_non_numeric_citation_count_is_skipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff8c0a13e54d4c5e2e2318fe8c4a949da2932bb4857bb516fa34ce3d7646884c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#SummaryTests.test_an_empty_corpus_summarises_to_zeroes_not_an_error",
      "name": "test_an_empty_corpus_summarises_to_zeroes_not_an_error",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L186-L190",
      "signature": "def test_an_empty_corpus_summarises_to_zeroes_not_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "65a16d9133b7b4714f44df619081acd9ff20668b66a1210a9944fd56cbc08d0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#SummaryTests.test_citation_statistics_ignore_records_without_a_count",
      "name": "test_citation_statistics_ignore_records_without_a_count",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L181-L184",
      "signature": "def test_citation_statistics_ignore_records_without_a_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53bcc32d04682bf938e74ea9aea9d07ebc2ede364123d3b0febc87e34cb1e924",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#SummaryTests.test_records_with_no_source_are_bucketed_as_unknown",
      "name": "test_records_with_no_source_are_bucketed_as_unknown",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L198-L200",
      "signature": "def test_records_with_no_source_are_bucketed_as_unknown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "13f0f6a891e3c85b9163ab98df2c0b85410c1ef62074808402e352b71c1acf5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#SummaryTests.test_the_summary_counts_records_sources_and_years",
      "name": "test_the_summary_counts_records_sources_and_years",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L173-L179",
      "signature": "def test_the_summary_counts_records_sources_and_years(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5abee52f159b5f43379fa93bf4064edd40fd73c4b16aa9f686e29f284a1fd602",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#YearFilterTests",
      "name": "YearFilterTests",
      "kind": "class",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L147-L169",
      "signature": "class YearFilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdfa885f5d187b3dc1e7f62d8cce34e42e9a4663151cabfb1e6096630cae5f75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/literature-review/test_scripts.py#YearFilterTests.test_an_unparseable_year_is_kept_rather_than_silently_dropped",
      "name": "test_an_unparseable_year_is_kept_rather_than_silently_dropped",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L160-L164",
      "signature": "def test_an_unparseable_year_is_kept_rather_than_silently_dropped(self) -> None: # Losing a paper because a database returned \"in press\" would be worse # than including one outside the range.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a6d28b694bdde308e6ae43bb768e44fc3321ac5c3d02af8c0569c26c42a3fba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YearFilterTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#YearFilterTests.test_both_bounds_are_inclusive",
      "name": "test_both_bounds_are_inclusive",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L148-L151",
      "signature": "def test_both_bounds_are_inclusive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9482fbd27bfca17451aecb0e6efa85112ece627488978d23fcde456922ed87b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YearFilterTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#YearFilterTests.test_each_bound_can_be_used_alone",
      "name": "test_each_bound_can_be_used_alone",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L153-L155",
      "signature": "def test_each_bound_can_be_used_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e00d947ae86ef97ffea6ebaef7eb02fd0e2296ee85e8e540167b1b1e40213230",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YearFilterTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#YearFilterTests.test_filtering_does_not_mutate_the_input",
      "name": "test_filtering_does_not_mutate_the_input",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L166-L169",
      "signature": "def test_filtering_does_not_mutate_the_input(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "875bdd1aa46d440d872aad88d28a93d6b2baa3030d81263cfb980c53776af762",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YearFilterTests"
    },
    {
      "id": "tests/literature-review/test_scripts.py#YearFilterTests.test_no_bounds_keeps_everything",
      "name": "test_no_bounds_keeps_everything",
      "kind": "method",
      "path": "tests/literature-review/test_scripts.py",
      "span": "L157-L158",
      "signature": "def test_no_bounds_keeps_everything(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8eeed7b0454ef04f785a7ccc219d84b5f158bf26d46820d67b305a89dbaeb751",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YearFilterTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L1-L217",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "743b7dd739416ce846e38a53bafbd40e6f4e0d461c39bd430259f71ebf0e43e8",
      "chars": 8723,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ClaimAuditTests",
      "name": "ClaimAuditTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L155-L172",
      "signature": "class ClaimAuditTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d96bd7bfdadfcf065ce1f5d1b952d383aaee653169730209b024a81d5eaf7e89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L156-L160",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c83ae76d73223f4827ef2f3ae20ae6c26d15dba589e89ed855377da5c107ffe5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaimAuditTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.test_synthetic_claims_are_fully_mapped",
      "name": "test_synthetic_claims_are_fully_mapped",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L162-L165",
      "signature": "def test_synthetic_claims_are_fully_mapped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c48d3fed14e1ff36e55f6e48335c9ccf6061d9bdcc6692e5eaf9127104b6e77b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaimAuditTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.test_uncited_forecast_fails",
      "name": "test_uncited_forecast_fails",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L167-L172",
      "signature": "def test_uncited_forecast_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30553d5af02719fdb2f6e66562cc639b574895dae3245fa81aca954c74d1369a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaimAuditTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests",
      "name": "CompetitorMatrixTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L133-L152",
      "signature": "class CompetitorMatrixTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "603931cbc9f32c91fd589c9f864509c2003d23d201d7910fc9d195933222eaa0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L134-L142",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce243b9855a8198aa1b9bd3c6afc1a0f7d401196baea76edcd80b994330e1508",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompetitorMatrixTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests.test_complete_synthetic_matrix_is_valid",
      "name": "test_complete_synthetic_matrix_is_valid",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L144-L147",
      "signature": "def test_complete_synthetic_matrix_is_valid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c1ce66887cdef9d3509ebf9fcbbf9e6a8e4644f614753b987bb0ab404200af2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompetitorMatrixTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests.test_incomplete_matrix_fails",
      "name": "test_incomplete_matrix_fails",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L149-L152",
      "signature": "def test_incomplete_matrix_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41f211c5df08a5590b7d3dc949970cb0946691dc4634d8b97e89e72ec19d6e7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompetitorMatrixTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ConsistencyTests",
      "name": "ConsistencyTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L175-L191",
      "signature": "class ConsistencyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "50555f089131459090dc962cc34f85f1475650c4937ce66087043030e612811e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ConsistencyTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L176-L180",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f40c88907c3c4e65cbbf92cababf610a598a369a857687efa7042e54099f7cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsistencyTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ConsistencyTests.test_mixed_currency_fails",
      "name": "test_mixed_currency_fails",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L186-L191",
      "signature": "def test_mixed_currency_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "34cfc74c7ba9124149b3dcb85cdb8e7b4c65a550fbf04c88501f74d08d40dd56",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsistencyTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ConsistencyTests.test_synthetic_comparison_group_is_consistent",
      "name": "test_synthetic_comparison_group_is_consistent",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L182-L184",
      "signature": "def test_synthetic_comparison_group_is_consistent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a06667030d23b747b5535b4b823bcda8e921d8df6eb155d25d644478ff208032",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsistencyTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests",
      "name": "EvidenceLedgerTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L47-L81",
      "signature": "class EvidenceLedgerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "685c9c18efcd001cc1374a78058e2767a98da09c24eff768a3920d77979aef93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_duplicate_source_id_fails",
      "name": "test_duplicate_source_id_fails",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L55-L60",
      "signature": "def test_duplicate_source_id_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ea1d0d075480ac475b714d9f6abdd25fa142045995bb639c32cf7c9d06d0605",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceLedgerTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_not_stated_publication_date_warns_without_crashing",
      "name": "test_not_stated_publication_date_warns_without_crashing",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L62-L70",
      "signature": "def test_not_stated_publication_date_warns_without_crashing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39a57caa4b49e6bea031918644cd0fb1f81683fdc0145079123c343f7558976b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceLedgerTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_retrieval_before_publication_fails",
      "name": "test_retrieval_before_publication_fails",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L72-L81",
      "signature": "def test_retrieval_before_publication_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c6630559552e99b9549e0e2865c58271e72e6fd4d330ef9c06cc2769292bbf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceLedgerTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_synthetic_source_ledger_is_valid",
      "name": "test_synthetic_source_ledger_is_valid",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L48-L53",
      "signature": "def test_synthetic_source_ledger_is_valid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e377f11a72ff48f222a581621a5fdad509d4918eee4bc11bc22e66cb8e2bdd38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvidenceLedgerTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ForecastTests",
      "name": "ForecastTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L107-L130",
      "signature": "class ForecastTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2526c24f5641075bbd731ac9b6de89c40f00b9c0ce68cb594094814c4ea9a087",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ForecastTests.test_horizon_rejects_float_string_and_boolean_values",
      "name": "test_horizon_rejects_float_string_and_boolean_values",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L124-L130",
      "signature": "def test_horizon_rejects_float_string_and_boolean_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4177382a748f447ae1010819d55ee78a79a4b33d5227114b9c785a7485c5b5a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ForecastTests.test_synthetic_forecast_returns_range_and_sensitivity",
      "name": "test_synthetic_forecast_returns_range_and_sensitivity",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L108-L116",
      "signature": "def test_synthetic_forecast_returns_range_and_sensitivity(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "97f01f9e95ce0e7043b5ec42e4e2f0ff4069426be0e37007921f42b5a8151996",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ForecastTests.test_unvalidated_probability_is_rejected",
      "name": "test_unvalidated_probability_is_rejected",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L118-L122",
      "signature": "def test_unvalidated_probability_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f3942db8687c5e892358123f58a638d38f7a446f0f6898cc21604b6e8e1180b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#load_json",
      "name": "load_json",
      "kind": "function",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L42-L44",
      "signature": "def load_json(name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b162dc57cea0a472972accdf864c7e3d273ba3a8a7f854f0a7c60289f8daf73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#MarketSizingTests",
      "name": "MarketSizingTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L84-L104",
      "signature": "class MarketSizingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a24a45d3d2ebdf1b37a6b915b4ac7ae2e1b6fc1cd86bc3c5dded61f2cdc3db9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_duplicate_coverage_key_is_rejected",
      "name": "test_duplicate_coverage_key_is_rejected",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L92-L98",
      "signature": "def test_duplicate_coverage_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b82222c5fabcce53ca1c8f36e2545fa51b28c9c9e9670246cc910da930c9d57b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MarketSizingTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_inconsistent_denominator_is_rejected",
      "name": "test_inconsistent_denominator_is_rejected",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L100-L104",
      "signature": "def test_inconsistent_denominator_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "749833ceda117a805ce0b1c8ca003acc91551596b58a767f905e0def2a863edd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MarketSizingTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_synthetic_sizing_reconciles_and_returns_scenarios",
      "name": "test_synthetic_sizing_reconciles_and_returns_scenarios",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L85-L90",
      "signature": "def test_synthetic_sizing_reconciles_and_returns_scenarios(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b99730227fe93a1d97daab578621ee7ee3a5807435fa35d74abe503651f23be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MarketSizingTests"
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ScaffoldTests",
      "name": "ScaffoldTests",
      "kind": "class",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L194-L207",
      "signature": "class ScaffoldTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbe2c636bbccb1a2edffee4dc6580de4c6b4f6fcf2abffe9791fc6e4305490fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/market-research-reports/test_scripts.py#ScaffoldTests.test_scaffold_creates_only_expected_local_files",
      "name": "test_scaffold_creates_only_expected_local_files",
      "kind": "method",
      "path": "tests/market-research-reports/test_scripts.py",
      "span": "L195-L207",
      "signature": "def test_scaffold_creates_only_expected_local_files(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdbb817b62301ced97a4cccbc9a171dd4b2ee75b35f7eeef1d8d60b8e56797e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L1-L280",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "610c3298d76207add653a41eae9adba944d311d53dd294f93ae3798e3ca7cb5d",
      "chars": 11446,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "name": "AtomicWriteTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L159-L179",
      "signature": "class AtomicWriteTests(DiscoveryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15933d68fba1c33476da3d3460cc439224a5c7edc2249d3b242ba23084bae92f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_an_existing_file_is_replaced_wholesale",
      "name": "test_an_existing_file_is_replaced_wholesale",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L170-L174",
      "signature": "def test_an_existing_file_is_replaced_wholesale(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d681084165876a8f4025bcaa56b6c5164e4ca0e73092a811fd7d4d4123ca751a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtomicWriteTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_no_temporary_file_survives",
      "name": "test_no_temporary_file_survives",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L165-L168",
      "signature": "def test_no_temporary_file_survives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4d95464c700791cf426d4a4a7a2686e2ab2b9ddebae1e902bd4ba6c09bc9cbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtomicWriteTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_non_ascii_content_survives_the_round_trip",
      "name": "test_non_ascii_content_survives_the_round_trip",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L176-L179",
      "signature": "def test_non_ascii_content_survives_the_round_trip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a1fe4b98195873f8fc4ffbf358bb698e1b0edd94be6e89ba4929207e0bc12bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtomicWriteTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_the_content_lands_at_the_destination",
      "name": "test_the_content_lands_at_the_destination",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L160-L163",
      "signature": "def test_the_content_lands_at_the_destination(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cd58de89a4f24326db0df13e956b322d21946024b2808bb16c54893a2f29faa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AtomicWriteTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DigestTests",
      "name": "DigestTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L222-L245",
      "signature": "class DigestTests(DiscoveryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7610d672acb4ba3508c96803c69efda8c696888b97097b6ff4bf0b7155650a86",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#DigestTests.test_a_file_larger_than_one_chunk_is_hashed_whole",
      "name": "test_a_file_larger_than_one_chunk_is_hashed_whole",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L238-L245",
      "signature": "def test_a_file_larger_than_one_chunk_is_hashed_whole(self) -> None: # The reader streams in 1 MiB chunks; a bug there would hash a prefix.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dfff82d46a54f5ed2841cf628da76dbb1c010e0b2353f44072bcc5a4f394b51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DigestTests.test_an_empty_file_hashes_to_the_empty_digest",
      "name": "test_an_empty_file_hashes_to_the_empty_digest",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L231-L236",
      "signature": "def test_an_empty_file_hashes_to_the_empty_digest(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "204c60f50ed493f421e60ed6317259a3c4d87480f6248203f260410e0f34c1ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DigestTests.test_the_digest_matches_hashlib",
      "name": "test_the_digest_matches_hashlib",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L223-L229",
      "signature": "def test_the_digest_matches_hashlib(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf237c5a456e0afe5a9e689fee1432625fabd3ffe05c5c8b3cf1e77c66f8a272",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "name": "DiscoveryTestCase",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L82-L92",
      "signature": "class DiscoveryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd1add6d8b6479003f8ab3f6d92796c9cc623cc72546f471282f26cd6f569633",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L83-L86",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTestCase"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTestCase.touch",
      "name": "touch",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L88-L92",
      "signature": "def touch(self, relative: str) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "41e5ffba1c3d9223de0dc12b4f8c351dbfdc53117bcc78c4e772a2f99c3d2433",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTestCase"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "name": "DiscoveryTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L95-L133",
      "signature": "class DiscoveryTests(DiscoveryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "75cde405fed6829ad06d2e93462b0e8601a8d564ce881941995caf839f114016",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests.test_an_empty_directory_yields_nothing",
      "name": "test_an_empty_directory_yields_nothing",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L130-L133",
      "signature": "def test_an_empty_directory_yields_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "89b54af64d2e4ab1907d03b0d723bc4bd4c7c3d06a97dec149941b10aab86f7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests.test_directories_are_never_returned",
      "name": "test_directories_are_never_returned",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L118-L122",
      "signature": "def test_directories_are_never_returned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb3e8e3e5f9eff956d7f00e5910a163d2c4f17cfcc52e246633d310ba40cd707",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "name": "test_matching_is_case_insensitive",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L103-L106",
      "signature": "def test_matching_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c425eefed9d975a32ca67be6b5b18056ea514eb5dd8f6f369a33ad3dfc941ef9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests.test_only_the_requested_extensions_are_returned",
      "name": "test_only_the_requested_extensions_are_returned",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L96-L101",
      "signature": "def test_only_the_requested_extensions_are_returned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ff34d39deff59271ff8443a372dfbf985a9e7d5d0fd5f627ef7e7b087a22439",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "name": "test_recursion_is_opt_in",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L108-L116",
      "signature": "def test_recursion_is_opt_in(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f38ac754f4a6d61e432756b6a6bab6c55e7c54a1bcbc17f89c3dc5818972040",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "name": "test_the_order_is_deterministic",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L124-L128",
      "signature": "def test_the_order_is_deterministic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a1c65ca21e4a9be3bde8a5310ed42c00236f888e6f9329f4c267196c9affed2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests",
      "name": "ExtensionTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L43-L79",
      "signature": "class ExtensionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fba8dcadc633b893a1627f2b420981362870e7b866e0d309bc72f27b989c141c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_a_lone_dot_is_refused",
      "name": "test_a_lone_dot_is_refused",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L57-L59",
      "signature": "def test_a_lone_dot_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37d4b1aa52b4a20517c5c14c5e7e0d38a1d7b1f488a963386887affcffb45fd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_an_empty_selection_is_refused",
      "name": "test_an_empty_selection_is_refused",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L53-L55",
      "signature": "def test_an_empty_selection_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8dc74867fb09406bf8d103fa3c6dfd2938fadcfa6104acd0e5e7055f4e3ff2c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_blank_entries_are_dropped",
      "name": "test_blank_entries_are_dropped",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L50-L51",
      "signature": "def test_blank_entries_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "897ba1477c6100af0bc0a4678ff59905094cb9f5df782e6edba77c3d087389b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_extensions_are_lowercased_dotted_and_deduplicated",
      "name": "test_extensions_are_lowercased_dotted_and_deduplicated",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L44-L48",
      "signature": "def test_extensions_are_lowercased_dotted_and_deduplicated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5604fddf0e7bd1e1930e317cebd072be42b291b7888c45edc698846cce7274a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_the_defaults_are_sorted_lowercase_and_dotted",
      "name": "test_the_defaults_are_sorted_lowercase_and_dotted",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L73-L79",
      "signature": "def test_the_defaults_are_sorted_lowercase_and_dotted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "464e6e6f54025eba7b1a870a4e7668404a9b61dfe1a1ab6d991d17fb5385ea68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_the_defaults_carry_no_audio_or_video_formats",
      "name": "test_the_defaults_carry_no_audio_or_video_formats",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L67-L71",
      "signature": "def test_the_defaults_carry_no_audio_or_video_formats(self) -> None: # Converting those with markitdown[all] would ship the file to Google # Web Speech; they must be opt-in, never a default.",
      "exported": true,
      "origin": "ast",
      "body_hash": "74b81037c1772d243a82068f159f211b776b6e25c940fe1646d48b95800b0957",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#ExtensionTests.test_the_result_is_sorted_so_runs_are_reproducible",
      "name": "test_the_result_is_sorted_so_runs_are_reproducible",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L61-L65",
      "signature": "def test_the_result_is_sorted_so_runs_are_reproducible(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae9a026dbf73a18095b30b689f52642a355e976b022d39b1936d4f4bf1b9e3a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExtensionTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#InstallationReportTests",
      "name": "InstallationReportTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L261-L275",
      "signature": "class InstallationReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "621852bea7f9475b6eeb9b8beaf7b468431148f13418fd487713eba4dd91035e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#InstallationReportTests.test_an_absent_distribution_reports_none_rather_than_raising",
      "name": "test_an_absent_distribution_reports_none_rather_than_raising",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L269-L272",
      "signature": "def test_an_absent_distribution_reports_none_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7ad60588d8462f86141826920bdb2d584bf8747a101d10c29580df860aa4148",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationReportTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#InstallationReportTests.test_an_installed_distribution_reports_its_version",
      "name": "test_an_installed_distribution_reports_its_version",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L274-L275",
      "signature": "def test_an_installed_distribution_reports_its_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c70cd3c85fffd23926cb960a778fc44b5133ccdff57b04a7b24b44c610a125fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationReportTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#InstallationReportTests.test_the_report_is_json_serialisable",
      "name": "test_the_report_is_json_serialisable",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L266-L267",
      "signature": "def test_the_report_is_json_serialisable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "567c29ad42df7e42989f2df035bacd3b211362914b9ba5501c15e1454e075ee3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationReportTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#InstallationReportTests.test_the_report_names_the_target_version_and_optional_extras",
      "name": "test_the_report_names_the_target_version_and_optional_extras",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L262-L264",
      "signature": "def test_the_report_names_the_target_version_and_optional_extras(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "80e5b681c767cfa9f173f4a15e4821739b599be1ad3d18c87c1fe681359322e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InstallationReportTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "name": "MetadataInferenceTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L182-L219",
      "signature": "class MetadataInferenceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8ff23f112c1e1727885229f7c47bdf62ce04ddd6fb4b4fce021405d1804d21e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_a_multi_word_author_is_kept_whole",
      "name": "test_a_multi_word_author_is_kept_whole",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L191-L196",
      "signature": "def test_a_multi_word_author_is_kept_whole(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fb2561d5d3915644f38136b3c5577f8ffb78a1579ef199e3252df8660edfb37",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataInferenceTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_an_author_year_title_filename_is_parsed",
      "name": "test_an_author_year_title_filename_is_parsed",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L183-L189",
      "signature": "def test_an_author_year_title_filename_is_parsed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab4114eb264e2cdacf3aba890319c8484df399f0d02ead3f4805184ca6c8bc8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataInferenceTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_an_unstructured_filename_still_yields_a_readable_title",
      "name": "test_an_unstructured_filename_still_yields_a_readable_title",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L207-L213",
      "signature": "def test_an_unstructured_filename_still_yields_a_readable_title(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f2132b275baf0ef5aee3bded9d9a87a5ee6ebeaefbddeed3ce2a6fe7ad15297",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataInferenceTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_only_plausible_years_are_accepted",
      "name": "test_only_plausible_years_are_accepted",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L198-L205",
      "signature": "def test_only_plausible_years_are_accepted(self) -> None: # 1899 and 2101 are not publication years the pattern should trust.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fda0e9e13744cfc0d0cd0a65c72d4f7d4dd978278bebb4a8d351fcec0be4b6da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataInferenceTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_runs_of_whitespace_are_collapsed",
      "name": "test_runs_of_whitespace_are_collapsed",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L215-L219",
      "signature": "def test_runs_of_whitespace_are_collapsed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "17018a98716cb4896a649cf61995c9140a02d179e46228ddcad036bff69de56f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataInferenceTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#OutputPathTests",
      "name": "OutputPathTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L136-L156",
      "signature": "class OutputPathTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae69591631a71256b65aac2d978367721a1fa26c99a3cfee2da815246a6b52fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#OutputPathTests.test_the_directory_layout_is_mirrored",
      "name": "test_the_directory_layout_is_mirrored",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L150-L156",
      "signature": "def test_the_directory_layout_is_mirrored(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fded19628e67ae5f8c44986d75de79224df19915a037bf68aac431f779eb9f1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#OutputPathTests.test_the_source_suffix_is_kept_in_the_output_name",
      "name": "test_the_source_suffix_is_kept_in_the_output_name",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L137-L148",
      "signature": "def test_the_source_suffix_is_kept_in_the_output_name(self) -> None: # Without this, report.pdf and report.docx both become report.md and # the second silently overwrites the first.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1c5ecf31c2cdbeb2292c2ffdeb3d2069e7ca77ac24019d4149c9d30dc9e39c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputPathTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#YamlScalarTests",
      "name": "YamlScalarTests",
      "kind": "class",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L248-L258",
      "signature": "class YamlScalarTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5a3e6cbb3b65fb6a4fbc73575aa65c5af6595b49b47dd30dcd62529e1e77dbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/markitdown/test_scripts.py#YamlScalarTests.test_non_ascii_is_preserved_rather_than_escaped",
      "name": "test_non_ascii_is_preserved_rather_than_escaped",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L257-L258",
      "signature": "def test_non_ascii_is_preserved_rather_than_escaped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a596c4029e8a595ab9976ee23025ccb45e76ed1c2d563e19e3e49f618475ca37",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YamlScalarTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#YamlScalarTests.test_ordinary_text_is_quoted",
      "name": "test_ordinary_text_is_quoted",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L249-L250",
      "signature": "def test_ordinary_text_is_quoted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7a6a5a5d659570e8834f5cacebcf35439b304a2c2f00eabba3b5f1a98d92324",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YamlScalarTests"
    },
    {
      "id": "tests/markitdown/test_scripts.py#YamlScalarTests.test_quotes_and_colons_are_escaped_safely",
      "name": "test_quotes_and_colons_are_escaped_safely",
      "kind": "method",
      "path": "tests/markitdown/test_scripts.py",
      "span": "L252-L255",
      "signature": "def test_quotes_and_colons_are_escaped_safely(self) -> None: # An unquoted colon would end the YAML key and corrupt the front matter.",
      "exported": true,
      "origin": "ast",
      "body_hash": "94733071486315bda5284bfb4b482e4129efc99ee18c52314d1f11c4a117ddfa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "YamlScalarTests"
    },
    {
      "id": "tests/matchms/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/matchms/test_scripts.py",
      "span": "L1-L764",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "eb9441292fea1629f1c8d23d7a5071a62414a8e8a0354065138616a94df9a4aa",
      "chars": 32651,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "name": "EndToEndSearchTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L667-L745",
      "signature": "class EndToEndSearchTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a6ea0e47092e9d810622e1cb6b7807a9c1c5feffccd54f91ee04ba9ad007d5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L680-L688",
      "signature": "def args(self, **overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "faa0b57467a480dbc54719451623b37ca4e908a659bdaa6799667a1c09c17dd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.rows",
      "name": "rows",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L690-L692",
      "signature": "def rows(self) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "16f996c2cad051a8815c3a5ea022c8a67b5198daf7914715303b5a8fc4614331",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L670-L678",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7901d2503e6fc4dd74981c2fd2af1712853a1a57d23198fc3765ffc1eed25f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_library_that_processing_empties_is_reported",
      "name": "test_a_library_that_processing_empties_is_reported",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L728-L731",
      "signature": "def test_a_library_that_processing_empties_is_reported(self) -> None: # Requiring more peaks than any spectrum has leaves nothing to search.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ddae04b18fa7d122faa287b959eed527466784b213b8ab89061c66a5a676356",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_match_threshold_above_the_peak_count_reports_nothing",
      "name": "test_a_match_threshold_above_the_peak_count_reports_nothing",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L716-L720",
      "signature": "def test_a_match_threshold_above_the_peak_count_reports_nothing(self) -> None: # Six matched peaks are impossible for a five-peak spectrum, so this # proves the filter is applied rather than merely accepted.",
      "exported": true,
      "origin": "ast",
      "body_hash": "270e764c130f05c5fce71efc2e3bce088f48925a9239eb6a8a403432a1cab4ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_an_identical_reference_is_reported_with_a_perfect_score",
      "name": "test_an_identical_reference_is_reported_with_a_perfect_score",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L694-L708",
      "signature": "def test_an_identical_reference_is_reported_with_a_perfect_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "981e671a1016770714bf2563d68dc104f785feeb75f5870d0e2c385b05ce51e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_main_turns_a_validation_error_into_exit_code_two",
      "name": "test_main_turns_a_validation_error_into_exit_code_two",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L733-L745",
      "signature": "def test_main_turns_a_validation_error_into_exit_code_two(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f46b9b3d1afec676e917c33e4c684cbcf714b73a1ff83f30cc23d742e9c9bdb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_the_pair_budget_stops_the_search_before_it_starts",
      "name": "test_the_pair_budget_stops_the_search_before_it_starts",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L722-L726",
      "signature": "def test_the_pair_budget_stops_the_search_before_it_starts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc4e061cea25ef30440754beb8b1da2aba3ccaa38069f3e3878a8a1f39a7a28f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_top_k_limits_the_reported_hits",
      "name": "test_top_k_limits_the_reported_hits",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L710-L714",
      "signature": "def test_top_k_limits_the_reported_hits(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f56baa7c04e613c9f4ff36ceb83545380c10b21431a487ca077ccd7c6a51539",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndSearchTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#FakeScores",
      "name": "FakeScores",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L127-L140",
      "signature": "class FakeScores",
      "exported": true,
      "origin": "ast",
      "body_hash": "260351ca744615cf7097afd8ec5c7da9e4985878eea65722dd2ba3ebc22c4a4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#FakeScores.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L132-L135",
      "signature": "def __init__(self, ranked) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "05801f3f998fd6d5b079c848ab42d10dfdacc5c4b0a2a963ebae0436c9d52b9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeScores"
    },
    {
      "id": "tests/matchms/test_scripts.py#FakeScores.scores_by_query",
      "name": "scores_by_query",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L137-L140",
      "signature": "def scores_by_query(self, query, name, sort)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27b9e754e7d9b81529d5da19784645de8cd4aa415f7ac6bacd5f2ad6812bf297",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeScores"
    },
    {
      "id": "tests/matchms/test_scripts.py#FakeSpectrum",
      "name": "FakeSpectrum",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L117-L124",
      "signature": "class FakeSpectrum",
      "exported": true,
      "origin": "ast",
      "body_hash": "34418a6a28c9376ff548b3167b7ad2eab2e7ca4d1ff4c18c365601b7aa14f571",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#FakeSpectrum.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L120-L121",
      "signature": "def __init__(self, **metadata) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "e4657e0740d74b9fbdf7ba395d84d0139948cb98c1b0ec0eadfcb6dfae9f672b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeSpectrum"
    },
    {
      "id": "tests/matchms/test_scripts.py#FakeSpectrum.get",
      "name": "get",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L123-L124",
      "signature": "def get(self, key)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b5fc81dd7e4850b61e3236bf75697112ea71b30d772b02c38fe090fbf647888",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeSpectrum"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests",
      "name": "HitWritingTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L557-L664",
      "signature": "class HitWritingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f11ca9d29dce333bda0901a854c2b822c6c9561ece98da38a879ca1d1b52a13e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "name": "ranked",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L583-L587",
      "signature": "def ranked(self, *scores)",
      "exported": true,
      "origin": "ast",
      "body_hash": "337ed9e7112fc8b3ee63bb66f2eebb3d973e65280ad5eff3f7f983f7b8a27367",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L560-L569",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d68b462be71f683f0087146dcf7fb4974368e10f60ed0fc0ec8ddf576c375e73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_a_non_finite_score_is_dropped",
      "name": "test_a_non_finite_score_is_dropped",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L631-L636",
      "signature": "def test_a_non_finite_score_is_dropped(self) -> None: # A NaN comparison is neither above nor below the threshold, so it has # to be excluded explicitly or it would rank first after sorting.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1a0c2f377ca1851e7d6f823c7672c9149e3711da40d8557106a8e506e56d61d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_a_reference_outside_the_library_is_an_error_not_a_blank_row",
      "name": "test_a_reference_outside_the_library_is_an_error_not_a_blank_row",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L643-L646",
      "signature": "def test_a_reference_outside_the_library_is_an_error_not_a_blank_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4798012a4a68df2d430eec3d96bfa4e950d64c288de83b62778500d4bc34c5d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_a_scalar_score_survives_a_match_threshold",
      "name": "test_a_scalar_score_survives_a_match_threshold",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L622-L629",
      "signature": "def test_a_scalar_score_survives_a_match_threshold(self) -> None: # Metrics with no match count must not be filtered to nothing by a # threshold they cannot answer; validate_args already refuses that # combination, so write_hits must not silently drop the rows either.",
      "exported": true,
      "origin": "ast",
      "body_hash": "71af27fb1244b743e7b9b81242b9166c7415e466c52ecc7f570b463fb23a8d4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_a_score_exactly_at_the_threshold_is_kept",
      "name": "test_a_score_exactly_at_the_threshold_is_kept",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L612-L616",
      "signature": "def test_a_score_exactly_at_the_threshold_is_kept(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "63a958807ecbb13a622a90e7742d75b83c3d1d981c3bf1231d12b2e38116dca7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_an_empty_ranking_still_writes_a_header",
      "name": "test_an_empty_ranking_still_writes_a_header",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L638-L641",
      "signature": "def test_an_empty_ranking_still_writes_a_header(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a11a22771506ee98d9423675c976547aef553b7fd548cb1e117fff1c06dfa3a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_hits_are_numbered_from_one_and_carry_reference_metadata",
      "name": "test_hits_are_numbered_from_one_and_carry_reference_metadata",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L589-L601",
      "signature": "def test_hits_are_numbered_from_one_and_carry_reference_metadata(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dad399c5b629770c7d256e7992c441fa5a645904fbc955f206259108213ec3e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_scores_are_written_with_enough_precision_to_be_reproducible",
      "name": "test_scores_are_written_with_enough_precision_to_be_reproducible",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L662-L664",
      "signature": "def test_scores_are_written_with_enough_precision_to_be_reproducible(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4525a32df18dc93bf6a3bb25c11f1ed14de9dc89894903200dabae5d930411a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_the_match_count_threshold_is_inclusive",
      "name": "test_the_match_count_threshold_is_inclusive",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L618-L620",
      "signature": "def test_the_match_count_threshold_is_inclusive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f10a21485c528c8629929a8aeb79f1b9a7223d9c1f88d02b0806704f72d11cd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_the_writer_asks_for_a_sorted_ranking_by_the_score_field",
      "name": "test_the_writer_asks_for_a_sorted_ranking_by_the_score_field",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L648-L660",
      "signature": "def test_the_writer_asks_for_a_sorted_ranking_by_the_score_field(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "358af17518283783c8c1911668b2b64abf87d7c8ac1491391e132712568e45c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.test_top_k_truncates_after_the_filters_not_before",
      "name": "test_top_k_truncates_after_the_filters_not_before",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L603-L610",
      "signature": "def test_top_k_truncates_after_the_filters_not_before(self) -> None: # 0.4 is dropped by --min-score, so the third-ranked survivor must # still be reported when --top-k is 2.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e57364de017d710ec871462d36d8a0fce487c1ee81c7bfbb46615c73151f31be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "name": "write",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L571-L581",
      "signature": "def write(self, ranked, **overrides) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5071e6215a0cbf6d73618013c266452bc3cb4e54983c17449cb8ad76d1e4d788",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HitWritingTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#metric_choices",
      "name": "metric_choices",
      "kind": "function",
      "path": "tests/matchms/test_scripts.py",
      "span": "L98-L108",
      "signature": "def metric_choices() -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbc6217e8800ec2aa7a7310bb21827371658027677e4492c897f9375ad4bee10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests",
      "name": "MetricTableTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L175-L254",
      "signature": "class MetricTableTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3431978891fc4fccd09fcb112070946e11fe8dd104f95026e5f8004312aa5e5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests.test_an_unknown_metric_is_refused",
      "name": "test_an_unknown_metric_is_refused",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L229-L231",
      "signature": "def test_an_unknown_metric_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d107f505a536bd2326f6ec001deb539b8430390b9e1d57536abb6b9d4400bcb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTableTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests.test_blink_receives_the_intensity_and_score_cutoffs",
      "name": "test_blink_receives_the_intensity_and_score_cutoffs",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L233-L243",
      "signature": "def test_blink_receives_the_intensity_and_score_cutoffs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "029bc8960b935ce69ce9bc443859a75c30f456e10f29ede45beb4e9856e81fc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTableTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests.test_each_metric_name_selects_the_documented_matchms_class",
      "name": "test_each_metric_name_selects_the_documented_matchms_class",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L186-L206",
      "signature": "def test_each_metric_name_selects_the_documented_matchms_class(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb69ac77b06605adfbd49ffd97c45f67237b00382466df261238a833f58de8f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTableTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests.test_every_advertised_metric_builds_a_similarity_object",
      "name": "test_every_advertised_metric_builds_a_similarity_object",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L178-L184",
      "signature": "def test_every_advertised_metric_builds_a_similarity_object(self) -> None: # A choice the parser accepts but create_metric cannot build would only # fail after both spectrum files have been loaded and processed.",
      "exported": true,
      "origin": "ast",
      "body_hash": "909b4523eaf8faa313ec9e946d9997fe92163b46a70f75f84f11cb1ebad7f15f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTableTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests.test_the_metric_sets_only_name_metrics_the_parser_offers",
      "name": "test_the_metric_sets_only_name_metrics_the_parser_offers",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L245-L254",
      "signature": "def test_the_metric_sets_only_name_metrics_the_parser_offers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b0d29692ab22c5d261c9fd83930485efd52d5c6d2f03c749b04f62ca347b553",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTableTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#MetricTableTests.test_the_three_flash_metrics_differ_in_score_type_and_matching_mode",
      "name": "test_the_three_flash_metrics_differ_in_score_type_and_matching_mode",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L208-L227",
      "signature": "def test_the_three_flash_metrics_differ_in_score_type_and_matching_mode(self) -> None: # All three build a FlashSimilarity; the distinction is entirely in the # constructor arguments, so a copy-paste slip would silently give the # user the wrong similarity.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f49986b29c65dce44e650322c116373b8a4afc4ed656fd53aae5950dc30e12b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTableTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "name": "ProcessingChainTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L391-L473",
      "signature": "class ProcessingChainTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f8d1f122c25abe8d142122c99e08ad7f318dbdf941c42739b3183ff12e94c3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "name": "step_names",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L395-L397",
      "signature": "def step_names(args: argparse.Namespace) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "174d4efafe5a62e01d9153b5df383a0084411f23ed42f0f953c5bc5ef5641b2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_a_precursor_window_forces_the_precursor_requirement",
      "name": "test_a_precursor_window_forces_the_precursor_requirement",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L425-L430",
      "signature": "def test_a_precursor_window_forces_the_precursor_requirement(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f38da51a9e0ca9fa854ab02b5d7d6468faaf0e8283cf65d24cc5265dc1267f10",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_each_switch_adds_exactly_its_own_filter",
      "name": "test_each_switch_adds_exactly_its_own_filter",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L442-L450",
      "signature": "def test_each_switch_adds_exactly_its_own_filter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bf82c3ccc8e68306ecc66f3be1c32d3ee7c69b27fb157fc72664997eac9f9db",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_metadata_filters_run_before_the_peak_filters",
      "name": "test_metadata_filters_run_before_the_peak_filters",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L399-L411",
      "signature": "def test_metadata_filters_run_before_the_peak_filters(self) -> None: # SpectrumProcessor keeps registered filters in their canonical order # but appends unknown callables; the script expands default_filters by # hand precisely so precursor m/z is derived before it is required.",
      "exported": true,
      "origin": "ast",
      "body_hash": "99f7a53b3d4bb9e6090c59b9ffd568fa2fd8362c1cf702a91a1531027b867982",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_precursor_metrics_require_a_precursor_and_others_do_not",
      "name": "test_precursor_metrics_require_a_precursor_and_others_do_not",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L413-L423",
      "signature": "def test_precursor_metrics_require_a_precursor_and_others_do_not(self) -> None: # A modified-cosine score is meaningless without precursor m/z, so the # requirement must switch on with the metric.",
      "exported": true,
      "origin": "ast",
      "body_hash": "df4fbdbb972662035244dc2caad3fa8a2d28eda49c67db0bf6734d79492a8651",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_disabling_flags_actually_remove_steps",
      "name": "test_the_disabling_flags_actually_remove_steps",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L452-L460",
      "signature": "def test_the_disabling_flags_actually_remove_steps(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d128963d8c650eabd9fc8bd3b1f3920c316b1adce9e234fa5655dc6229851852",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_optional_filters_are_absent_by_default",
      "name": "test_the_optional_filters_are_absent_by_default",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L432-L440",
      "signature": "def test_the_optional_filters_are_absent_by_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f23a9d80da6619c517f40df31181a6d6e9a017141bcdf9603fdb2d7758e64663",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_same_chain_is_used_for_queries_and_references",
      "name": "test_the_same_chain_is_used_for_queries_and_references",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L469-L473",
      "signature": "def test_the_same_chain_is_used_for_queries_and_references(self) -> None: # Comparing differently processed collections biases every score, so # the processor is built once from one namespace.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca7fa7ff136514b161fc3cad0242cde7a18f151170dc19999af6321642ecc452",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ProcessingChainTests.test_zero_thresholds_disable_their_filters",
      "name": "test_zero_thresholds_disable_their_filters",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L462-L467",
      "signature": "def test_zero_thresholds_disable_their_filters(self) -> None: # `--relative-intensity 0` and `--min-peaks 0` are documented as \"off\", # not as \"keep everything above zero\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "993b26c0d038f3728e48b22c1e746ab7fb294c2f89abfd6e6ebea61d9325e967",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProcessingChainTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#score_record",
      "name": "score_record",
      "kind": "function",
      "path": "tests/matchms/test_scripts.py",
      "span": "L111-L114",
      "signature": "def score_record(score: float, matches: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9be1421f1a8c3f1b0815f15f1c6778c5d2defd3d75d778651cad9d1a1867414b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "name": "ScoreRecordTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L476-L505",
      "signature": "class ScoreRecordTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1e46b970c3b558f7029a4919bf083c45b2dd3883c587d11621fe2b777db1b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_field_the_record_does_not_carry_is_not_invented",
      "name": "test_a_field_the_record_does_not_carry_is_not_invented",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L504-L505",
      "signature": "def test_a_field_the_record_does_not_carry_is_not_invented(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cebec12280d6b97df4c7175766bf865cefc149cd9f69a3fa9a4fbee5e271cd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreRecordTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_metric_without_a_score_suffix_falls_back_to_the_first_field",
      "name": "test_a_metric_without_a_score_suffix_falls_back_to_the_first_field",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L487-L491",
      "signature": "def test_a_metric_without_a_score_suffix_falls_back_to_the_first_field(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc58323ffe0b8c2ce7eb26cf847ee53c9d3b3c67d238188d0b3f02731fe6b103",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreRecordTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_scalar_score_is_read_directly_and_reports_no_matches",
      "name": "test_a_scalar_score_is_read_directly_and_reports_no_matches",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L498-L502",
      "signature": "def test_a_scalar_score_is_read_directly_and_reports_no_matches(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46a7653fb67db750cd3dfea864342a93093aade97761951ee179f46ab0868674",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreRecordTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_structured_record_is_read_field_by_field",
      "name": "test_a_structured_record_is_read_field_by_field",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L493-L496",
      "signature": "def test_a_structured_record_is_read_field_by_field(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba7d9d19546897f6f3a8cf9bbea95c53831edf98b37bea33fc8b802343723e7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreRecordTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ScoreRecordTests.test_the_score_field_is_the_one_ending_in_score",
      "name": "test_the_score_field_is_the_one_ending_in_score",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L479-L485",
      "signature": "def test_the_score_field_is_the_one_ending_in_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b566019d68d6acf3e9be774f852133dc280288335e975f4c2f06e813aeae43f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoreRecordTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#search_namespace",
      "name": "search_namespace",
      "kind": "function",
      "path": "tests/matchms/test_scripts.py",
      "span": "L143-L172",
      "signature": "def search_namespace(**overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "5086c1b70c0cf55208190730c5cc300d2b30686e695d03f9c55103d36126f7f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "name": "SpectrumIdentityTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L508-L554",
      "signature": "class SpectrumIdentityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfd9d42c1ca666549cf25d207b05fc34b15c960efe066b30ff0dd69f4deab2fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_a_numeric_identifier_is_stringified",
      "name": "test_a_numeric_identifier_is_stringified",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L541-L547",
      "signature": "def test_a_numeric_identifier_is_stringified(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ba299a632b12fb088dda9e03574ee7b662072524bf79cec86f175276313e432",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumIdentityTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_an_empty_value_is_skipped_rather_than_used",
      "name": "test_an_empty_value_is_skipped_rather_than_used",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L525-L531",
      "signature": "def test_an_empty_value_is_skipped_rather_than_used(self) -> None: # An MGF with `TITLE=` yields \"\", which would produce a blank id column.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7300bb74fae50984ad2604654d06f1c019374698055f2c3e81ab773761228988",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumIdentityTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_an_unidentified_spectrum_falls_back_to_prefix_and_index",
      "name": "test_an_unidentified_spectrum_falls_back_to_prefix_and_index",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L533-L539",
      "signature": "def test_an_unidentified_spectrum_falls_back_to_prefix_and_index(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "01656f2e0b47b2903ecc03c2f63c54cf6e9ba0a74c90a4c19adeef37c2443650",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumIdentityTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_missing_metadata_becomes_an_empty_cell_not_the_word_none",
      "name": "test_missing_metadata_becomes_an_empty_cell_not_the_word_none",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L549-L554",
      "signature": "def test_missing_metadata_becomes_an_empty_cell_not_the_word_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0eccc8b68aef80c0098941e097e54f0df3e611b3893618b9397ecce67622609b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumIdentityTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_the_default_order_prefers_spectrum_id_over_a_name",
      "name": "test_the_default_order_prefers_spectrum_id_over_a_name",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L518-L523",
      "signature": "def test_the_default_order_prefers_spectrum_id_over_a_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8db4b1b7ae8b21de897490f777569604a74c5bd1083e6b257a66b2c5c7e1ad44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumIdentityTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_the_preferred_field_wins_over_every_default",
      "name": "test_the_preferred_field_wins_over_every_default",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L509-L516",
      "signature": "def test_the_preferred_field_wins_over_every_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a9e0a5ee7959b8e128925bef73e950e555c7cf710f987d9f8736c864bb3a9b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumIdentityTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SuffixPolicyTests",
      "name": "SuffixPolicyTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L257-L272",
      "signature": "class SuffixPolicyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c6a99d0b7f8e7f0ae280d476b80f3362c66f98b5a0dae02fd2ed40a67fa7353",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#SuffixPolicyTests.test_every_suffix_is_lowercase_and_dotted",
      "name": "test_every_suffix_is_lowercase_and_dotted",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L266-L272",
      "signature": "def test_every_suffix_is_lowercase_and_dotted(self) -> None: # validate_args lowercases the suffix before the lookup, so an entry # spelled \".MGF\" here would never match.",
      "exported": true,
      "origin": "ast",
      "body_hash": "91e2d51d60d35284d3352c314cb6ca9850bc784f594a715caea3fb69e47dc6e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SuffixPolicyTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#SuffixPolicyTests.test_pickle_suffixes_are_never_also_supported",
      "name": "test_pickle_suffixes_are_never_also_supported",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L258-L264",
      "signature": "def test_pickle_suffixes_are_never_also_supported(self) -> None: # Refusing pickles is a security decision; the two sets overlapping # would quietly re-enable arbitrary code execution on load.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6be77d72d080005e27cda0433f668a04fe812f081a2fe3c7f65d6816c17568b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SuffixPolicyTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests",
      "name": "ValidationTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L275-L388",
      "signature": "class ValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "68057de580278cfa535e571a4c5e139274ccdbb8228e6065e3e557131da0a587",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L288-L293",
      "signature": "def args(self, **overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "dce9f25fa68c6fab5445dd2d30a8531ecf31ea8c5901eb194015ac2538b45f5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L278-L286",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "acf221ae8ce6d7cd5c6909a699b80b2142fa7960589803b2e6673889a4b4ea19",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_a_missing_input_is_reported_by_role",
      "name": "test_a_missing_input_is_reported_by_role",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L312-L318",
      "signature": "def test_a_missing_input_is_reported_by_role(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c9ec1eb11e93f15516d7ac80b51e8436cb4a8be4748076d05112f3cfcad99f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_a_missing_output_directory_is_refused",
      "name": "test_a_missing_output_directory_is_refused",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L341-L343",
      "signature": "def test_a_missing_output_directory_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5de74e05c7c3149556acd9f0dc0ea1675fce0eb9cbe9278c8fb40bf9cca5cda",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_a_valid_invocation_passes_silently",
      "name": "test_a_valid_invocation_passes_silently",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L295-L298",
      "signature": "def test_a_valid_invocation_passes_silently(self) -> None: # Without this the rest of the class only proves the validator can say # no -- not that it ever says yes.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d6121fa6f919ea93d048efafa09a72e8f9fab72f96ab796955ad7e93a711dfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_an_existing_output_needs_force",
      "name": "test_an_existing_output_needs_force",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L334-L339",
      "signature": "def test_an_existing_output_needs_force(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ace35d6d069196f7d1f9a075d3ec5200cfe5258b33e2d381e97f133e4d6886ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_an_inverted_mz_window_is_refused_but_one_sided_is_fine",
      "name": "test_an_inverted_mz_window_is_refused_but_one_sided_is_fine",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L374-L380",
      "signature": "def test_an_inverted_mz_window_is_refused_but_one_sided_is_fine(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0b2cffdfb54d416c0ecaceda0ecd42993750711b50d1a9bf5525ac7f89f1eaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_an_unsupported_suffix_lists_the_formats",
      "name": "test_an_unsupported_suffix_lists_the_formats",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L328-L332",
      "signature": "def test_an_unsupported_suffix_lists_the_formats(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93ac15397325464a3759bb691860c885c3d5a811e997692bd7016bc6f7c430ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_every_supported_suffix_is_accepted_in_both_positions",
      "name": "test_every_supported_suffix_is_accepted_in_both_positions",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L300-L305",
      "signature": "def test_every_supported_suffix_is_accepted_in_both_positions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6958a99722146b0aaf208d70c296d9868357e5f94eed80da69499082459d2a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_min_matches_is_refused_for_metrics_that_report_no_matches",
      "name": "test_min_matches_is_refused_for_metrics_that_report_no_matches",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L382-L388",
      "signature": "def test_min_matches_is_refused_for_metrics_that_report_no_matches(self) -> None: # Silently ignoring --min-matches would look like a filter that ran.",
      "exported": true,
      "origin": "ast",
      "body_hash": "16110d297711eaf7af9c24907c8ef2a646773dc4f3f6cca9219749985f63c135",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_numeric_bounds_are_enforced_at_the_boundary",
      "name": "test_numeric_bounds_are_enforced_at_the_boundary",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L345-L364",
      "signature": "def test_numeric_bounds_are_enforced_at_the_boundary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c32b8ccb3291fe1c8b378db18ebbdb6b03eaeea56efa15c1edefee5ecc75f412",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_pickle_input_is_refused_with_the_reason",
      "name": "test_pickle_input_is_refused_with_the_reason",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L320-L326",
      "signature": "def test_pickle_input_is_refused_with_the_reason(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8492eb92ef83530623fc7b7a8c0dd7b47122a7e1e741c3c50dc0a2a7d303b99",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_the_inclusive_ends_of_each_range_are_accepted",
      "name": "test_the_inclusive_ends_of_each_range_are_accepted",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L366-L372",
      "signature": "def test_the_inclusive_ends_of_each_range_are_accepted(self) -> None: # 0 disables the peak filters and 0/1 are legal similarity scores, so # rejecting them would make documented invocations unusable.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa40055018fafbc574702bca657efb70665b4bafe37e320dd0cdc99642a6372c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#ValidationTests.test_uppercase_suffixes_are_accepted",
      "name": "test_uppercase_suffixes_are_accepted",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L307-L310",
      "signature": "def test_uppercase_suffixes_are_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "689bfc9394e6e8dbe847ce558ff821bd3a8b41a3b9ea4d3a4f5c512237e3a205",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#VersionPinTests",
      "name": "VersionPinTests",
      "kind": "class",
      "path": "tests/matchms/test_scripts.py",
      "span": "L748-L759",
      "signature": "class VersionPinTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "96100a810f886406e4617554b0bfa6202dabd74a62b210970244698610be0bb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matchms/test_scripts.py#VersionPinTests.test_the_documented_target_matches_the_skill_metadata",
      "name": "test_the_documented_target_matches_the_skill_metadata",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L756-L759",
      "signature": "def test_the_documented_target_matches_the_skill_metadata(self) -> None: # SKILL.md tells the agent which release the script was verified on.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bb99797c316cd4e9a1540790338f08912bfe8fdeb5ce62c4dc32c234cdd3b24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VersionPinTests"
    },
    {
      "id": "tests/matchms/test_scripts.py#VersionPinTests.test_the_installed_version_is_reported_rather_than_assumed",
      "name": "test_the_installed_version_is_reported_rather_than_assumed",
      "kind": "method",
      "path": "tests/matchms/test_scripts.py",
      "span": "L749-L754",
      "signature": "def test_the_installed_version_is_reported_rather_than_assumed(self) -> None: # `run` compares this against TARGET_VERSION to warn about drift, so it # must be a real version string and not the \"unknown\" fallback.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ada0c2be2dee564a925aa4adc9938c80bc44ef7bc568efa386b5f13b1b4f0f64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VersionPinTests"
    },
    {
      "id": "tests/matlab/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/matlab/test_scripts.py",
      "span": "L1-L381",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f4af64e24226af614f5a0c63b898ed1a8e6d39407f26d66275ac68f4339deba0",
      "chars": 13619,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#CommandPlannerTests",
      "name": "CommandPlannerTests",
      "kind": "class",
      "path": "tests/matlab/test_scripts.py",
      "span": "L87-L154",
      "signature": "class CommandPlannerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ae6da55960c9a4fda394f74d3232747a61515fbc942317542a00f68e1711da6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#CommandPlannerTests.test_matlab_script_and_function_plans_never_execute",
      "name": "test_matlab_script_and_function_plans_never_execute",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L88-L123",
      "signature": "def test_matlab_script_and_function_plans_never_execute(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d49b39476907b033d4ad64acbabfd0e65d0c78aff11ebbb65f7f4552c0f8452c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandPlannerTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#CommandPlannerTests.test_octave_plan_uses_no_init_and_traversal_fails",
      "name": "test_octave_plan_uses_no_init_and_traversal_fails",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L125-L154",
      "signature": "def test_octave_plan_uses_no_init_and_traversal_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "66f2b20189a51fea1c1f221e03206ee5e5ad1fe655ce0591311ee8ce48a75386",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandPlannerTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#DependencyFreeHelpTests",
      "name": "DependencyFreeHelpTests",
      "kind": "class",
      "path": "tests/matlab/test_scripts.py",
      "span": "L78-L84",
      "signature": "class DependencyFreeHelpTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "175946942c552c3e72c9696a28657f48b830af0ada2a5667d80f2e2d1ecb08c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed",
      "name": "test_all_cli_helps_succeed",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L79-L84",
      "signature": "def test_all_cli_helps_succeed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c593db3fa4fd4bfd5c1f93f8606a874c38994bb853ab44189c74f373dd1e900",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeHelpTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests",
      "name": "ManifestAndReproducibilityTests",
      "kind": "class",
      "path": "tests/matlab/test_scripts.py",
      "span": "L210-L266",
      "signature": "class ManifestAndReproducibilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d17756ade1976286aa048cef3c8a05eff0dfb32bf13c69b93b74a00d83ed73de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_manifest_validates_without_claiming_license_verification",
      "name": "test_manifest_validates_without_claiming_license_verification",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L211-L233",
      "signature": "def test_manifest_validates_without_claiming_license_verification(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "829b111104db9297c286eac0f41afa9191d943069bd0379c62c0076277767a2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestAndReproducibilityTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_reproducibility_report_is_deterministic",
      "name": "test_reproducibility_report_is_deterministic",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L235-L266",
      "signature": "def test_reproducibility_report_is_deterministic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d18728a35c69ff6db05a40f982921c197325b18d7cb578eb63b67fbfa315408",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestAndReproducibilityTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#MatInventoryTests",
      "name": "MatInventoryTests",
      "kind": "class",
      "path": "tests/matlab/test_scripts.py",
      "span": "L294-L376",
      "signature": "class MatInventoryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a7e2401f7f6bd91a3883c73c86a17d4425be7347ba3b7c74870202e6ce5107f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#MatInventoryTests.test_header_only_inventory_and_pickle_refusal",
      "name": "test_header_only_inventory_and_pickle_refusal",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L295-L329",
      "signature": "def test_header_only_inventory_and_pickle_refusal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b8dbc584619a0e7f9ea8cbed0f605867620af6d1c60e5b9c890dc2407da874d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatInventoryTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_h5py_metadata_smoke",
      "name": "test_optional_h5py_metadata_smoke",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L354-L376",
      "signature": "def test_optional_h5py_metadata_smoke(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d2a3be269e40cdf66011eaade67bf0f436a85929cec42577434df2ec221c02e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatInventoryTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_scipy_metadata_smoke",
      "name": "test_optional_scipy_metadata_smoke",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L331-L352",
      "signature": "def test_optional_scipy_metadata_smoke(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46d2238a1d6a84d70fb6f24513ed38bd5019f562959f4f451dee964f3f8de8f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatInventoryTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#parsed",
      "name": "parsed",
      "kind": "function",
      "path": "tests/matlab/test_scripts.py",
      "span": "L42-L48",
      "signature": "def parsed(result: subprocess.CompletedProcess[str]) -> dict[str, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aaac1ed9d07137c0e1be0cf32df3b6f121c2d82970955ba52eae2c33284dd3c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#PythonCompatibilityTests",
      "name": "PythonCompatibilityTests",
      "kind": "class",
      "path": "tests/matlab/test_scripts.py",
      "span": "L269-L291",
      "signature": "class PythonCompatibilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f361c15a18a371d4db84e22d45284d1d01c47669c0aa9d92dd81d09399f65d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_r2026a_exact_support_and_engine_version",
      "name": "test_r2026a_exact_support_and_engine_version",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L270-L282",
      "signature": "def test_r2026a_exact_support_and_engine_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c817498660c6aba7ff737428a0b55b07ea26cc0f912cd5b32aa137c801d776c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonCompatibilityTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_unsupported_python_fails_closed",
      "name": "test_unsupported_python_fails_closed",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L284-L291",
      "signature": "def test_unsupported_python_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee7edb7d28f779f0a0229b10eb20ad6038c9b6fed2d6431d6524c912bc04acec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonCompatibilityTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#run_cli",
      "name": "run_cli",
      "kind": "function",
      "path": "tests/matlab/test_scripts.py",
      "span": "L26-L39",
      "signature": "def run_cli( name: str, *arguments: object, cwd: Path | None = None ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5f172161b7cb68a0951f7d4aa146ddb5bc5667d34a32c58844c8c1117010ca9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#StaticScannerTests",
      "name": "StaticScannerTests",
      "kind": "class",
      "path": "tests/matlab/test_scripts.py",
      "span": "L157-L207",
      "signature": "class StaticScannerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c41d340922d1d1da39435f872371f840a37167c40a6c6f554ffa7225f7ebdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_scripts.py#StaticScannerTests.test_generated_scaffolds_are_clean_at_high_threshold",
      "name": "test_generated_scaffolds_are_clean_at_high_threshold",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L186-L207",
      "signature": "def test_generated_scaffolds_are_clean_at_high_threshold(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "686d09dadf2315b2352b4edb724f9e6084baa63069a909a1ebc48eb9426e3b6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticScannerTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#StaticScannerTests.test_risk_surfaces_and_opaque_mex_are_reported",
      "name": "test_risk_surfaces_and_opaque_mex_are_reported",
      "kind": "method",
      "path": "tests/matlab/test_scripts.py",
      "span": "L158-L184",
      "signature": "def test_risk_surfaces_and_opaque_mex_are_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52f909800a4796522b9cb351b1ea5911e0c62dcf6286c838481b4e7b7daab7d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticScannerTests"
    },
    {
      "id": "tests/matlab/test_scripts.py#valid_manifest",
      "name": "valid_manifest",
      "kind": "function",
      "path": "tests/matlab/test_scripts.py",
      "span": "L51-L75",
      "signature": "def valid_manifest() -> dict[str, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a24123ebe3c712203dcef61d239504b8d256a6c938b7a1a19d055e4923e7f44a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/matlab/test_static.py",
      "span": "L1-L233",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0f9107b42a43a0064a7aeeb91c1ec108b6e82437ecd05f06b7cf139ffe71234e",
      "chars": 9054,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_static.py#CurrentReleaseTests",
      "name": "CurrentReleaseTests",
      "kind": "class",
      "path": "tests/matlab/test_static.py",
      "span": "L204-L228",
      "signature": "class CurrentReleaseTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c7a784c72761f2277b66f9823073891802a8825d6dd59c21c0f0bf2fcf12ff4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_static.py#CurrentReleaseTests.test_no_stale_execution_or_install_patterns",
      "name": "test_no_stale_execution_or_install_patterns",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L219-L228",
      "signature": "def test_no_stale_execution_or_install_patterns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f49f12a45b0feec7a8f446face6ffa4c6eb78c455a72d65ae5b47f174214d791",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurrentReleaseTests"
    },
    {
      "id": "tests/matlab/test_static.py#CurrentReleaseTests.test_r2026a_python_record_is_exact",
      "name": "test_r2026a_python_record_is_exact",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L205-L217",
      "signature": "def test_r2026a_python_record_is_exact(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "457646e41e2da8d943f448d13c8f510528faef42380bbb27047d3b49491a8b9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurrentReleaseTests"
    },
    {
      "id": "tests/matlab/test_static.py#ScriptSafetyTests",
      "name": "ScriptSafetyTests",
      "kind": "class",
      "path": "tests/matlab/test_static.py",
      "span": "L123-L201",
      "signature": "class ScriptSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a5a1b7870c755dff2f59b803565c33b5574fd840d600d6e1165ac0a46e31c22",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_static.py#ScriptSafetyTests.test_cli_inventory_and_documentation",
      "name": "test_cli_inventory_and_documentation",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L124-L129",
      "signature": "def test_cli_inventory_and_documentation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec753be53f417593590b0d4b2ac0d8e65edc8f35623cd346abeba648c3bd459b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/matlab/test_static.py#ScriptSafetyTests.test_no_bytecode_or_generated_artifacts",
      "name": "test_no_bytecode_or_generated_artifacts",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L194-L201",
      "signature": "def test_no_bytecode_or_generated_artifacts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d0905924dda9b8ffa85a4da6797e272744fa624836b124e3ef99e0a886bf5f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/matlab/test_static.py#ScriptSafetyTests.test_scripts_have_no_execution_network_or_unsafe_serialization",
      "name": "test_scripts_have_no_execution_network_or_unsafe_serialization",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L159-L192",
      "signature": "def test_scripts_have_no_execution_network_or_unsafe_serialization(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "75cc9a3715a8132dbbd740c5f5a8c306c38e1e5380b8ef80d923e42a7e47e1d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/matlab/test_static.py#ScriptSafetyTests.test_scripts_parse_and_optional_imports_are_lazy",
      "name": "test_scripts_parse_and_optional_imports_are_lazy",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L131-L157",
      "signature": "def test_scripts_parse_and_optional_imports_are_lazy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e84077f66438de7c8eec2504ee9a0f7e474141c0a0ec83063cf5a0cb99321d8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests",
      "name": "SkillStructureTests",
      "kind": "class",
      "path": "tests/matlab/test_static.py",
      "span": "L37-L120",
      "signature": "class SkillStructureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea4700ffe33493dd8cda050edabbbb1c39f0b3bb27c78efb980ce57f45cfced3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests.test_assets_are_strict_json",
      "name": "test_assets_are_strict_json",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L60-L71",
      "signature": "def test_assets_are_strict_json(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce7dffaa603b8f33e86388a4bb53709bd1e4d57d1a341a0f014375addbf61064",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests.test_exactly_eight_dated_references",
      "name": "test_exactly_eight_dated_references",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L51-L58",
      "signature": "def test_exactly_eight_dated_references(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6822c48dace2a3b4aef14d6c0c9f75b17dd1ba607a735a8a249c68df29fc60a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests.test_external_sources_use_allowed_official_domains",
      "name": "test_external_sources_use_allowed_official_domains",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L86-L96",
      "signature": "def test_external_sources_use_allowed_official_domains(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbb57b0133e5619fd3823e743ab5c748e05976226aa98db8b7695cfd00e09231",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests.test_frontmatter_and_progressive_disclosure",
      "name": "test_frontmatter_and_progressive_disclosure",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L38-L49",
      "signature": "def test_frontmatter_and_progressive_disclosure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a571adcc7fd677e1ff9852d1af1a7e57b4c4be504c62ad41de921f8ec0bcf5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests.test_local_markdown_links_resolve",
      "name": "test_local_markdown_links_resolve",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L73-L84",
      "signature": "def test_local_markdown_links_resolve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cd53de4ba4e93d366cafe4bb4ec81a4bb686187129018fbc315580b429e875d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/matlab/test_static.py#SkillStructureTests.test_security_and_product_boundaries_are_explicit",
      "name": "test_security_and_product_boundaries_are_explicit",
      "kind": "method",
      "path": "tests/matlab/test_static.py",
      "span": "L98-L120",
      "signature": "def test_security_and_product_boundaries_are_explicit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d25df6a9408f874e7181aa24b25136212c7599dbc70e2552589fff7989825a0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L1-L237",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d3255836590aeb0432ebb98db14422ca3625340a1dff35e782f99bcdef16174a",
      "chars": 9541,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#CompositeFigureTests",
      "name": "CompositeFigureTests",
      "kind": "class",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L219-L232",
      "signature": "class CompositeFigureTests(FigureTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b706abdff5137f837cfd5092612849bd56364e79d38e3e07b5be40bf0a079570",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#CompositeFigureTests.test_the_comprehensive_figure_renders_and_saves",
      "name": "test_the_comprehensive_figure_renders_and_saves",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L220-L226",
      "signature": "def test_the_comprehensive_figure_renders_and_saves(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bdc5c374d61ae72717823f8edcc800b0bef930b612c570c90be6b7fbc29598c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompositeFigureTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#CompositeFigureTests.test_the_style_preview_renders",
      "name": "test_the_style_preview_renders",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L228-L232",
      "signature": "def test_the_style_preview_renders(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9fd53276b8d03c71c95653ef1d54ce1beecde38e25eef733dd85012ca7e9ecc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompositeFigureTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#FigureTestCase",
      "name": "FigureTestCase",
      "kind": "class",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L52-L54",
      "signature": "class FigureTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "93c7cd127756aa645431f0f13fd54ef55701fea8300f690d24720461e814660e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#FigureTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L53-L54",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20e475bad65dd9381b5940547913b670cbced56f3dac46af3b08cedb204f6e92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureTestCase"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "name": "PlotBuilderTests",
      "kind": "class",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L172-L216",
      "signature": "class PlotBuilderTests(FigureTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c843f8974ccf88b84cbf048ca2194a7fe626b7d9dcd22a0228dc1156452888a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#PlotBuilderTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L173-L175",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b42feb8150940036d5f2e162b2fb676d0ca47d925a6b57b6c43e06ae1e047045",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotBuilderTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_builders_create_their_own_axes_when_none_is_supplied",
      "name": "test_builders_create_their_own_axes_when_none_is_supplied",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L204-L210",
      "signature": "def test_builders_create_their_own_axes_when_none_is_supplied(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "870a0c4b13f3c6dac8e17e7f29a4bbce9a42ee2a48a3344996cbd4f358d2f8b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotBuilderTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_every_builder_draws_onto_the_axes_it_is_given",
      "name": "test_every_builder_draws_onto_the_axes_it_is_given",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L177-L190",
      "signature": "def test_every_builder_draws_onto_the_axes_it_is_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2223493bb0a342f70873ea994a3c5cc298935a3d808a42c466274eb0da8881ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotBuilderTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_every_builder_labels_its_axes",
      "name": "test_every_builder_labels_its_axes",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L192-L202",
      "signature": "def test_every_builder_labels_its_axes(self) -> None: # An unlabelled publication figure is a bug, not a style preference.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1eaa102b0f96144e4e776e0d9c40df928cf781c60c473c9fe19750911994aff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotBuilderTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_the_publication_style_applies_without_error",
      "name": "test_the_publication_style_applies_without_error",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L212-L216",
      "signature": "def test_the_publication_style_applies_without_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b4fae48a611cc48e45302031d0cbef419f64e4cf74fd2435d86448628be4cac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotBuilderTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#SampleDataTests",
      "name": "SampleDataTests",
      "kind": "class",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L146-L169",
      "signature": "class SampleDataTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73dec277f38783ccb83c48f57ecb30762502293d67dba601227b12b9f59d832d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#SampleDataTests.test_the_preview_data_is_deterministic_too",
      "name": "test_the_preview_data_is_deterministic_too",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L163-L169",
      "signature": "def test_the_preview_data_is_deterministic_too(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f55cfbdfa5dd066cf3713847715b75e74427507d27ea6e097ea5ea334689d733",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleDataTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#SampleDataTests.test_the_sample_data_covers_every_plot_type",
      "name": "test_the_sample_data_covers_every_plot_type",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L147-L150",
      "signature": "def test_the_sample_data_covers_every_plot_type(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "48c7c873d88b6a13e4b078586b147595c6b417e1776a0eda6b1696f5c6ee6ded",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleDataTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#SampleDataTests.test_the_sample_data_is_deterministic",
      "name": "test_the_sample_data_is_deterministic",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L152-L161",
      "signature": "def test_the_sample_data_is_deterministic(self) -> None: # The templates are documentation; a figure that changes between runs # cannot be compared against the one in the docs.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c715fec211722a03ad2a520bed508ac7df39cc70e01b82e384384f7692684e30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleDataTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StyleFileTests",
      "name": "StyleFileTests",
      "kind": "class",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L100-L143",
      "signature": "class StyleFileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f48eccad99fc7d9610a103a8e1d3f2a261408339b472379784f411e626fc441d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StyleFileTests.test_a_saved_style_is_loadable_by_matplotlib",
      "name": "test_a_saved_style_is_loadable_by_matplotlib",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L101-L112",
      "signature": "def test_a_saved_style_is_loadable_by_matplotlib(self) -> None: # The real contract: matplotlib must be able to read what we wrote.",
      "exported": true,
      "origin": "ast",
      "body_hash": "22d292e56e8c9f17fa3dd449f86b9e5859a862eb07058a45049235a19f5d9b7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleFileTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StyleFileTests.test_an_empty_style_still_writes_a_valid_file",
      "name": "test_an_empty_style_still_writes_a_valid_file",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L136-L143",
      "signature": "def test_an_empty_style_still_writes_a_valid_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2477782fddd064fac30f27821efa190833b29b5aae42737a9663e1e3f14758a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleFileTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StyleFileTests.test_sequence_values_are_written_comma_separated",
      "name": "test_sequence_values_are_written_comma_separated",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L125-L134",
      "signature": "def test_sequence_values_are_written_comma_separated(self) -> None: # `font.sans-serif` is a list; mplstyle wants `a, b`, not `['a', 'b']`.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7212dc39ffc01986edaf8b3158161f8c5fe73450d76326d64722087f7f837e24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleFileTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StyleFileTests.test_the_file_is_commented_and_grouped",
      "name": "test_the_file_is_commented_and_grouped",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L114-L123",
      "signature": "def test_the_file_is_commented_and_grouped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1bf4cc7581d95d232c529018c05d74fc0b8a40f12fe503ba69b5769e8907f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleFileTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "name": "StylePresetTests",
      "kind": "class",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L57-L97",
      "signature": "class StylePresetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3f4e08d872a8df606f58c26bd063e0ff7eb788d5ab5bb82215ac2daf48d0ca5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StylePresetTests.test_every_documented_preset_is_defined",
      "name": "test_every_documented_preset_is_defined",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L86-L97",
      "signature": "def test_every_documented_preset_is_defined(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd9c0fa96b0a50cdd8952743adb0e5da5b95cce49d8be36b6995c19ee5cfd609",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StylePresetTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StylePresetTests.test_every_preset_applies_cleanly",
      "name": "test_every_preset_applies_cleanly",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L74-L79",
      "signature": "def test_every_preset_applies_cleanly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90219a44ba776050fe61bd43d12f9e135896028620569991b03af37e4bd00b76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StylePresetTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StylePresetTests.test_every_preset_key_is_a_real_rcparam",
      "name": "test_every_preset_key_is_a_real_rcparam",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L65-L72",
      "signature": "def test_every_preset_key_is_a_real_rcparam(self) -> None: # matplotlib ignores unknown rcParams silently, so a typo here is # invisible until someone notices the figure looks wrong.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3511513fb04c8cff5bad704cf817dbf21b8cf50de3bdda16104549915f94c2d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StylePresetTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StylePresetTests.test_presets_exist_and_are_named_dictionaries",
      "name": "test_presets_exist_and_are_named_dictionaries",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L58-L63",
      "signature": "def test_presets_exist_and_are_named_dictionaries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "96f987cdaab97434c25ca9167531d4b143a7acc76f88b6b0dee233ccafced3ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StylePresetTests"
    },
    {
      "id": "tests/matplotlib/test_scripts.py#StylePresetTests.test_the_publication_preset_saves_at_print_resolution",
      "name": "test_the_publication_preset_saves_at_print_resolution",
      "kind": "method",
      "path": "tests/matplotlib/test_scripts.py",
      "span": "L81-L84",
      "signature": "def test_the_publication_preset_saves_at_print_resolution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc4cc0c51ba840e1500c531638a2264d75a27fa74434edac0c804147e7a9d57c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StylePresetTests"
    },
    {
      "id": "tests/medchem/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/medchem/test_scripts.py",
      "span": "L1-L395",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f4705d8e1e5922fe00b9cc619a2d5f1462a259ee047796da09426fd62ab168f3",
      "chars": 18941,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#ChemicalGroupTests",
      "name": "ChemicalGroupTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L306-L323",
      "signature": "class ChemicalGroupTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6c538f5f06582ffab4ad0968bc3cdbbf6b923d9202ab04155f78494d39967fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#ChemicalGroupTests.test_an_unrecognised_group_reports_no_matches_rather_than_raising",
      "name": "test_an_unrecognised_group_reports_no_matches_rather_than_raising",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L319-L323",
      "signature": "def test_an_unrecognised_group_reports_no_matches_rather_than_raising(self) -> None: # Documented sharp edge: unlike --rules, group names are not validated, # so a typo yields an all-False column instead of an error.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffbab94ac6b3533ba0fd21e6d5866b7009d3846abe7cdb635fe7e4e52a1fcf4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChemicalGroupTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#ChemicalGroupTests.test_one_boolean_column_is_produced_per_requested_group",
      "name": "test_one_boolean_column_is_produced_per_requested_group",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L307-L317",
      "signature": "def test_one_boolean_column_is_produced_per_requested_group(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0aa40b948d65ae1dfd1fd775c76d13cb3fc649c821488c640bcd88bbcc7a67c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChemicalGroupTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "name": "ComplexityAndQueryTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L271-L303",
      "signature": "class ComplexityAndQueryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "298d5b641d6749ff096b3da90bb5c70881f0bd282903911f635b79a781ae2549",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_generous_complexity_percentile_keeps_a_simple_molecule",
      "name": "test_a_generous_complexity_percentile_keeps_a_simple_molecule",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L279-L283",
      "signature": "def test_a_generous_complexity_percentile_keeps_a_simple_molecule(self) -> None: # Ethanol sits at the very bottom of the ZINC-15 complexity # distribution, so a 99th-percentile ceiling cannot exclude it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4aac1d8458b42b0fd9a9b021476cb083a1e4da477677ba6fceb124db72e5b847",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexityAndQueryTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_malformed_query_raises_instead_of_admitting_everything",
      "name": "test_a_malformed_query_raises_instead_of_admitting_everything",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L298-L303",
      "signature": "def test_a_malformed_query_raises_instead_of_admitting_everything(self) -> None: # A parse failure that fell through would look like \"all molecules # passed\" -- the worst possible outcome for a filter.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d038d9f708ef37f438f7e17f755f132f3f5283b649b10d4fbf98a269791a4c9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexityAndQueryTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_negated_query_inverts_the_verdict",
      "name": "test_a_negated_query_inverts_the_verdict",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L292-L296",
      "signature": "def test_a_negated_query_inverts_the_verdict(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33da0fbc0eb2970e1ddf30464fb602629f00f5399d578b2093f9743ad491d781",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexityAndQueryTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_query_can_both_admit_and_reject_molecules",
      "name": "test_a_query_can_both_admit_and_reject_molecules",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L285-L290",
      "signature": "def test_a_query_can_both_admit_and_reject_molecules(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "043b80f53781190154b525e413acee9ef933c77e7b77f15aa8b56d4c41e6b594",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexityAndQueryTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_the_complexity_column_records_the_metric_used",
      "name": "test_the_complexity_column_records_the_metric_used",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L272-L277",
      "signature": "def test_the_complexity_column_records_the_metric_used(self) -> None: # Two metrics in one run would collide on a fixed column name.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6536b0afa18acccee3d3536411155d722b06a1dc6135f49c1fd30929b758c043",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComplexityAndQueryTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LillyFilterTests",
      "name": "LillyFilterTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L326-L333",
      "signature": "class LillyFilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "21b9d9cf7990822f8533c0f2de6df40589f88482c61a7aa508e86622b5246158",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#LillyFilterTests.test_a_missing_lilly_installation_yields_a_null_column_of_the_right_length",
      "name": "test_a_missing_lilly_installation_yields_a_null_column_of_the_right_length",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L327-L333",
      "signature": "def test_a_missing_lilly_installation_yields_a_null_column_of_the_right_length(self) -> None: # The Lilly rules are a separate conda package. When absent the script # must still return one row per molecule, or the positional concat in # main() would misalign every later column.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0077637c8678a6dd232d6bd30d6e2ee996b5bb51fd7b1607475dd3283644d0b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LillyFilterTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "name": "LoadMoleculesTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L74-L177",
      "signature": "class LoadMoleculesTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f129912d100cea36f44ac9e9e6bed8853190d268466605e932fad0096d41dbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_csv_is_read_with_its_extra_columns_preserved",
      "name": "test_a_csv_is_read_with_its_extra_columns_preserved",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L77-L86",
      "signature": "def test_a_csv_is_read_with_its_extra_columns_preserved(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea18592d6bdc843f391e32d4eeb20136c4a8e49f1f4868042e82ad9d63652ae9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_file_of_only_bad_smiles_yields_nothing_rather_than_failing",
      "name": "test_a_file_of_only_bad_smiles_yields_nothing_rather_than_failing",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L145-L150",
      "signature": "def test_a_file_of_only_bad_smiles_yields_nothing_rather_than_failing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c7b9188f3c1f371436dd370fd66d5975cbbd2bc9d9dc87e64c5786fb8346cfd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_header_only_csv_loads_zero_molecules",
      "name": "test_a_header_only_csv_loads_zero_molecules",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L152-L157",
      "signature": "def test_a_header_only_csv_loads_zero_molecules(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3a10a766abbacec75057b00d0c15231a26fc42942be555f2f97d0ef669ae253",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_missing_smiles_column_exits_rather_than_guessing",
      "name": "test_a_missing_smiles_column_exits_rather_than_guessing",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L159-L164",
      "signature": "def test_a_missing_smiles_column_exits_rather_than_guessing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "264f844eb35bb95afed09cbc4a85a20d441a839781e0a28531816bde5cc1173c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_named_smiles_column_is_honoured",
      "name": "test_a_named_smiles_column_is_honoured",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L88-L93",
      "signature": "def test_a_named_smiles_column_is_honoured(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d10ee2b42072bc43c90f57c0ab8cca15a85030c45fd45b0d70226813bde45cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_plain_text_file_treats_each_line_as_a_smiles",
      "name": "test_a_plain_text_file_treats_each_line_as_a_smiles",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L105-L111",
      "signature": "def test_a_plain_text_file_treats_each_line_as_a_smiles(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51ae524acba39fa8198f05125a8d4f402e8b46e8ace07a76e1d178fbf4c38e87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_tsv_is_split_on_tabs_not_commas",
      "name": "test_a_tsv_is_split_on_tabs_not_commas",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L95-L103",
      "signature": "def test_a_tsv_is_split_on_tabs_not_commas(self) -> None: # Reading a TSV with the comma separator would leave one column named # \"smiles\\tname\", and the missing-column branch would exit instead.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffbe51638fda7e2050960dbecba024109c09d0a62042b9a14abfa4a1b09a122d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_an_sdf_carries_its_properties_into_the_frame",
      "name": "test_an_sdf_carries_its_properties_into_the_frame",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L113-L127",
      "signature": "def test_an_sdf_carries_its_properties_into_the_frame(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "507654746cf6aa638cdcb9368fd06560d807eb7ff40a46a31f40ecfdd5a80b11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_an_unparseable_smiles_drops_its_row_too",
      "name": "test_an_unparseable_smiles_drops_its_row_too",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L129-L143",
      "signature": "def test_an_unparseable_smiles_drops_its_row_too(self) -> None: # The alignment guarantee: filter results are concatenated positionally # onto this frame, so a dropped molecule must drop its metadata row.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f455a9b0fb5d8a2cb574b98cf2b3fd3ecb63540315d351b868fdfe6ab4e02e8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_an_unsupported_extension_exits",
      "name": "test_an_unsupported_extension_exits",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L166-L171",
      "signature": "def test_an_unsupported_extension_exits(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51aded7bcdc29f48073faffa2dab12c76f3a2bbb81355eaa2e0f4542f238da87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_the_extension_check_is_case_insensitive",
      "name": "test_the_extension_check_is_case_insensitive",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L173-L177",
      "signature": "def test_the_extension_check_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d17daa03b2db3c77853714306094fed6cae9dc8cbd2678f6fb655b9cdf781fe9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadMoleculesTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#molecules",
      "name": "molecules",
      "kind": "function",
      "path": "tests/medchem/test_scripts.py",
      "span": "L63-L64",
      "signature": "def molecules(*smiles)",
      "exported": true,
      "origin": "ast",
      "body_hash": "44bbb0d447e0976b7c09acd2e7de9da1a471782a74b26a7309a637820c81025d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#RuleFilterTests",
      "name": "RuleFilterTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L180-L219",
      "signature": "class RuleFilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c2fb4793346d5c6966b76f010961eae442d74521a10752cf477f32711e646f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#RuleFilterTests.test_an_unknown_rule_is_refused_rather_than_ignored",
      "name": "test_an_unknown_rule_is_refused_rather_than_ignored",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L217-L219",
      "signature": "def test_an_unknown_rule_is_refused_rather_than_ignored(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b25f672e6125651d7ed912a9facfd85c837f66c3e35175a8672d43c7048b568",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuleFilterTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#RuleFilterTests.test_rule_of_five_accepts_a_small_molecule_and_rejects_a_pentapeptide",
      "name": "test_rule_of_five_accepts_a_small_molecule_and_rejects_a_pentapeptide",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L183-L187",
      "signature": "def test_rule_of_five_accepts_a_small_molecule_and_rejects_a_pentapeptide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "816e7902c3c57f522b0c66fb264b653166a8af7740afd70c9b1dd6b62d0451e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuleFilterTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#RuleFilterTests.test_several_rules_produce_one_column_each_plus_the_aggregates",
      "name": "test_several_rules_produce_one_column_each_plus_the_aggregates",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L195-L208",
      "signature": "def test_several_rules_produce_one_column_each_plus_the_aggregates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd338cae067d381a875d2918c8a72946eab7fe5ea161fbe1bb8687f59d5ef435",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuleFilterTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#RuleFilterTests.test_the_molecule_objects_are_not_carried_into_the_output_frame",
      "name": "test_the_molecule_objects_are_not_carried_into_the_output_frame",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L189-L193",
      "signature": "def test_the_molecule_objects_are_not_carried_into_the_output_frame(self) -> None: # A `mol` column of RDKit objects cannot be written to CSV.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1746b1137cecde22c7ab2cd0f184974a830892542fb1f11d7a78fe253df4ffc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuleFilterTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#RuleFilterTests.test_the_rule_names_the_cli_validates_against_include_the_documented_ones",
      "name": "test_the_rule_names_the_cli_validates_against_include_the_documented_ones",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L210-L215",
      "signature": "def test_the_rule_names_the_cli_validates_against_include_the_documented_ones(self) -> None: # main() warns when --rules names something outside this list, so the # list has to contain the rules SKILL.md tells the agent to ask for.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e378da95d0be60b776d26f8ae6733c6c762218bdb4b74e8aa1683569920d5b38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuleFilterTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "name": "StructuralAlertTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L222-L268",
      "signature": "class StructuralAlertTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "abcd7b84b4a705792fc812a3a7207f3c42e2fc3edfa182ed6408f6532e3feaab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests.test_common_alerts_columns_are_renamed_to_the_passes_convention",
      "name": "test_common_alerts_columns_are_renamed_to_the_passes_convention",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L230-L237",
      "signature": "def test_common_alerts_columns_are_renamed_to_the_passes_convention(self) -> None: # generate_summary and --filter-output only see columns starting with # `passes_`, so medchem's generic `pass_filter`/`status` must be renamed.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2903db4ef231f234fa03a41e18007b618f302a8afa96cd87b010f209b81baf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralAlertTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests.test_common_alerts_pass_caffeine_and_exclude_catechol",
      "name": "test_common_alerts_pass_caffeine_and_exclude_catechol",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L225-L228",
      "signature": "def test_common_alerts_pass_caffeine_and_exclude_catechol(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b16cb92db4d5ba76f79b60528b973649feab1d1df1fe6172a3582413cfcf6d95",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralAlertTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests.test_each_requested_catalog_is_yielded_separately",
      "name": "test_each_requested_catalog_is_yielded_separately",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L259-L268",
      "signature": "def test_each_requested_catalog_is_yielded_separately(self) -> None: # main() pairs each yielded name with its own `passes_<name>` column, so # the generator must not merge catalogs into one verdict.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b90ff5eafac2fd1bb467ed141eb82f8e9cf2d0995f4f11c24d08c2655837331c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralAlertTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests.test_nibr_columns_are_renamed_too",
      "name": "test_nibr_columns_are_renamed_too",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L244-L248",
      "signature": "def test_nibr_columns_are_renamed_too(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b31632bb00103ee05c97860bf36cc58ede7a7aedf0c3692b7aca5fbc6fe0795e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralAlertTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests.test_nibr_passes_caffeine_and_excludes_catechol",
      "name": "test_nibr_passes_caffeine_and_excludes_catechol",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L239-L242",
      "signature": "def test_nibr_passes_caffeine_and_excludes_catechol(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7fdde08bb1581227ae2864a32174017c8afbf37c6208b9621a2b6b368ed37578",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralAlertTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#StructuralAlertTests.test_the_pains_catalog_flags_catechol_and_leaves_caffeine_alone",
      "name": "test_the_pains_catalog_flags_catechol_and_leaves_caffeine_alone",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L250-L257",
      "signature": "def test_the_pains_catalog_flags_catechol_and_leaves_caffeine_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b4a088d076a1e2e1638c060f752c8d51c32d65c35a673bb769fc84e70bf97a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructuralAlertTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests",
      "name": "SummaryReportTests",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L336-L390",
      "signature": "class SummaryReportTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a379c88d7afa7cf69a3e12a5d253e79983fcff158dff29614052423498d977d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "name": "summarize",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L339-L342",
      "signature": "def summarize(self, frame: \"pandas.DataFrame\", name: str = \"results.csv\") -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "23586524b5f5cc21fd7d36cfed9961f9138a0602f3043f4bc42caab649d5b8e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.test_a_frame_with_no_filter_columns_reports_only_the_total",
      "name": "test_a_frame_with_no_filter_columns_reports_only_the_total",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L387-L390",
      "signature": "def test_a_frame_with_no_filter_columns_reports_only_the_total(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f374495a6464d4fe65a547df3401ba93f72c6bfc96b351b135b6b8925f6c4e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.test_a_non_boolean_filter_column_is_skipped_not_summed",
      "name": "test_a_non_boolean_filter_column_is_skipped_not_summed",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L369-L379",
      "signature": "def test_a_non_boolean_filter_column_is_skipped_not_summed(self) -> None: # apply_lilly returns None values when the Lilly rules are missing; # summing those would raise rather than report.",
      "exported": true,
      "origin": "ast",
      "body_hash": "478b554dde6264f1952834ddd239f078ae9e9507ea5dcb9b565e58ec67fd37f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.test_an_empty_result_set_does_not_divide_by_zero",
      "name": "test_an_empty_result_set_does_not_divide_by_zero",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L381-L385",
      "signature": "def test_an_empty_result_set_does_not_divide_by_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "356bf9b1268db3dc06ccb91c01d12a21c2b195f13227d039a2080b707ad2aeff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.test_counts_and_percentages_are_reported_per_filter",
      "name": "test_counts_and_percentages_are_reported_per_filter",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L344-L356",
      "signature": "def test_counts_and_percentages_are_reported_per_filter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2424d6472357045961d9c2bd882f53fb48952efde8f9af300238e96a119e227",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.test_the_aggregate_pass_all_column_is_counted_as_a_filter",
      "name": "test_the_aggregate_pass_all_column_is_counted_as_a_filter",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L363-L367",
      "signature": "def test_the_aggregate_pass_all_column_is_counted_as_a_filter(self) -> None: # apply_rule_filters emits `pass_all`, which does not start with # `passes_`; it is named explicitly so rule runs are summarised at all.",
      "exported": true,
      "origin": "ast",
      "body_hash": "946620a63c53150c7f413ff63ce48c35be848609f9c9e5b445c148705c4437dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#SummaryReportTests.test_the_summary_sits_beside_the_output_and_takes_its_stem",
      "name": "test_the_summary_sits_beside_the_output_and_takes_its_stem",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L358-L361",
      "signature": "def test_the_summary_sits_beside_the_output_and_takes_its_stem(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d945290ab36c7dccc0cda34c38ee97895d9eb430bc69be15fcaa8ef8e5a0aa6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryReportTests"
    },
    {
      "id": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase",
      "name": "TemporaryDirectoryTestCase",
      "kind": "class",
      "path": "tests/medchem/test_scripts.py",
      "span": "L67-L71",
      "signature": "class TemporaryDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "edfd6896219aad5689ef333fb5963fb4ed407f5ec249f13bb6d8b45f3bff181d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/medchem/test_scripts.py",
      "span": "L68-L71",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1-L1532",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3e345582eb97ec5ec06ef19cdf573029b51ef8125e0c39c024e585bb98742819",
      "chars": 70632,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#_load_client",
      "name": "_load_client",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L29-L35",
      "signature": "def _load_client()",
      "exported": false,
      "origin": "ast",
      "body_hash": "417d74c0296bf92ef4fdb48b94343a435698982bc6ec4ea444b18ddcdc984f88",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "name": "ArtifactAndCommandTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L971-L1424",
      "signature": "class ArtifactAndCommandTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba2a858306feee8e9e8aa3f30c26a617c36d089542cf4dc45902be60a6d7a3e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_manifests_record_the_actual_network_stage",
      "name": "test_failure_manifests_record_the_actual_network_stage",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1131-L1189",
      "signature": "def test_failure_manifests_record_the_actual_network_stage(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5f904ac323235f45532030fc6f50e3c0075f94698ac61df2eee40f4fb6a5d8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_retention_is_best_effort_and_does_not_mask_original",
      "name": "test_failure_retention_is_best_effort_and_does_not_mask_original",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1004-L1020",
      "signature": "def test_failure_retention_is_best_effort_and_does_not_mask_original(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb338ec08e20f79ced887cb00c23f903201119e38912aeaa4f5e0caf54a651d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response",
      "name": "test_graph_command_posts_saved_bytes_and_hashes_exact_response",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1022-L1095",
      "signature": "def test_graph_command_posts_saved_bytes_and_hashes_exact_response(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "49d8b325ae388451dad7afccc69196fee31fc172d6412c7389a556e854421997",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response.fake_post",
      "name": "fake_post",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1027-L1031",
      "signature": "def fake_post(url, request_bytes, *, timeout)",
      "exported": true,
      "origin": "ast",
      "body_hash": "62fe80cd1ada1cf3de3eaec67321207a788da955c72a4f4aabcc05aa4deb0e42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_main_exit_code_mapping_for_local_and_response_errors",
      "name": "test_main_exit_code_mapping_for_local_and_response_errors",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1370-L1424",
      "signature": "def test_main_exit_code_mapping_for_local_and_response_errors(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d817544078bf315e1436b9f03196d7b0ca6870b7198498125eb60c6eef8149c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_malformed_response_is_retained_without_summary",
      "name": "test_malformed_response_is_retained_without_summary",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1274-L1307",
      "signature": "def test_malformed_response_is_retained_without_summary(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "072d3e6a80f518533cb8f854fa96b09d4520e6f2923bf2b743845deea33cdd9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_normalize_command_never_posts",
      "name": "test_normalize_command_never_posts",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1309-L1347",
      "signature": "def test_normalize_command_never_posts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa6c051ae0b32b1f7248478be616975c091c418c1eb1f9ceefe648ec8840a639",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_output_directory_policy_and_atomic_no_overwrite",
      "name": "test_output_directory_policy_and_atomic_no_overwrite",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L972-L1002",
      "signature": "def test_output_directory_policy_and_atomic_no_overwrite(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f337847aea36d3aea39765dcc9d1ed330ec8c8a9aa8c8b2fe403aea76f4a0da0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_oversized_query_retains_request_and_manifest_but_no_partial_response",
      "name": "test_oversized_query_retains_request_and_manifest_but_no_partial_response",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1191-L1207",
      "signature": "def test_oversized_query_retains_request_and_manifest_but_no_partial_response(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e85ffeb1a9f43a5c62423f66df0a82aca7e9932c66ba25f0395644662d847e9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_partial_graph_command_retains_all_artifacts_and_exits_seven",
      "name": "test_partial_graph_command_retains_all_artifacts_and_exits_seven",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1237-L1272",
      "signature": "def test_partial_graph_command_retains_all_artifacts_and_exits_seven(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "92ba8f8b7029572e7f97154bf5a53a8ac7b4c47d7ac8cfbdd6697a0faed19f2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_preflight_with_output_has_get_manifest_and_no_request_artifact",
      "name": "test_preflight_with_output_has_get_manifest_and_no_request_artifact",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1097-L1129",
      "signature": "def test_preflight_with_output_has_get_manifest_and_no_request_artifact(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0151d39dca2543ddc50bb138d6e271600e25debb9d2bb7bc0b1be03c5ebac93f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_summarize_is_offline_and_preserves_inputs",
      "name": "test_summarize_is_offline_and_preserves_inputs",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1349-L1368",
      "signature": "def test_summarize_is_offline_and_preserves_inputs(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef95054dd66813c73d2cda48173cbfc3bc8a3001cb760c38e2656207428ff312",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_zero_result_and_normalization_no_result_statuses",
      "name": "test_zero_result_and_normalization_no_result_statuses",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1209-L1235",
      "signature": "def test_zero_result_and_normalization_no_result_statuses(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac22bf20db77a24d8f1443e167c70ec657e88083b85ce859f2f8a0dca24bea87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArtifactAndCommandTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "name": "FakeResponse",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L139-L158",
      "signature": "class FakeResponse",
      "exported": true,
      "origin": "ast",
      "body_hash": "53069610fb559421ce3c8bc98cd1b5f8e695b7c046d1d2f1dbff8077610ec834",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse.__enter__",
      "name": "__enter__",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L154-L155",
      "signature": "def __enter__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9bc8e58d520af62f0de2ba0deb174d20440afd12aa6d64bdf7c40edc4cbfa696",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse.__exit__",
      "name": "__exit__",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L157-L158",
      "signature": "def __exit__(self, exc_type, exc, traceback)",
      "exported": false,
      "origin": "ast",
      "body_hash": "f39a751c5d9998cf6846f9457b675da171a9b5fad15dbfafb8b773cc2771b9ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L140-L143",
      "signature": "def __init__(self, body: bytes, *, status: int = 200, headers=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "78b407a2a2fd9c09fac942e3f4e8ea2df508ffc4ba848b4a39ccef6fe58c7202",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse.close",
      "name": "close",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L151-L152",
      "signature": "def close(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d87b1205d9d74cf35e0665378b3d6133fa998e746c5b5437a2373e6bc8e6ce47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse.getcode",
      "name": "getcode",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L148-L149",
      "signature": "def getcode(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc6deaf97992ba18c843619654f8a8ebf5d233dac067a4aba0cafe4390a9ece3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#FakeResponse.read",
      "name": "read",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L145-L146",
      "signature": "def read(self, amount=-1)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b79b08dab7b8cf5d31a8908fdc4df6e4133f2be88c50b9bfefe196a244f8951d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "name": "fixture_bytes",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L42-L43",
      "signature": "def fixture_bytes(name: str) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "f61c1057adc82d0ba8fd15e513158fee76f8a3bb6bb3e577d8fd402b35ae0374",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#fixture_json",
      "name": "fixture_json",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L46-L47",
      "signature": "def fixture_json(name: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b7c8d3124f1c766af1c7fa300c2b13b38d82e8e4bbdc2febab5a42155be2c6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "name": "LiveSmokeTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1428-L1527",
      "signature": "class LiveSmokeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b743a58dd4caaacd8d8d3240a0883ba7a7a358a2e98bb5421009d70e17e09f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.bound_node_ids",
      "name": "bound_node_ids",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1452-L1458",
      "signature": "def bound_node_ids(self, summary)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c46766a3079f35bd441d4d6684eb4e6b7056220d935f259c9124649845038f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "name": "live_query",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1436-L1450",
      "signature": "def live_query(self, body)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df348417b2a7da543b33768f503eefb8044af942993b1e995955675cb1e4ec4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_service",
      "name": "live_service",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1429-L1434",
      "signature": "def live_service(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4a8d2f34f659ed58ad9f0e2d1112b3c20820df6165ea6f15caac5f51a960408",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_01_production_openapi",
      "name": "test_01_production_openapi",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1460-L1462",
      "signature": "def test_01_production_openapi(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f937e87856a05e931c399010a792ecb40b25223731880182fcf84e97717c53cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_02_production_accepts_rtx_kg2_lookup",
      "name": "test_02_production_accepts_rtx_kg2_lookup",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1464-L1466",
      "signature": "def test_02_production_accepts_rtx_kg2_lookup(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5dce069a5bc98282e614e372c258b4e1cb013d847b6b5151ce60010d95d44c57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_03_normalize_ivacaftor",
      "name": "test_03_normalize_ivacaftor",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1468-L1480",
      "signature": "def test_03_normalize_ivacaftor(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1cd7ae6f3350d1bcc144cf0a4e7258f09e1761e06aea75f2a289d16273ebc39",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_04_pinned_imatinib_abl1_one_hop",
      "name": "test_04_pinned_imatinib_abl1_one_hop",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1482-L1484",
      "signature": "def test_04_pinned_imatinib_abl1_one_hop(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8d23644bdcf10ea18e6b7d8828874d16590297faad03dcd627accf4c610ad25",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr",
      "name": "test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1486-L1488",
      "signature": "def test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7668fff715fa5cc103c1b01974096ddaa40955454e663b00161c8d019cf769f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_06_imatinib_gene_cml_contains_abl1",
      "name": "test_06_imatinib_gene_cml_contains_abl1",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1490-L1501",
      "signature": "def test_06_imatinib_gene_cml_contains_abl1(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9827e21b0de07d372e6bf3dffec7c60fef622fc55098b4a4c61ab51ab4e101ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_07_wrong_direction_does_not_return_abl1_path",
      "name": "test_07_wrong_direction_does_not_return_abl1_path",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1503-L1512",
      "signature": "def test_07_wrong_direction_does_not_return_abl1_path(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "368871b616b309c605f1d4ac0d5f77e2bb451692410df6f9165fa1f5edfc1ddb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_08_selected_provider_federation_is_bounded_and_provenanced",
      "name": "test_08_selected_provider_federation_is_bounded_and_provenanced",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L1514-L1527",
      "signature": "def test_08_selected_provider_federation_is_bounded_and_provenanced(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb2af3b0cec7404c9ef8b5f10f97e8f0caf3d72f5bda93d3612b662ba06972b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveSmokeTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#NormalizationTests",
      "name": "NormalizationTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L644-L705",
      "signature": "class NormalizationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb511a1d1f12fe308ba1321466e22b46d2a2f413b4dc3f7181b8ff290cf925a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_curie_input_does_not_require_normalization_confirmation",
      "name": "test_curie_input_does_not_require_normalization_confirmation",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L682-L693",
      "signature": "def test_curie_input_does_not_require_normalization_confirmation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c614a7f8210877b22fc46daa2bcdfca0b3e92aa074ecc381cb77074f77e4fe7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_nested_normalization_match_and_mismatch",
      "name": "test_nested_normalization_match_and_mismatch",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L645-L680",
      "signature": "def test_nested_normalization_match_and_mismatch(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "485e125d6ac2a46ebd5dd78fc08a7747660da4ca0f7cbb67ea98c0c2cbe91134",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_no_usable_normalization",
      "name": "test_no_usable_normalization",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L695-L705",
      "signature": "def test_no_usable_normalization(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f1a7f1285da28a7782345076f9189ddac043aae030b3b39d14ac2af88f86474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalizationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#normalize_args",
      "name": "normalize_args",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L124-L136",
      "signature": "def normalize_args(output_dir: Path, **overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc604075529ac61b7f14446eb65000b73748924fbfdd950d5a7f46c41dcd79b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#one_hop_args",
      "name": "one_hop_args",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L102-L121",
      "signature": "def one_hop_args(output_dir: Path, **overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "67adf7c36c1e584dc7c293e2e9dbf2b1a368b58ebc0a9361a2c0084dadcdc6aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "name": "one_hop_body",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L50-L66",
      "signature": "def one_hop_body(**overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "302c1812d8ea53a44c21935adc9bd725333f59e35bc85da85c26c6938a4cab3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "name": "OpenApiAndTransportTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L441-L641",
      "signature": "class OpenApiAndTransportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc85681c3082682de11b787bbb6fcb5b7765bb4aca62848d371c16266ac5382b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_headers_timeout_and_http_date_retry_after",
      "name": "test_get_headers_timeout_and_http_date_retry_after",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L509-L534",
      "signature": "def test_get_headers_timeout_and_http_date_retry_after(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4543442b29024fd1975289467ceb670d4ec021138b7330e842b53a062a9a59c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_headers_timeout_and_http_date_retry_after.opened",
      "name": "opened",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L512-L515",
      "signature": "def opened(request, timeout)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf9915673bafd51687226298e69f7db80927c778df7a2c3f87f550c0296f4c47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_retries_one_retryable_status",
      "name": "test_get_retries_one_retryable_status",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L494-L507",
      "signature": "def test_get_retries_one_retryable_status(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1c42b7860fcd7f8bc574f4bd5d2b381e5f2fa23928439e7fcb151969a002281",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_retries_timeout_but_not_other_transport",
      "name": "test_get_retries_timeout_but_not_other_transport",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L564-L578",
      "signature": "def test_get_retries_timeout_but_not_other_transport(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40566d75101a99b15dc91d61810cf607eed89c97f6fbf36a696862dc56f93cbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_known_version_skew_warns_and_unknown_override_warns",
      "name": "test_known_version_skew_warns_and_unknown_override_warns",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L474-L492",
      "signature": "def test_known_version_skew_warns_and_unknown_override_warns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38d127c5dc4e414dabaf5c923baacd3fafa37d488dddc7ab7028eb72b277b0a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_minimal_openapi_parses",
      "name": "test_minimal_openapi_parses",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L442-L451",
      "signature": "def test_minimal_openapi_parses(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "43b9b6e1627d64cec5dede81b83bcb5128c4926623ca7648b47c7942f3f42106",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_openapi_title_path_and_version_failures",
      "name": "test_openapi_title_path_and_version_failures",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L453-L472",
      "signature": "def test_openapi_title_path_and_version_failures(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4329053f975a0de80abbb50c5c7417848f090de4183857da6ba3feaa0262b614",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_oversized_success_and_http_error_preserve_exit_and_attempts",
      "name": "test_oversized_success_and_http_error_preserve_exit_and_attempts",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L600-L621",
      "signature": "def test_oversized_success_and_http_error_preserve_exit_and_attempts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13136a1462e1cfb6f7dd0f29085c328d14a471379a3cae0bb4458adfadabf0ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_post_never_retries_and_uses_identity_encoding",
      "name": "test_post_never_retries_and_uses_identity_encoding",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L580-L593",
      "signature": "def test_post_never_retries_and_uses_identity_encoding(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f164f5e8c645e694d355d253966d624128110a65f25bcc08f55098ab292df07d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_post_never_retries_and_uses_identity_encoding.fail",
      "name": "fail",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L583-L585",
      "signature": "def fail(request, timeout)",
      "exported": true,
      "origin": "ast",
      "body_hash": "78dc55ac4a6532ddbde5cf4b40cbf4067d679d2888ee21ab9a3c3ff199aa7f33",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_query_response_version_policy",
      "name": "test_query_response_version_policy",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L627-L641",
      "signature": "def test_query_response_version_policy(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6090938cc20b0c8efaaf9ae00df2c3c9821e82b76ac7dfeafefc45c92ed1142f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_redirects_are_https_and_same_origin_only",
      "name": "test_redirects_are_https_and_same_origin_only",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L536-L562",
      "signature": "def test_redirects_are_https_and_same_origin_only(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca9acd910e14bdd0a3d1b0fe6b11c0ba71bbd27889776a7c877e8478efc318df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_response_byte_limit",
      "name": "test_response_byte_limit",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L595-L598",
      "signature": "def test_response_byte_limit(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "69e15c9649181a6bcab86756c5914aed66f91b6db1c655d4bb59099642237f46",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_retry_after_is_capped_and_invalid_defaults",
      "name": "test_retry_after_is_capped_and_invalid_defaults",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L623-L625",
      "signature": "def test_retry_after_is_capped_and_invalid_defaults(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7cabeea5837d9a602118414be0d5ed8de5d175e770dce0b58807f06c38c4229",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenApiAndTransportTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RenderingTests",
      "name": "RenderingTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L915-L968",
      "signature": "class RenderingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04a436c5ba74692a73e265b3a887c0284aab7f5c387e94c7a974747e1e73b03b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RenderingTests.test_all_remote_scalar_fields_are_terminal_safe",
      "name": "test_all_remote_scalar_fields_are_terminal_safe",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L945-L968",
      "signature": "def test_all_remote_scalar_fields_are_terminal_safe(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "16d7e740cdef48e8a4db442cd95e2f6a648973515cb50b360afda8622a2d69a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderingTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RenderingTests.test_display_text_removes_controls_and_caps_length",
      "name": "test_display_text_removes_controls_and_caps_length",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L940-L943",
      "signature": "def test_display_text_removes_controls_and_caps_length(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66c237a35734096709f713fbea5e01fb8637ddd7e436eef25e45b8091afb4e31",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderingTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RenderingTests.test_text_is_cautious_bounded_and_points_to_raw_artifacts",
      "name": "test_text_is_cautious_bounded_and_points_to_raw_artifacts",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L916-L938",
      "signature": "def test_text_is_cautious_bounded_and_points_to_raw_artifacts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed77d45f69ba54ec56c4ec8c456417a538b014ddaee7c196d870e85946aaf1ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderingTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "name": "RequestBuilderTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L294-L438",
      "signature": "class RequestBuilderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fa707c9d04c1c0453fdff77b26d605e0b28de32cad5bb3ab12d2f6df5f3dd2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_deterministic_non_ascii_serialization",
      "name": "test_deterministic_non_ascii_serialization",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L358-L364",
      "signature": "def test_deterministic_non_ascii_serialization(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "98eabcf90b44644bf60cc634176bc6e7d9c38ce9098e5d261e2f899063346398",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_empty_qualifiers_are_omitted",
      "name": "test_empty_qualifiers_are_omitted",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L308-L310",
      "signature": "def test_empty_qualifiers_are_omitted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd9b16299451c586c9f6dcb6e1ccd208d488ed7f8f3377b5d015521c0edf3d8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_federation_uses_one_list_valued_kp",
      "name": "test_federation_uses_one_list_valued_kp",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L341-L349",
      "signature": "def test_federation_uses_one_list_valued_kp(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc978421803e043bc506009200b81a8109d1729fdea0cec10458a6cdb6a632de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_fixed_actions_exclude_banned_workflows",
      "name": "test_fixed_actions_exclude_banned_workflows",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L351-L356",
      "signature": "def test_fixed_actions_exclude_banned_workflows(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4827e97618c5c4e9d4ce84b2af944012da88dcad2384386ffa55545a5b2e5ca3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_one_hop_exact_shape_and_and_qualifiers",
      "name": "test_one_hop_exact_shape_and_and_qualifiers",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L295-L306",
      "signature": "def test_one_hop_exact_shape_and_and_qualifiers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "189d83611bc5480d985e5e614fecd7b27caf46ebec0225fe45b1211bffc596c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_saved_request_validator_rejects_escape_hatches",
      "name": "test_saved_request_validator_rejects_escape_hatches",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L373-L438",
      "signature": "def test_saved_request_validator_rejects_escape_hatches(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f26901e84229edafa83b7686f10665c987ee36412a7169300b88b177d2ca3d5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_strict_json_rejects_nonfinite_numbers",
      "name": "test_strict_json_rejects_nonfinite_numbers",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L366-L371",
      "signature": "def test_strict_json_rejects_nonfinite_numbers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de9a9be6f15c088b694da0fcb6ed9dc053f517631aca22fe0040ae7530b3c6fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_two_hop_right_and_left_first",
      "name": "test_two_hop_right_and_left_first",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L312-L339",
      "signature": "def test_two_hop_right_and_left_first(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "81c2c8ff14acdf77b538fd136803b9cac3c225cec0bd181d733f05d58bae6230",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequestBuilderTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "name": "ResponseParserTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L708-L912",
      "signature": "class ResponseParserTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27ed0986f674305508676e35aa5b00086ed1df3a7b4d7914c57961bc3041494b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "name": "parse_fixture",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L709-L714",
      "signature": "def parse_fixture(self, name, *, contract=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3e53bd6b8cd9c778939a8a4babff8c675269092242f93bba9724afcb2749d9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_explicit_pruning_confirms_truncation",
      "name": "test_explicit_pruning_confirms_truncation",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L857-L866",
      "signature": "def test_explicit_pruning_confirms_truncation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "22f84e2886401037c84cfaa996dbb2766dc635839124c6f5964105c120cc01de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_informational_timeout_and_prune_configuration_do_not_mark_partial",
      "name": "test_informational_timeout_and_prune_configuration_do_not_mark_partial",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L868-L886",
      "signature": "def test_informational_timeout_and_prune_configuration_do_not_mark_partial(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9a1507aab0152488a0362773686080000c9505ebd9f7bddc4d271a2bc577618",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_malformed_message_graph_and_binding_fail",
      "name": "test_malformed_message_graph_and_binding_fail",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L888-L912",
      "signature": "def test_malformed_message_graph_and_binding_fail(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf5bcd35572a17984b013c9405ff7d116556fb842848198d3357465526e028da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_missing_publications_and_auxiliary_graph",
      "name": "test_missing_publications_and_auxiliary_graph",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L798-L820",
      "signature": "def test_missing_publications_and_auxiliary_graph(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "59bb68ef9fce9172b6d8d61b6ec3769e5b740a17d4ee43f0f6018ef6e13a394d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_one_hop_bindings_multiple_analyses_and_provenance",
      "name": "test_one_hop_bindings_multiple_analyses_and_provenance",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L716-L764",
      "signature": "def test_one_hop_bindings_multiple_analyses_and_provenance(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed07c806607c0004310b2af37a8adbadcd95a527cd76641693388fa5ea386be9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_partial_federation_is_retained",
      "name": "test_partial_federation_is_retained",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L829-L841",
      "signature": "def test_partial_federation_is_retained(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0c2b66ffce90227239635312cb25744518ebe767345dd3e2628b7fc082b39bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_publications_are_deduplicated_within_each_edge",
      "name": "test_publications_are_deduplicated_within_each_edge",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L766-L779",
      "signature": "def test_publications_are_deduplicated_within_each_edge(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1482bee3f432d2abb34d4eb95b88b139955acab7733fa4630128bff3d58d0ab1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_reversed_edge_is_flagged_and_not_rewritten",
      "name": "test_reversed_edge_is_flagged_and_not_rewritten",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L791-L796",
      "signature": "def test_reversed_edge_is_flagged_and_not_rewritten(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bcd10f73879d47a20ee0695655bb2f27ad75b5fbc52937062862b15b050c1c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_truncation_states",
      "name": "test_truncation_states",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L843-L855",
      "signature": "def test_truncation_states(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c884b7665cb96e0d4778b1f8390d0b1f90fc638dbf51c75ee8efedfcb7ad4c7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_two_hop_preserves_refined_predicate_and_support_graph",
      "name": "test_two_hop_preserves_refined_predicate_and_support_graph",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L781-L789",
      "signature": "def test_two_hop_preserves_refined_predicate_and_support_graph(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6085c8bec9597523eeeb6eae6e1e5d491bff804e794ca094c0fed4ee28a37bb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_zero_results_are_valid",
      "name": "test_zero_results_are_valid",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L822-L827",
      "signature": "def test_zero_results_are_valid(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "96400a231cb17f8652abaa12151b77f35b3abaf83ca85d4b2c61a06ff02f936a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResponseParserTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#service_info",
      "name": "service_info",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L92-L99",
      "signature": "def service_info(warnings=())",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0a4b0f9e5c7bdabf766139232b961a74cac112a2fc56c2e3b3b96eab000ec98",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "name": "two_hop_body",
      "kind": "function",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L69-L89",
      "signature": "def two_hop_body(**overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "046955cb143d602ababaa8212feac6c4063d34c55245f51df50becde5c52275c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "name": "ValidationTests",
      "kind": "class",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L161-L291",
      "signature": "class ValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "68c1ea7bcf4fc30746546b5117064787d15932eeeaf66f4898aa434919549b2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_base_url_policy",
      "name": "test_base_url_policy",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L221-L240",
      "signature": "def test_base_url_policy(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7197dc6abd7c6f2c9564b3d9c7a8c17dc03c606f7a63936a68a3dcc0bfc159f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_biolink_and_provider_validation",
      "name": "test_biolink_and_provider_validation",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L168-L176",
      "signature": "def test_biolink_and_provider_validation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ddfda0698344e2e446a39453efb67660359d9c62614826e60384b9495c06974",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_curie_validation",
      "name": "test_curie_validation",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L162-L166",
      "signature": "def test_curie_validation(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3afc2558317b3bbc35867b3fc38691f638da4cc8d9afe14953e088e9d0b61f64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_mode_provider_and_result_caps",
      "name": "test_mode_provider_and_result_caps",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L198-L215",
      "signature": "def test_mode_provider_and_result_caps(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe18a266b6009d698056404b6623499fa446a5543c690048e4805dbb83c735bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_one_hop_requires_a_pinned_endpoint",
      "name": "test_one_hop_requires_a_pinned_endpoint",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L217-L219",
      "signature": "def test_one_hop_requires_a_pinned_endpoint(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de9207408b73618ef83623896a3b71cac8be768b370727b2b0a8b53c402c9288",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_parser_exposes_no_arbitrary_or_batch_query_surface",
      "name": "test_parser_exposes_no_arbitrary_or_batch_query_surface",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L265-L291",
      "signature": "def test_parser_exposes_no_arbitrary_or_batch_query_surface(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24147f11baef307a9e5d0c7386067be6b414c5361ab116ad5f472de304922fd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_qualifier_limits_and_duplicate_types",
      "name": "test_qualifier_limits_and_duplicate_types",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L178-L196",
      "signature": "def test_qualifier_limits_and_duplicate_types(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6405a670fb0cafee4c24ba66f14a0d9deed6219b1f26f2e1052482ee77e03830",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/ncats-arax/test_scripts.py#ValidationTests.test_repeated_endpoint_flag_is_rejected",
      "name": "test_repeated_endpoint_flag_is_rejected",
      "kind": "method",
      "path": "tests/ncats-arax/test_scripts.py",
      "span": "L242-L263",
      "signature": "def test_repeated_endpoint_flag_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d89fdeb200fa19f77cef2686c78bb017cccbe3efad476bb21fc90471c9d4a28d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L1-L373",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "63c1425d64169b8caa3f83d7608780709edce2709310fbbbafa8dbefaa12d945",
      "chars": 13522,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests",
      "name": "DependencyFreeWorkflowTests",
      "kind": "class",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L184-L325",
      "signature": "class DependencyFreeWorkflowTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d31ad03f347d155434cebd73923a27e37d1729a179df570a95aba76dc4321a92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_epoch_planner_reports_sample_exact_boundaries",
      "name": "test_epoch_planner_reports_sample_exact_boundaries",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L246-L270",
      "signature": "def test_epoch_planner_reports_sample_exact_boundaries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ff26dd857ace8c85b0fba7dd79c193e7408c17beaab84fe7bf30b9c858b6418",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeWorkflowTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_multimodal_validator_detects_resampling_need",
      "name": "test_multimodal_validator_detects_resampling_need",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L272-L325",
      "signature": "def test_multimodal_validator_detects_resampling_need(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "af1776a3c5fc6ee0e9806c5a77506690c4b9ad2d7b2927cab7251284f0b90aed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeWorkflowTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_synthetic_generation_is_deterministic_and_inspectable",
      "name": "test_synthetic_generation_is_deterministic_and_inspectable",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L185-L244",
      "signature": "def test_synthetic_generation_is_deterministic_and_inspectable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "efa88ce68783d80cbef050113a335fc3c39273e7342271e31eb60fdd60f2349b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeWorkflowTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests",
      "name": "PinnedNeuroKitSmokeTests",
      "kind": "class",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L329-L368",
      "signature": "class PinnedNeuroKitSmokeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9ac04293cbfc5c69e0d9fdc0a2284a054c39cd94ce29bbb4e73853c8e10fe9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests.test_pinned_synthetic_eda_pipeline",
      "name": "test_pinned_synthetic_eda_pipeline",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L353-L368",
      "signature": "def test_pinned_synthetic_eda_pipeline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b74f6395281641efbaa230b5bc36762f5b22c4745a3e6c8ab0e1bde0163ffd5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedNeuroKitSmokeTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests.test_pinned_version_and_synthetic_ecg_pipeline",
      "name": "test_pinned_version_and_synthetic_ecg_pipeline",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L330-L351",
      "signature": "def test_pinned_version_and_synthetic_ecg_pipeline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53642e930a135f9e91cf7d2c9e0e1ed95e862fdb4222a063f0dd6ec3858b8f67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedNeuroKitSmokeTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L33-L52",
      "signature": "def run_script( name: str, *arguments: str, cwd: Path | None = None, without_site_packages: bool = True, ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4b412bbcb92e02b2dd2b3e8c71d56a0cb59a0ea6de26814d56f114916e16d5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "name": "SafetyAndManifestTests",
      "kind": "class",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L55-L181",
      "signature": "class SafetyAndManifestTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f18aa56754ec5a848ce8f9be49850cfb2c93960be3dd587c259145a2629524f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_build_parsers_are_dependency_free",
      "name": "test_build_parsers_are_dependency_free",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L109-L120",
      "signature": "def test_build_parsers_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cf36fa95de5a40534dac86d3b6394b39ae13196282786021b022407eee3baf8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndManifestTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_every_cli_help_works_without_site_packages",
      "name": "test_every_cli_help_works_without_site_packages",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L99-L107",
      "signature": "def test_every_cli_help_works_without_site_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7efc538710ec2909786643a4a44b804241cf04c656a9f450eeb3b9d9f30adc01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndManifestTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_scripts_parse_without_dynamic_execution_or_network_imports",
      "name": "test_scripts_parse_without_dynamic_execution_or_network_imports",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L56-L97",
      "signature": "def test_scripts_parse_without_dynamic_execution_or_network_imports(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "82d0e3aaf0b4ecaa0b321a41399d4224c2de56aa1d68e5369ec0ea27badb6552",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndManifestTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_skill_version_license_references_and_progressive_disclosure",
      "name": "test_skill_version_license_references_and_progressive_disclosure",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L155-L181",
      "signature": "def test_skill_version_license_references_and_progressive_disclosure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "65dcb2ba6e05dde014c82c0567f9cd813f9e9295671ff379ce28c1b88dae8091",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndManifestTests"
    },
    {
      "id": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_strict_local_io_rejects_url_symlink_duplicates_and_nan",
      "name": "test_strict_local_io_rejects_url_symlink_duplicates_and_nan",
      "kind": "method",
      "path": "tests/neurokit2/test_scripts.py",
      "span": "L122-L153",
      "signature": "def test_strict_local_io_rejects_url_symlink_duplicates_and_nan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d748610f3e0f5b481f195e7b2cf593d1a41cac7ac6646b4b17fe47b8e01e6881",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyAndManifestTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L1-L317",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "946d0a5e9422d8840f3ee5f53588ad087836f574389a5aa28bc37ec22daba427",
      "chars": 15401,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "name": "CurationCriteriaTests",
      "kind": "class",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L161-L232",
      "signature": "class CurationCriteriaTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "43fcab52552f62655d849c5be7a8a7ab454ee46aa3a59f55739bd41abd6ee2cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_every_preset_carries_the_same_criteria",
      "name": "test_every_preset_carries_the_same_criteria",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L167-L174",
      "signature": "def test_every_preset_carries_the_same_criteria(self) -> None: # The curation loop reads each threshold with `criteria.get(name)`, so a # renamed or missing key silently disables that criterion instead of # failing loudly.",
      "exported": true,
      "origin": "ast",
      "body_hash": "77bb3dcfee15e04779522d6f84b8c0ad3c0531fd84f53ea134e0649cd55051e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_no_threshold_is_zero_or_none",
      "name": "test_no_threshold_is_zero_or_none",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L176-L183",
      "signature": "def test_no_threshold_is_zero_or_none(self) -> None: # Same truthiness trap: `if criteria.get('snr')` treats 0.0 and None as # \"no threshold set\", so a legitimate-looking 0 would be ignored.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa74d09cbfefad376da863e452df59c80613f2e8301004a1d6836be71e479ba7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_allen_thresholds_are_the_documented_visual_coding_ones",
      "name": "test_the_allen_thresholds_are_the_documented_visual_coding_ones",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L185-L189",
      "signature": "def test_the_allen_thresholds_are_the_documented_visual_coding_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "75272e5911da1aa952b50bfb8f9988d77aa471b7e0b23f0766f3abb2439cd7f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_ibl_thresholds_are_the_documented_reproducible_ephys_ones",
      "name": "test_the_ibl_thresholds_are_the_documented_reproducible_ephys_ones",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L191-L195",
      "signature": "def test_the_ibl_thresholds_are_the_documented_reproducible_ephys_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bf322a0e5ebb2f587c2ba569a344762cff09931edaa26e169633b4f71167fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_presets_are_ordered_from_permissive_to_strict",
      "name": "test_the_presets_are_ordered_from_permissive_to_strict",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L197-L215",
      "signature": "def test_the_presets_are_ordered_from_permissive_to_strict(self) -> None: # snr and presence_ratio are minima, so stricter means larger; the other # two are maxima, so stricter means smaller. Swapping two presets' names # -- the kind of edit that looks harmless -- breaks this ordering.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f96c7165855da64504219897d4c652a1a6b7cd41c102caab512e0390673d734",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_presets_are_the_three_the_cli_offers",
      "name": "test_the_presets_are_the_three_the_cli_offers",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L164-L165",
      "signature": "def test_the_presets_are_the_three_the_cli_offers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c819d3fb3ffb4c0c75bb07fce2a3574f3b7d77edccd8ea6ad60c89e92e2084a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_two_scripts_agree_on_which_standard_is_stricter",
      "name": "test_the_two_scripts_agree_on_which_standard_is_stricter",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L217-L232",
      "signature": "def test_the_two_scripts_agree_on_which_standard_is_stricter(self) -> None: # neuropixels_pipeline.curate_units hardcodes its refractory thresholds # rather than reading this table, so they can drift apart. Prove the # relationship holds in both: a unit Allen calls good, IBL calls mua.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1553aeff64b3e9fe8c8147bbf7c91403cd409216ef471c8e0da6d0077b2d626",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationCriteriaTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "name": "CurationLabelTests",
      "kind": "class",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L68-L158",
      "signature": "class CurationLabelTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd10850569708afc5004cb607dbd3baf4546896d0976682ee574d13d480c9fa1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "name": "label",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L71-L72",
      "signature": "def label(self, method: str, **overrides) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "42ca3aeeafa108aa73f16812d0466e912ea1ae6d563e2d67706ba3f6f84934cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_allen_tolerates_refractory_violations_that_ibl_calls_multi_unit",
      "name": "test_allen_tolerates_refractory_violations_that_ibl_calls_multi_unit",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L94-L98",
      "signature": "def test_allen_tolerates_refractory_violations_that_ibl_calls_multi_unit(self) -> None: # This is the documented difference between the two standards: Allen # accepts isi_violations_ratio < 0.5, IBL only < 0.1.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b048b0d8b96c0393959991dd928dc958fca131d390d5f41f1cf05618435103c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_amplitude_clipping_downgrades_without_calling_the_unit_multi_unit",
      "name": "test_amplitude_clipping_downgrades_without_calling_the_unit_multi_unit",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L113-L117",
      "signature": "def test_amplitude_clipping_downgrades_without_calling_the_unit_multi_unit(self) -> None: # A truncated amplitude distribution means missed spikes, which is a # completeness problem, not contamination -- so it must not be labelled # 'mua' when the refractory period is clean.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba35a868650efdbce17a2b53529f0ea01e1d8febe5ea61d07b4bb531d5fb2b90",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_empty_metrics_table_yields_no_labels",
      "name": "test_an_empty_metrics_table_yields_no_labels",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L156-L158",
      "signature": "def test_an_empty_metrics_table_yields_no_labels(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a600e4e31855e20eb1dfe5540f67f64aac2c10b67713c772a596bda00d20d953",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_exemplary_unit_is_good_under_every_preset",
      "name": "test_an_exemplary_unit_is_good_under_every_preset",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L74-L79",
      "signature": "def test_an_exemplary_unit_is_good_under_every_preset(self) -> None: # The permissive direction: a validator that rejected this unit would # reject every real single unit too.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ee5dccac543cdce85a4c15dd6e5386b45ebdccabce254366328da450efce975",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_unknown_method_raises_instead_of_dropping_units",
      "name": "test_an_unknown_method_raises_instead_of_dropping_units",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L148-L154",
      "signature": "def test_an_unknown_method_raises_instead_of_dropping_units(self) -> None: # Silently returning a partial mapping would make export_results() # report zero good units from a perfectly good sorting.",
      "exported": true,
      "origin": "ast",
      "body_hash": "67d72265230f7887acc6fe36ffb15eaad5f349728da61db6bfbd8ecfc1c433a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_every_unit_gets_exactly_one_label",
      "name": "test_every_unit_gets_exactly_one_label",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L133-L146",
      "signature": "def test_every_unit_gets_exactly_one_label(self) -> None: # A unit missing from the returned mapping disappears from the export # rather than being reported as rejected.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d3772d0493121eb5e23892a89345c80da25b449c188c85f59dd50ca9941b91a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_ibl_additionally_requires_a_minimum_firing_rate",
      "name": "test_ibl_additionally_requires_a_minimum_firing_rate",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L119-L124",
      "signature": "def test_ibl_additionally_requires_a_minimum_firing_rate(self) -> None: # A unit that fires a handful of times cannot support a rate estimate.",
      "exported": true,
      "origin": "ast",
      "body_hash": "30fafb7dddb2560608e49d14f2c7e34cffb8608683ac47a8af31bc8c22300075",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_low_snr_is_noise_whatever_else_the_unit_scores",
      "name": "test_low_snr_is_noise_whatever_else_the_unit_scores",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L81-L87",
      "signature": "def test_low_snr_is_noise_whatever_else_the_unit_scores(self) -> None: # The noise gate runs before the presets and short-circuits, so a unit # with perfect refractory behaviour and no amplitude clipping is still # noise if there is no signal to speak of.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a57375db8c7d6b52dcd832f1345da0697ebb48ed8a21ecfdc581ba2b3cf679d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_presence_ratio_is_a_strict_minimum",
      "name": "test_presence_ratio_is_a_strict_minimum",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L107-L111",
      "signature": "def test_presence_ratio_is_a_strict_minimum(self) -> None: # `presence_ratio > 0.9`: a unit present for exactly 90% of the # recording is not automatically good.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6c13228f6763e00ed910d2fd231113d848d68f12282c64f5855a22905c164c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_strict_demands_high_snr_and_a_nearly_clean_refractory_period",
      "name": "test_strict_demands_high_snr_and_a_nearly_clean_refractory_period",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L126-L131",
      "signature": "def test_strict_demands_high_snr_and_a_nearly_clean_refractory_period(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bae894899fd6a8ef7272972fc406cc747cd90ca76a2153134466cde8fd253c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_the_allen_refractory_boundary_is_strict_on_both_sides",
      "name": "test_the_allen_refractory_boundary_is_strict_on_both_sides",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L100-L105",
      "signature": "def test_the_allen_refractory_boundary_is_strict_on_both_sides(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5651d659757917dee74d00eb6fcb669cd942005286e4e92f92ea8abf819b7ed9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_the_noise_threshold_excludes_its_own_boundary",
      "name": "test_the_noise_threshold_excludes_its_own_boundary",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L89-L92",
      "signature": "def test_the_noise_threshold_excludes_its_own_boundary(self) -> None: # `row['snr'] < 1.5`, so exactly 1.5 is not noise.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bb937e99e6b633f48da45888d6d460c1844cae40483123fff3213f802def436",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurationLabelTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#metrics_table",
      "name": "metrics_table",
      "kind": "function",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L62-L65",
      "signature": "def metrics_table(*units: dict) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ce1b9adbbbbe38afe1d3d453e91e90c0ceead5565289405dcc441f127e26e60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests",
      "name": "SorterDefaultTests",
      "kind": "class",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L235-L264",
      "signature": "class SorterDefaultTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "81264aa0d1116aa5494f3875e955231820b690cb539e8c9825b987d51ee15acb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_an_unlisted_sorter_gets_no_parameters_rather_than_a_wrong_set",
      "name": "test_an_unlisted_sorter_gets_no_parameters_rather_than_a_wrong_set",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L261-L264",
      "signature": "def test_an_unlisted_sorter_gets_no_parameters_rather_than_a_wrong_set(self) -> None: # `SORTER_DEFAULTS.get(sorter, {})` -- a sorter with no entry must fall # back to that sorter's own upstream defaults, never to another one's.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6805bb924ee751bfd0264f2fad64a738dae4b23df50db69d6bed34f3e36172e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SorterDefaultTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_every_sorter_that_can_preprocess_has_it_switched_off",
      "name": "test_every_sorter_that_can_preprocess_has_it_switched_off",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L242-L250",
      "signature": "def test_every_sorter_that_can_preprocess_has_it_switched_off(self) -> None: # run_sorting.py consumes an already filtered, referenced, bad-channel # removed recording. Letting a sorter filter or re-reference it a second # time distorts the waveforms it then tries to cluster.",
      "exported": true,
      "origin": "ast",
      "body_hash": "12ce7ed345f455547656fb77c85cf118d553504ef10c18284bec48852360cca3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SorterDefaultTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_the_kilosort4_thresholds_are_positive_spike_amplitudes",
      "name": "test_the_kilosort4_thresholds_are_positive_spike_amplitudes",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L252-L259",
      "signature": "def test_the_kilosort4_thresholds_are_positive_spike_amplitudes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1baecea0514ce0d69b9770dddabfb4ac1d3d00e70037749a6a2049a9e5f1a398",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SorterDefaultTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_the_presets_match_the_sorters_the_cli_offers",
      "name": "test_the_presets_match_the_sorters_the_cli_offers",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L236-L240",
      "signature": "def test_the_presets_match_the_sorters_the_cli_offers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3a61866d4679952388a35cbf977329481e624bd0e3fd81c5c2be7aac7934098",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SorterDefaultTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "name": "TracePlotTests",
      "kind": "class",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L267-L312",
      "signature": "class TracePlotTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "431730e88421097ee793fba5358e775c9f00355e4af1e3f3c31712eb972caee9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.drawn_lines",
      "name": "drawn_lines",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L287-L294",
      "signature": "def drawn_lines(self, channels: int) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "49912c0224d2e4b9dcfa8e2ad2065709d48ef0cd3467542f3a99b9bf54732901",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.recording",
      "name": "recording",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L282-L285",
      "signature": "def recording(self, channels: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1ebde1155e8f4f86379e86f98c70ff273d71f464f906004c4f261986caa3643",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L276-L280",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d9c23a5941ff0cd6bfd123bcb8373b2014e89c7029cb632d2e02e86131ed308",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L271-L274",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c1f8a4dbfc4b9ad5a0b1cecd04531075ed432469d95639efa03c91facb363f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_a_narrow_probe_draws_every_channel_it_has",
      "name": "test_a_narrow_probe_draws_every_channel_it_has",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L299-L302",
      "signature": "def test_a_narrow_probe_draws_every_channel_it_has(self) -> None: # min(20, n) -- with fewer than 20 channels nothing is dropped, and the # linspace must not produce duplicate indices.",
      "exported": true,
      "origin": "ast",
      "body_hash": "95c09a3c1e5e793f8fef5a06cdd54e13f746ed9737127ff310106dc66bea3288",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_a_wide_probe_is_subsampled_to_twenty_traces",
      "name": "test_a_wide_probe_is_subsampled_to_twenty_traces",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L296-L297",
      "signature": "def test_a_wide_probe_is_subsampled_to_twenty_traces(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8212dc80d73353ab1fb9c8229c1569714e58e15b2e3c421cb0d937b8a083bf0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_the_time_axis_covers_the_requested_duration",
      "name": "test_the_time_axis_covers_the_requested_duration",
      "kind": "method",
      "path": "tests/neuropixels-analysis/test_scripts.py",
      "span": "L304-L312",
      "signature": "def test_the_time_axis_covers_the_requested_duration(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef84d9e8347989d4ea057e93ab16ba21a4eac4c5e5a4e6efa79c192dd0c31ac1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TracePlotTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L1-L349",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "132714dff13145b2a347d0405914bdc204431cd3cb892efcff75a40629ad2fad",
      "chars": 10562,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#BoundTests",
      "name": "BoundTests",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L221-L235",
      "signature": "class BoundTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8647c0bf47c9057faa80e8703e77d96ce5ff2a4f735f78d4d5a6dd14fe062ee2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#BoundTests.test_json_safe_bounds_nested_values",
      "name": "test_json_safe_bounds_nested_values",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L227-L235",
      "signature": "def test_json_safe_bounds_nested_values(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "482ac43978efae22687e3798220f303129dc5b82241b4e5a74ee4025c8465fa6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#BoundTests.test_take_bounded_detects_extra_item",
      "name": "test_take_bounded_detects_extra_item",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L222-L225",
      "signature": "def test_take_bounded_detects_extra_item(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "034ee9d39a369254a58f30df91c2b2fd14fe31c37d733c83c6d7918f417e4574",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#ConfigTests",
      "name": "ConfigTests",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L141-L185",
      "signature": "class ConfigTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fa58d93cebaafa2c8088e1583ca2e1937d59696e348cd3b9407b7c12bb3e629",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#ConfigTests.test_defaults_and_no_auth",
      "name": "test_defaults_and_no_auth",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L142-L149",
      "signature": "def test_defaults_and_no_auth(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "61088460fc6f85e277722f10693f5b7288ad988b4efbaf3534a08357b4b02869",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#ConfigTests.test_partial_password_auth_is_rejected",
      "name": "test_partial_password_auth_is_rejected",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L170-L178",
      "signature": "def test_partial_password_auth_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c3b8c52a149e6d1164866de5913088a134adb21f145dcc1661a33b925febd41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#ConfigTests.test_session_key_takes_precedence_without_leaking",
      "name": "test_session_key_takes_precedence_without_leaking",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L151-L168",
      "signature": "def test_session_key_takes_precedence_without_leaking(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17754d6567f3c7d24c178a6f764a209a9c0e70f5917b45ced2c9ff56a972fb47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#ConfigTests.test_url_is_not_a_host",
      "name": "test_url_is_not_a_host",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L180-L185",
      "signature": "def test_url_is_not_a_host(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1074404960f028427caaed69487201bb590306512244057bec67d373edb33e19",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "name": "FakeAnnotation",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L118-L138",
      "signature": "class FakeAnnotation",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f38f493bd51981c7fd521856e3c2284e36f861723fad7d75b003b45e3270c9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L121-L122",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3582bd30bbef00740f06595a30548d3f3091184d3da4033c59ce13ecd68db6d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAnnotation"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation.getDetails",
      "name": "getDetails",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L130-L131",
      "signature": "def getDetails(self) -> FakeDetails",
      "exported": true,
      "origin": "ast",
      "body_hash": "939e8893c3187719de6b98b0292064e6a9c6d0c1947e1b3c3c5ed57dd9c9fa63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAnnotation"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation.getFile",
      "name": "getFile",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L137-L138",
      "signature": "def getFile(self) -> FakeFile",
      "exported": true,
      "origin": "ast",
      "body_hash": "071296eb3d2e983488620151fa1ddd2fa1b33c72e867f004b80ee79cccb1d971",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAnnotation"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation.getId",
      "name": "getId",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L124-L125",
      "signature": "def getId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "16d895b709480a084966763dfdafdc397cd863964f4cbe79304cab84d7af4053",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAnnotation"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation.getNs",
      "name": "getNs",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L127-L128",
      "signature": "def getNs(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "95b66a364289ee80d3110454acd467a618a06dacf023d300efac180b6ce36630",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAnnotation"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeAnnotation.getValue",
      "name": "getValue",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L133-L135",
      "signature": "def getValue(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "74e5b4f70b482c9c7fea0707fa9bb679c2ad3de000c5afa52dc1236fa07ad1e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeAnnotation"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeConnection",
      "name": "FakeConnection",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L92-L101",
      "signature": "class FakeConnection",
      "exported": true,
      "origin": "ast",
      "body_hash": "2948605350e61a47452f70e5343ca64b44058f4604670762fce648028b22fc97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeConnection.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L93-L95",
      "signature": "def __init__(self, count: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "960eccb20ec1a0f2f09cebe7c4d8d6cb6cf1f3b1f9864b0a0a34e65f90563dae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeConnection"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeConnection.getObjects",
      "name": "getObjects",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L97-L101",
      "signature": "def getObjects(self, object_type: str, opts: dict)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f3a9f06adc00de2714a36ab9d61b213c774493b8af9acc4261f6ced953bdfcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeConnection"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeDetails",
      "name": "FakeDetails",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L46-L55",
      "signature": "class FakeDetails",
      "exported": true,
      "origin": "ast",
      "body_hash": "51de65190eb3a65fbe312fa920ffa6a71fd2b0f3b8cc053ad22ac0e55d826b15",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeDetails.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L47-L49",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "592c9a80a33fa49dc8cf2590ff31f16188d6ae052eb9123cf3eb554ebe81bc64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeDetails"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeDetails.getGroup",
      "name": "getGroup",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L54-L55",
      "signature": "def getGroup(self) -> FakeParty",
      "exported": true,
      "origin": "ast",
      "body_hash": "55157c94e1321ce59a4e37c16036e44c050e2ed0290755649c4f0cf8b62b863b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeDetails"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeDetails.getOwner",
      "name": "getOwner",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L51-L52",
      "signature": "def getOwner(self) -> FakeParty",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc84cddac9c94db9f6330c95b62b81698d1a9b6a5c5baff5f7110e2aa13727ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeDetails"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeFile",
      "name": "FakeFile",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L104-L115",
      "signature": "class FakeFile",
      "exported": true,
      "origin": "ast",
      "body_hash": "12a7f89359fc38ddbc5648f435cf890232615c667a0a9864df7b7f06d6829cd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeFile.getId",
      "name": "getId",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L105-L106",
      "signature": "def getId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb144a6e80e5cf778bedb3b2b9cfb5180db2c95e4bc1ea6187b3cba875dc132c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeFile"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeFile.getMimetype",
      "name": "getMimetype",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L111-L112",
      "signature": "def getMimetype(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "336802ee46d0babe46d25ca409b681674747514d7344f1202d3f274f94370598",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeFile"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeFile.getName",
      "name": "getName",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L114-L115",
      "signature": "def getName(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c69b0bdc6efd5a1da6080f01431a2eb9cff11d5cf429f5a7168b5b549a694264",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeFile"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeFile.getSize",
      "name": "getSize",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L108-L109",
      "signature": "def getSize(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa24e92b8f6fe318a8553359760307ae8b31cb0078de6ef81a7b73ab81754f9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeFile"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage",
      "name": "FakeImage",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L58-L89",
      "signature": "class FakeImage",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4a04e067868d4dd3b70fab43ee23b61f6b164b33ffe8c4aaa5b217f43c9176b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L61-L62",
      "signature": "def __init__(self, identifier: int)",
      "exported": false,
      "origin": "ast",
      "body_hash": "99e7ce5b77f5dead1659d0e6f3a372ff911c2e6fcbc3d73dbba12a78efbafd04",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getDetails",
      "name": "getDetails",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L70-L71",
      "signature": "def getDetails(self) -> FakeDetails",
      "exported": true,
      "origin": "ast",
      "body_hash": "939e8893c3187719de6b98b0292064e6a9c6d0c1947e1b3c3c5ed57dd9c9fa63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getId",
      "name": "getId",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L64-L65",
      "signature": "def getId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f700d4eeb1e9fb96b0dc5f01a31d80dc953f335fee8cff17d8951f838c3ff15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getName",
      "name": "getName",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L67-L68",
      "signature": "def getName(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fc380ef3c5c2060b62232bfa9c23b5b65bccb115c2eaf0adc148f5d1df5f04b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getPixelsType",
      "name": "getPixelsType",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L88-L89",
      "signature": "def getPixelsType(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "d294d6d655a37ae292cba955040bdfaa9403c33f40d508f37082049ac6b0f1af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getSizeC",
      "name": "getSizeC",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L82-L83",
      "signature": "def getSizeC(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0ae4db207beb47da31f8b70579cdab6bf5dbe6b8c58b13e32a5903c734ef366",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getSizeT",
      "name": "getSizeT",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L85-L86",
      "signature": "def getSizeT(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ec80bc53db492d03d834fb6c67643166e3feed34d3f336505280db0a534ac12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getSizeX",
      "name": "getSizeX",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L73-L74",
      "signature": "def getSizeX(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ee32d14d12c2e72d4e389392e679cabd7e788b24c9c62a6c5b350de64e5ee1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getSizeY",
      "name": "getSizeY",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L76-L77",
      "signature": "def getSizeY(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bdef08df43d5d141e4489a2d11e7d57335fb86f177b1a9963dfc2fb14802129",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeImage.getSizeZ",
      "name": "getSizeZ",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L79-L80",
      "signature": "def getSizeZ(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8d05d2409063f27994d52f6bef1f331e3ba305e09669416606bf0c698c84fe5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeImage"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeParty",
      "name": "FakeParty",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L34-L43",
      "signature": "class FakeParty",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ee00c4a56a75b88ab4faccf2987b95d97ba62c1f779f87b3e9d7ec5e5e3e649",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeParty.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L35-L37",
      "signature": "def __init__(self, identifier: int, username: str = \"private-user\")",
      "exported": false,
      "origin": "ast",
      "body_hash": "2e300f961f6753817b9ac78881f26816f8677ed23adf024afb4d25719569b453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeParty"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeParty.getId",
      "name": "getId",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L39-L40",
      "signature": "def getId(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f700d4eeb1e9fb96b0dc5f01a31d80dc953f335fee8cff17d8951f838c3ff15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeParty"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#FakeParty.getOmeName",
      "name": "getOmeName",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L42-L43",
      "signature": "def getOmeName(self) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd0ebd6242714a318b5d15c567a2950eb48058cdb9daf97d7150082fd86bcbd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeParty"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#InventoryTests",
      "name": "InventoryTests",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L238-L260",
      "signature": "class InventoryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c11f5670c5e4d7b588939698b876a9888d62f1c4a04d3a1d0d86ad3f7b60c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#InventoryTests.test_inventory_pages_and_redacts_names",
      "name": "test_inventory_pages_and_redacts_names",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L239-L260",
      "signature": "def test_inventory_pages_and_redacts_names(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ad9840555672d7ccdd2031edaae88a5fec9fba2549ecd7de9f5463bcfa1fddb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InventoryTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#OutputTests",
      "name": "OutputTests",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L188-L218",
      "signature": "class OutputTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aecbb269b07ba62547f4aade22dd3174ed608f7b58c8f5a24654309d23526056",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#OutputTests.test_atomic_json_refuses_overwrite_and_uses_private_mode",
      "name": "test_atomic_json_refuses_overwrite_and_uses_private_mode",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L189-L205",
      "signature": "def test_atomic_json_refuses_overwrite_and_uses_private_mode(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15595d7b58247396600e52637198a04baabefb46c9f2e6ea17a9b4d85b745d8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#OutputTests.test_atomic_json_refuses_symlink",
      "name": "test_atomic_json_refuses_symlink",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L207-L218",
      "signature": "def test_atomic_json_refuses_symlink(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "30560c75e1643b58447d1785ab59d935861e080788bfb15fcef6a7d0d9fcb78a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#RedactionTests",
      "name": "RedactionTests",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L263-L277",
      "signature": "class RedactionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b3f48f5af80ab9375d77695d8a6770589567db51d4bff5e6ad37ba47d57c826",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#RedactionTests.test_annotation_value_and_filename_not_read_when_redacted",
      "name": "test_annotation_value_and_filename_not_read_when_redacted",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L264-L277",
      "signature": "def test_annotation_value_and_filename_not_read_when_redacted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91c674eac23b5db7c700bf61f5b6f9457c8ecf8fbc9405ade3a2b1555444c592",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedactionTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#TransferPlannerTests",
      "name": "TransferPlannerTests",
      "kind": "class",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L280-L339",
      "signature": "class TransferPlannerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9118a35600e133c6d64b3b2873bed33e35e957f6f1ab737a49f726e413be7e75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/omero-integration/test_scripts.py#TransferPlannerTests.test_export_plan_reports_collision",
      "name": "test_export_plan_reports_collision",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L309-L322",
      "signature": "def test_export_plan_reports_collision(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a84177ed204318bbd21ad2b972a238b942b0ec666e6cfde117f13dbfb7bc3b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TransferPlannerTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#TransferPlannerTests.test_import_plan_caps_multiple_top_level_files",
      "name": "test_import_plan_caps_multiple_top_level_files",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L324-L339",
      "signature": "def test_import_plan_caps_multiple_top_level_files(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3eec9478e6a361632f713c8f0ba6f9796987649d2e2332c951bb01fe85fd8f92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TransferPlannerTests"
    },
    {
      "id": "tests/omero-integration/test_scripts.py#TransferPlannerTests.test_import_plan_is_bounded_and_contains_no_credentials",
      "name": "test_import_plan_is_bounded_and_contains_no_credentials",
      "kind": "method",
      "path": "tests/omero-integration/test_scripts.py",
      "span": "L281-L307",
      "signature": "def test_import_plan_is_bounded_and_contains_no_credentials(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b187942b56e44cb42905f4ca535fab257dd93f1133a8f1f5b74f6c4ded72efe6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TransferPlannerTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1-L1312",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "40f69ad8b4afdf9343553d6d560ff005e7f0efd8b41a92ab31b5eb137f9754d0",
      "chars": 54894,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AbsentValueTests",
      "name": "AbsentValueTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L134-L153",
      "signature": "class AbsentValueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d603e2a4fe2241198c7642605ba5d4bb1b16a7dadae61ba9a1abeb9c1e6f1faa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AbsentValueTests.test_null_if_absent_keeps_zero_out_of_the_output",
      "name": "test_null_if_absent_keeps_zero_out_of_the_output",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L143-L147",
      "signature": "def test_null_if_absent_keeps_zero_out_of_the_output(self) -> None: # Emitting \"0\" as a paternal ID would invent a sample called 0.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d59dcd4f29cc6fb61c3e82848ce33c864617725c17a55b41cb7590610acbd0ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsentValueTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AbsentValueTests.test_null_if_empty_keeps_zero_because_a_family_may_be_named_zero",
      "name": "test_null_if_empty_keeps_zero_because_a_family_may_be_named_zero",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L149-L153",
      "signature": "def test_null_if_empty_keeps_zero_because_a_family_may_be_named_zero(self) -> None: # The Java original distinguishes the two helpers; only the pid/mid # fields use \"0\" as a sentinel.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7409731198570daf305c445dab024c32aa534a6b31fba47a5964e2ded6ff0d08",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsentValueTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AbsentValueTests.test_zero_and_empty_are_absent_but_an_identifier_is_present",
      "name": "test_zero_and_empty_are_absent_but_an_identifier_is_present",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L137-L141",
      "signature": "def test_zero_and_empty_are_absent_but_an_identifier_is_present(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cb689749fb534084d6087606c370491a0a09b8c265a970f978754bcaa9349f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsentValueTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "name": "AnnotationFilterTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L696-L774",
      "signature": "class AnnotationFilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a83819d8b43d490b8da23691c681367f6a2b3b9a8bf717fd6275ca09b475f4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_an_alphamissense_class_and_score_together_are_refused",
      "name": "test_an_alphamissense_class_and_score_together_are_refused",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L743-L753",
      "signature": "def test_an_alphamissense_class_and_score_together_are_refused(self) -> None: # The class is derived from the score, so combining them is a # contradiction argparse cannot express as one group.",
      "exported": true,
      "origin": "ast",
      "body_hash": "82d5bad0db74de7a0ba3b9c98a0d5d589bb72549859df082b43489c4f59026ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_an_unknown_vocabulary_term_is_rejected",
      "name": "test_an_unknown_vocabulary_term_is_rejected",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L719-L723",
      "signature": "def test_an_unknown_vocabulary_term_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a77e8fc616132054e03ad89add068a7376fb70586eac0a24bd9c3b68ed31d7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_boolean_flags_are_only_set_when_asked",
      "name": "test_boolean_flags_are_only_set_when_asked",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L733-L741",
      "signature": "def test_boolean_flags_are_only_set_when_asked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f28be246758c8923f8f7bc1c3659e4446a82eb99379c89dd57cd7f392992add6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_csv_terms_become_a_tuple_of_library_enums",
      "name": "test_csv_terms_become_a_tuple_of_library_enums",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L702-L709",
      "signature": "def test_csv_terms_become_a_tuple_of_library_enums(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8adc341207462bb9e8c4a22cbb8484b4c61d30961458959798394c1ff622401",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_either_alphamissense_selector_alone_is_accepted",
      "name": "test_either_alphamissense_selector_alone_is_accepted",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L755-L766",
      "signature": "def test_either_alphamissense_selector_alone_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "896b278ce50de936d143cd4b30293432d9d9bbfc265e57749b8eb4d1469091d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_length_bounds_are_not_annotation_filter_fields",
      "name": "test_length_bounds_are_not_annotation_filter_fields",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L768-L774",
      "signature": "def test_length_bounds_are_not_annotation_filter_fields(self) -> None: # They are client-method kwargs; putting them in the filter would raise.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6019ac61747e9a88dfafeece2715137edb2da072eb607d83ab37256913d06a2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_no_flags_means_no_filter_at_all",
      "name": "test_no_flags_means_no_filter_at_all",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L697-L700",
      "signature": "def test_no_flags_means_no_filter_at_all(self) -> None: # An empty AnnotationFilter is not the same as None; sending one would # change the query semantics for an unfiltered run.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce1797ae4a9baf92aa0e0f3d8d3deeae6bbce370b6c54c54d434189ed7186ece",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_numeric_thresholds_pass_through_including_zero",
      "name": "test_numeric_thresholds_pass_through_including_zero",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L725-L731",
      "signature": "def test_numeric_thresholds_pass_through_including_zero(self) -> None: # af_lt=0 is falsy; a truthiness test would drop it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e08aaee86cd57bc529eb9d0678d8073757023d3396004deec3af8c267805f88",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_whitespace_in_a_csv_term_list_is_tolerated",
      "name": "test_whitespace_in_a_csv_term_list_is_tolerated",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L711-L717",
      "signature": "def test_whitespace_in_a_csv_term_list_is_tolerated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cb48d777d1fbed54401683410a20ba32597060522d3d61b9738d5d238ad6a63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnnotationFilterTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "name": "ApiCommandTestCase",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L907-L925",
      "signature": "class ApiCommandTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "48c57f4910967e1a9a59b59760c1274fd32b89c3c7077c68c0d4845d51587709",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.client",
      "name": "client",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L918-L920",
      "signature": "def client(self) -> RecordingClient",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcfe92273383c7d07eb5a13c01c9e7e941129ba13c0f595c70e6af7a78aa8eb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiCommandTestCase"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "name": "sent",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L922-L925",
      "signature": "def sent(self, method: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a1d6e3a5008f96ca6fd6b39301d4f081b5f72acb65445145b8e597a591d477a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiCommandTestCase"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L910-L915",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "08898991ce9294075477e423a33017332d9311743a76317339e6bf70e926af68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiCommandTestCase"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "name": "ApiMainTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1259-L1307",
      "signature": "class ApiMainTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c1167fe9cd1bd4cf7b5ae7eb84fbcffcc6a4ce5df9a39cfe44fd9cc9be45be5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiMainTests.test_a_subcommand_is_required",
      "name": "test_a_subcommand_is_required",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1270-L1273",
      "signature": "def test_a_subcommand_is_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d0ffe67381eff6bd4559e2e5fa9b8b0b041c6492ee994071744e6dc85fa8beb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiMainTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiMainTests.test_an_invalid_region_exits_one_with_a_message",
      "name": "test_an_invalid_region_exits_one_with_a_message",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1260-L1268",
      "signature": "def test_an_invalid_region_exits_one_with_a_message(self) -> None: # ValueError from the input builders must never reach the user as a # traceback, and must never reach the service as a query.",
      "exported": true,
      "origin": "ast",
      "body_hash": "107a8bf154bf4e5ace32ea5b50c1ca31eb2c0a79abd07bb70bff4f3d6827c3ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiMainTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiMainTests.test_limit_and_page_size_are_mutually_exclusive",
      "name": "test_limit_and_page_size_are_mutually_exclusive",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1292-L1299",
      "signature": "def test_limit_and_page_size_are_mutually_exclusive(self) -> None: # Both together would mean \"cap the walk\" and \"walk everything\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "644424f32ba2b19dad81a6ad1d9c1930e9005c30bbf4fb55f69bda202b3065de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiMainTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiMainTests.test_the_documented_subcommands_all_parse",
      "name": "test_the_documented_subcommands_all_parse",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1275-L1290",
      "signature": "def test_the_documented_subcommands_all_parse(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "906be29079b2097bba083747c1bc6d74791a61776488dbe849f1736d332b4774",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiMainTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ApiMainTests.test_the_zygosity_flags_are_mutually_exclusive",
      "name": "test_the_zygosity_flags_are_mutually_exclusive",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1301-L1307",
      "signature": "def test_the_zygosity_flags_are_mutually_exclusive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c15d87a9b343f15d4639f2017dc51feae72d0364a3aabadabd71c4dd3a1c33c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiMainTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#BundledDataTests",
      "name": "BundledDataTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L102-L131",
      "signature": "class BundledDataTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "61315ddbcb132ef59ef5e46759441a733435d328cb94b9c415d24d8d8fda3d43",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#BundledDataTests.test_every_record_carries_the_keys_the_commands_read",
      "name": "test_every_record_carries_the_keys_the_commands_read",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L117-L125",
      "signature": "def test_every_record_carries_the_keys_the_commands_read(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41d20844661ae72c1df861ed92349de653ff8859fc0da9556248ed44e03a1227",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledDataTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#BundledDataTests.test_the_bundled_cohort_is_the_published_one",
      "name": "test_the_bundled_cohort_is_the_published_one",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L105-L109",
      "signature": "def test_the_bundled_cohort_is_the_published_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5fca2aedf6762cb2a6992d11f69428b1265844074dbf5f5533b6a90483ff03a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledDataTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#BundledDataTests.test_the_limit_ceiling_is_the_cohort_size",
      "name": "test_the_limit_ceiling_is_the_cohort_size",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L127-L131",
      "signature": "def test_the_limit_ceiling_is_the_cohort_size(self) -> None: # A limit above the cohort could never return more rows, so the cap and # the cohort must agree.",
      "exported": true,
      "origin": "ast",
      "body_hash": "42d3f5c70ea86638cd939d3093cd0f0dcb4d8d479bcae7134f0de5f16ab8b59a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledDataTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#BundledDataTests.test_the_phase_three_subset_is_the_published_size",
      "name": "test_the_phase_three_subset_is_the_published_size",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L111-L115",
      "signature": "def test_the_phase_three_subset_is_the_published_size(self) -> None: # 2,504 unrelated phase-3 samples plus 698 related individuals = 3,202.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c7735b41afc6487f25091ee64ebe936fd26ebed4c8d717308b2a2185ec0cfe0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledDataTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ChildrenIndexTests",
      "name": "ChildrenIndexTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L156-L176",
      "signature": "class ChildrenIndexTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fbef0de50cb203312c46633bca579cae9413a70e5c83312011a0357e5fe603f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ChildrenIndexTests.test_a_child_with_one_recorded_parent_is_not_indexed",
      "name": "test_a_child_with_one_recorded_parent_is_not_indexed",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L163-L172",
      "signature": "def test_a_child_with_one_recorded_parent_is_not_indexed(self) -> None: # Mirrors the SQL join: both parents must be present, otherwise the # \"children\" list would imply a trio that the cohort does not contain.",
      "exported": true,
      "origin": "ast",
      "body_hash": "df6ac589c3e9fcfa8f1a1af6c3330dd61f74f84cdf6f9367d115ad156f94d1c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChildrenIndexTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ChildrenIndexTests.test_founders_have_no_children_entry",
      "name": "test_founders_have_no_children_entry",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L174-L176",
      "signature": "def test_founders_have_no_children_entry(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c00388d1db7195c35279e3704992b6ce1e8c4471c6929e1385c0d27723519a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChildrenIndexTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ChildrenIndexTests.test_the_yoruba_trio_is_reconstructed_from_the_asset",
      "name": "test_the_yoruba_trio_is_reconstructed_from_the_asset",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L157-L161",
      "signature": "def test_the_yoruba_trio_is_reconstructed_from_the_asset(self) -> None: # Published pedigree: NA19240 is the daughter of NA19239 x NA19238.",
      "exported": true,
      "origin": "ast",
      "body_hash": "df0274c39622e744f00996273c482933f9f972740fc44f96ee0eaa99e18d5b49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChildrenIndexTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "name": "CountCommandTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L928-L1008",
      "signature": "class CountCommandTests(ApiCommandTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e11bdea9a25f2ed7ecee4136217d6c050b4f4599e7b62632fce6f063da1b409",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#CountCommandTests.test_an_incomplete_cluster_result_is_flagged_in_the_json",
      "name": "test_an_incomplete_cluster_result_is_flagged_in_the_json",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L988-L997",
      "signature": "def test_an_incomplete_cluster_result_is_flagged_in_the_json(self) -> None: # A partial answer that looks complete is the dangerous failure here.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c022d30a00f5fb4ba6a31bc991a937f6f5a532a88c1142201516b1895515cb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#CountCommandTests.test_counting_individuals_never_passes_a_sample_list",
      "name": "test_counting_individuals_never_passes_a_sample_list",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L999-L1008",
      "signature": "def test_counting_individuals_never_passes_a_sample_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "774d2317c596f0b2e1d7bf906682c0ee4f2066c092233b8acadb8f6c1f62858a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#CountCommandTests.test_named_individuals_are_split_from_the_csv_flag",
      "name": "test_named_individuals_are_split_from_the_csv_flag",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L972-L986",
      "signature": "def test_named_individuals_are_split_from_the_csv_flag(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d0f870981f55dae4eed8f032f2b46037f67b3bce34c6d314a10a8cce9e561b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_public_1000_genomes_endpoint_is_the_one_contacted",
      "name": "test_the_public_1000_genomes_endpoint_is_the_one_contacted",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L961-L970",
      "signature": "def test_the_public_1000_genomes_endpoint_is_the_one_contacted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f20e9aef08af0b9449a7e4b003869c1b9101c00ab91eb79c9b50dd34a82ca37",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_request_carries_the_region_zygosity_and_filter",
      "name": "test_the_request_carries_the_region_zygosity_and_filter",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L929-L959",
      "signature": "def test_the_request_carries_the_region_zygosity_and_filter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "192db84e2150626c19d7ca39fee804a79087d38dc87fae730529fe9e3e99635b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CountCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#DatasetInfoTests",
      "name": "DatasetInfoTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1222-L1255",
      "signature": "class DatasetInfoTests(ApiCommandTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9ab38d37f1281ca8ce9a6a3bd5e9f8880296642f5011dba8edf270c3d9b53ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#DatasetInfoTests.test_the_totals_and_cohorts_are_echoed_verbatim",
      "name": "test_the_totals_and_cohorts_are_echoed_verbatim",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1223-L1255",
      "signature": "def test_the_totals_and_cohorts_are_echoed_verbatim(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9647213b26da0036d42a26b80927d5e6738a5bc030c96f4957e35d77a3d83556",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DatasetInfoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#emitted",
      "name": "emitted",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L68-L81",
      "signature": "def emitted(handler, **arguments) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf180855c68b4783b6c4481d9729f10377db93c61b49a2b9f0a7450e2e3f4e21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#failure_message",
      "name": "failure_message",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L84-L94",
      "signature": "def failure_message(handler, **arguments) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3c337618e228ab507a42127777a8afc5a9a45730c4677f689000b29feea7431",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "name": "HomozygousReferenceTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1113-L1178",
      "signature": "class HomozygousReferenceTests(ApiCommandTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "982e61d5ae3e948be283f693ca2f473bdeed5cfa2e546d5e76205b0622303124",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.arguments",
      "name": "arguments",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1114-L1120",
      "signature": "def arguments(self) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6f40e7be89206627dc8ff0c203cfdc033dcbf9c39634a9577d12b83333df41a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HomozygousReferenceTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_a_real_count_is_reported_as_a_count",
      "name": "test_a_real_count_is_reported_as_a_count",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1122-L1132",
      "signature": "def test_a_real_count_is_reported_as_a_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5931684eed1985997010b0d7cd1a797f6a6be3af5f9ba34e4979c61ee60c8d20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HomozygousReferenceTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_listing_hom_ref_individuals_echoes_the_position",
      "name": "test_listing_hom_ref_individuals_echoes_the_position",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1167-L1178",
      "signature": "def test_listing_hom_ref_individuals_echoes_the_position(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "87c1ec376dc40b019ffdaef469fd87403124b144964c30f43e3fb74e8940919c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HomozygousReferenceTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_minus_one_means_no_variant_here_not_a_negative_count",
      "name": "test_minus_one_means_no_variant_here_not_a_negative_count",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1134-L1150",
      "signature": "def test_minus_one_means_no_variant_here_not_a_negative_count(self) -> None: # The service uses -1 as a sentinel; reporting it as a count would be # nonsense, and reporting 0 would wrongly imply everyone carries it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "710a1779d23490931116bdc74d66d09e968f91bd207fbc8bc5fb375e3e65b873",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HomozygousReferenceTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_zero_means_the_variant_exists_but_nobody_is_hom_ref",
      "name": "test_zero_means_the_variant_exists_but_nobody_is_hom_ref",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1152-L1165",
      "signature": "def test_zero_means_the_variant_exists_but_nobody_is_hom_ref(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a50a597df113e68cbb45dd8ac0a988e630b63ef75cda81c94dac00b4cdb4942",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HomozygousReferenceTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#KinshipCommandTests",
      "name": "KinshipCommandTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1181-L1219",
      "signature": "class KinshipCommandTests(ApiCommandTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d352a35a67899a1465f2a8fbe3412147a7ad8bdd4d0259899674f2b04052fc0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_a_pair_is_reported_with_its_degree_and_coefficient",
      "name": "test_a_pair_is_reported_with_its_degree_and_coefficient",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1182-L1206",
      "signature": "def test_a_pair_is_reported_with_its_degree_and_coefficient(self) -> None: # NA19238 x NA19240 are mother and daughter: a first-degree pair with # an expected KING coefficient near 0.25.",
      "exported": true,
      "origin": "ast",
      "body_hash": "15afad4ba607524b9c06f46ab11907e88a7b9f0db095f32d80b0eff0543557d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KinshipCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_an_empty_pair_list_fails_rather_than_reporting_nothing",
      "name": "test_an_empty_pair_list_fails_rather_than_reporting_nothing",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1208-L1219",
      "signature": "def test_an_empty_pair_list_fails_rather_than_reporting_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "84838f112ebc138c126f2315ff23926015d720a0d626860c0550e1d60b60c3f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KinshipCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "name": "LabelAndEchoTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L778-L846",
      "signature": "class LabelAndEchoTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ba22bd0084d075297108d9c8b2d747d51035b4e27338f538e0826daf141176d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_a_region_label_round_trips_the_parsed_string",
      "name": "test_a_region_label_round_trips_the_parsed_string",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L788-L792",
      "signature": "def test_a_region_label_round_trips_the_parsed_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "76dffe0ec0a7ce2f346ffceffb24e0c89f50a65c0ee7a75e2831b20cc0b289ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_a_variant_serialises_to_json_safe_keys",
      "name": "test_a_variant_serialises_to_json_safe_keys",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L840-L846",
      "signature": "def test_a_variant_serialises_to_json_safe_keys(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a09979718f36face0964a645c2624e86e92ea305d4d8e96494b5b3e2139f81ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_an_unfiltered_request_echoes_no_filter_block",
      "name": "test_an_unfiltered_request_echoes_no_filter_block",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L816-L825",
      "signature": "def test_an_unfiltered_request_echoes_no_filter_block(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c12c9c02805b26a6bd9881a85bf31ff9ec99ed4ffcd24ea277b984739daaa58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_chromosome_enums_render_as_their_conventional_names",
      "name": "test_chromosome_enums_render_as_their_conventional_names",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L779-L786",
      "signature": "def test_chromosome_enums_render_as_their_conventional_names(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d5f996e95d3e3fc225693842ef80f1f903011a945415590330ea9f9da851a71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_many_regions_are_labelled_as_a_list",
      "name": "test_many_regions_are_labelled_as_a_list",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L794-L801",
      "signature": "def test_many_regions_are_labelled_as_a_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4e2ae40d146af62efce8ac79ce9a28b0ad978f089c7b3b1de710e28f71d946e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_the_filter_echo_reports_only_what_was_set",
      "name": "test_the_filter_echo_reports_only_what_was_set",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L803-L814",
      "signature": "def test_the_filter_echo_reports_only_what_was_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd18fb274f583871fedc0287035e235329f7f9086b0fce810e947cfc8f3b0484",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_the_request_echo_records_alleles_and_samples",
      "name": "test_the_request_echo_records_alleles_and_samples",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L827-L838",
      "signature": "def test_the_request_echo_records_alleles_and_samples(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90e243b7156be2bbfe1cb367de922d2eddb32c36422848405a19af2ae2e9440d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelAndEchoTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#metadata",
      "name": "metadata",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L577-L581",
      "signature": "def metadata(affected: bool = False)",
      "exported": true,
      "origin": "ast",
      "body_hash": "55290d90bbb2fd338b75335a861a153f4815b0c7c5c1e8304133a22b11ca686f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#MetaParserTests",
      "name": "MetaParserTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L493-L519",
      "signature": "class MetaParserTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f89b93e7312a8199f3d0763f469b663500cd307a00067dfde70c1630ba6dbb3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#MetaParserTests.test_a_subcommand_is_required",
      "name": "test_a_subcommand_is_required",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L494-L497",
      "signature": "def test_a_subcommand_is_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c078c4b66246275beb7a329d9860bb68e7d06a34178f4bc93293e894ad86acc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetaParserTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#MetaParserTests.test_every_subcommand_binds_a_handler",
      "name": "test_every_subcommand_binds_a_handler",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L499-L511",
      "signature": "def test_every_subcommand_binds_a_handler(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc7aa1ef2fe6436c7caf1b686c0e35560a888781de6e5d1b974a340c369619d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetaParserTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#MetaParserTests.test_repeated_population_flags_accumulate",
      "name": "test_repeated_population_flags_accumulate",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L513-L519",
      "signature": "def test_repeated_population_flags_accumulate(self) -> None: # Full population names contain commas, so this flag repeats rather # than splitting on commas.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d87297a6213626fe978c2f34d2d677c24909fae70f9f4af8df995de5fe3ec5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetaParserTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#Pages",
      "name": "Pages",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L608-L614",
      "signature": "class Pages",
      "exported": true,
      "origin": "ast",
      "body_hash": "8527eadd7de2fe8e439bea499a4cd82919be0dadc5f87f560deed8bef82e96bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#Pages.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L609-L611",
      "signature": "def __init__(self, pages, affected: bool = False) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "3a4b8614010964408ed8be0f41ee856ed129482834a84930754df6ec725a69a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Pages"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#Pages.__iter__",
      "name": "__iter__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L613-L614",
      "signature": "def __iter__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "586d1dc6fec715be0ab94a305643696fff3e3b25cb29a0b2efad9105563b519f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Pages"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationListingTests",
      "name": "PopulationListingTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L268-L294",
      "signature": "class PopulationListingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c56171ab76b084ee96763c500fd7e0c90ccc3dd368775c14a99ad3ab67b2cbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_all_populations_are_listed_and_add_up_to_the_cohort",
      "name": "test_all_populations_are_listed_and_add_up_to_the_cohort",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L269-L274",
      "signature": "def test_all_populations_are_listed_and_add_up_to_the_cohort(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10a4dae1a7bab42219e86308c09c2853d853e260bbb1395e99cb5039ba39c0f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationListingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_populations_are_ordered_by_superpopulation_then_code",
      "name": "test_populations_are_ordered_by_superpopulation_then_code",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L276-L282",
      "signature": "def test_populations_are_ordered_by_superpopulation_then_code(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b527cecf6d0fedbecd82b3d9f801399f753a6822fb9d639f9ae36249df2fa006",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationListingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_the_five_superpopulations_partition_the_cohort",
      "name": "test_the_five_superpopulations_partition_the_cohort",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L284-L294",
      "signature": "def test_the_five_superpopulations_partition_the_cohort(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e00342d8558cd21cb38f713e92f1f7043f43ed155c5a20287ceb16576ce9a09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationListingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests",
      "name": "PopulationStatsAggregationTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L179-L212",
      "signature": "class PopulationStatsAggregationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "29ec145ccebc07f7368c3721ac157062cfc9a2d25fb314f3699f58c634b2d45a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.record",
      "name": "record",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L181-L189",
      "signature": "def record(**overrides) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac8dfefa2e2d5b46d77bbcd24c9a10eb69897aca012529d9059f7ebcf2df0c0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsAggregationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_an_empty_subset_produces_no_groups",
      "name": "test_an_empty_subset_produces_no_groups",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L211-L212",
      "signature": "def test_an_empty_subset_produces_no_groups(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "161424e2234fd186096c0978f952be952599b56292b2bdd8d71388fa0448bb24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsAggregationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_an_unrecorded_sex_counts_toward_neither_column",
      "name": "test_an_unrecorded_sex_counts_toward_neither_column",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L206-L209",
      "signature": "def test_an_unrecorded_sex_counts_toward_neither_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61c5ad069e4757cc291e193680c4318d4f7b38fb73b6c835c16f4553b06caf01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsAggregationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_counts_are_aggregated_per_population_key",
      "name": "test_counts_are_aggregated_per_population_key",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L191-L204",
      "signature": "def test_counts_are_aggregated_per_population_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fefae7f0a6b05f924408c473b7b86bbe00991c1af3b4b72bd5992a419ce4fe9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsAggregationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "name": "PopulationStatsCommandTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L297-L357",
      "signature": "class PopulationStatsCommandTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9332e75b98ca4cf5616f551faa216928bc611bafbba896977538714bbfe81ff9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_a_code_and_its_full_name_select_the_same_population",
      "name": "test_a_code_and_its_full_name_select_the_same_population",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L315-L321",
      "signature": "def test_a_code_and_its_full_name_select_the_same_population(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f34108c2c4eec512635eb0196cf3281f9c1df0f840553168c84e3649fd26c469",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_an_unrecognised_population_fails_before_any_aggregation",
      "name": "test_an_unrecognised_population_fails_before_any_aggregation",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L332-L336",
      "signature": "def test_an_unrecognised_population_fails_before_any_aggregation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1bae1933add04ef4a274071738bdbcc46af121f12864ed5b3323dbb1d9733dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_an_unrecognised_superpopulation_fails",
      "name": "test_an_unrecognised_superpopulation_fails",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L351-L357",
      "signature": "def test_an_unrecognised_superpopulation_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93fa8c2f7c70898251afdd0a2c1ed0174775df39271e220bb6073e1581ce5908",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_several_populations_are_returned_ordered_by_code",
      "name": "test_several_populations_are_returned_ordered_by_code",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L323-L330",
      "signature": "def test_several_populations_are_returned_ordered_by_code(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b20acb1a50651a476bd8d70e502748153d9f6876649b58722054f863f40b925",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_superpopulation_totals_equal_the_sum_of_their_populations",
      "name": "test_superpopulation_totals_equal_the_sum_of_their_populations",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L338-L349",
      "signature": "def test_superpopulation_totals_equal_the_sum_of_their_populations(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dab45c706993888e143f88a4de6ef4e146fd8c5b9d4bad24ac012b5fa9670355",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_the_row_matches_an_independent_count_over_the_asset",
      "name": "test_the_row_matches_an_independent_count_over_the_asset",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L309-L313",
      "signature": "def test_the_row_matches_an_independent_count_over_the_asset(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "de5153187b586e6cbe7b1ab1c67d2be80e23b3381bfef913695891b8608b0b2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_the_sex_split_and_trio_count_are_internally_consistent",
      "name": "test_the_sex_split_and_trio_count_are_internally_consistent",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L298-L307",
      "signature": "def test_the_sex_split_and_trio_count_are_internally_consistent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1711c9bd543c3176a53ce35f72bb6a7bb9e1884826c5f111c28e270bbc245ce0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PopulationStatsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RecordingClient",
      "name": "RecordingClient",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L549-L574",
      "signature": "class RecordingClient",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b1c4c489476d958fbb94fd4eb25477a5c1da631b7cf9d94392da40c7d9650a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RecordingClient.__enter__",
      "name": "__enter__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L560-L561",
      "signature": "def __enter__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9bc8e58d520af62f0de2ba0deb174d20440afd12aa6d64bdf7c40edc4cbfa696",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingClient"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RecordingClient.__exit__",
      "name": "__exit__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L563-L564",
      "signature": "def __exit__(self, *exception) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "cc5aa47d26c15aa77de7c3691deff747de29a95901dda170c09953484f0de4ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingClient"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RecordingClient.__getattr__",
      "name": "__getattr__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L566-L574",
      "signature": "def __getattr__(self, name)",
      "exported": false,
      "origin": "ast",
      "body_hash": "e93ad9f9dbf6ca736623bab925c9058cdcae34551af561220e6b486cafb157bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingClient"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RecordingClient.__getattr__.method",
      "name": "method",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L570-L572",
      "signature": "def method(**kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "600414d0f4cf9790137789015f7c61c78cf3ea2faacbd8cb36628c03900abe46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RecordingClient.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L554-L558",
      "signature": "def __init__(self, target=None, **kwargs) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "6476ea99f284832bf8806287b323fd51800c70b876724bd9106dbd297415504e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingClient"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#region_args",
      "name": "region_args",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L527-L546",
      "signature": "def region_args(**overrides) -> Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c8c35ac914130e10972cf36905950999c9fdb8d13201b2ecffc03fc6aeaa4ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "name": "RegionParsingTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L618-L672",
      "signature": "class RegionParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d63516c5ecf66d8c29ce1ec72171a9c2aa341e5ef1e4fb0f60146dfc6d978d69",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_region_is_mandatory",
      "name": "test_a_region_is_mandatory",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L659-L661",
      "signature": "def test_a_region_is_mandatory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a453e6705af294800ed3cfd8f3b3d4f6b9904db38ca2122e80e4fc7f495ae33e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_region_string_becomes_a_typed_region",
      "name": "test_a_region_string_becomes_a_typed_region",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L619-L623",
      "signature": "def test_a_region_string_becomes_a_typed_region(self) -> None: # BRCA1 on GRCh38, 1-based inclusive.",
      "exported": true,
      "origin": "ast",
      "body_hash": "30e0f05f033a8057705d668fd81cfa6c37040847cd26785589dc5d1a4ba9ede5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_single_region_carries_the_allele_narrowing",
      "name": "test_a_single_region_carries_the_allele_narrowing",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L636-L641",
      "signature": "def test_a_single_region_carries_the_allele_narrowing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7ed5e6c09ab20e9226b7edfe9165a08745a471c50aaa017b8c705e4a386a3d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_allele_narrowing_cannot_apply_to_many_regions",
      "name": "test_allele_narrowing_cannot_apply_to_many_regions",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L669-L672",
      "signature": "def test_allele_narrowing_cannot_apply_to_many_regions(self) -> None: # One ref/alt pair cannot be meaningful across several intervals.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c459150ee859e1547330a3aa636182da0daa3bd247e1f253faec79c9109c9ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_an_incomplete_single_region_is_refused",
      "name": "test_an_incomplete_single_region_is_refused",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L663-L667",
      "signature": "def test_an_incomplete_single_region_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecb4412c8dffa52871024dc5c953405dbf64381fe5976062b05f7c6e81ed6c6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_coordinate_validation_is_left_to_the_library",
      "name": "test_coordinate_validation_is_left_to_the_library",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L631-L634",
      "signature": "def test_coordinate_validation_is_left_to_the_library(self) -> None: # An inverted interval must not reach the service as a live query.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2963793cc5d89afce6e5a55805875f6efda817885a66b85c683123e1671deae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_malformed_region_strings_name_the_expected_shape",
      "name": "test_malformed_region_strings_name_the_expected_shape",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L625-L629",
      "signature": "def test_malformed_region_strings_name_the_expected_shape(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f28d7dcbd768dc4104456322c7331e6bf08e69657d2604dc41ce8f179e8d4dcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_mixing_the_two_region_modes_is_refused",
      "name": "test_mixing_the_two_region_modes_is_refused",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L653-L657",
      "signature": "def test_mixing_the_two_region_modes_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a1e25f9b2c8248269762f30c538542d95a9ca0fea8f70f5e31b319b136ad12d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_multiple_regions_are_parsed_in_order",
      "name": "test_multiple_regions_are_parsed_in_order",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L643-L651",
      "signature": "def test_multiple_regions_are_parsed_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31b0f51949504a9f1d568f2da6ec74e05de5b1ac3a015536c8ed832409b299f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegionParsingTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests",
      "name": "RetryTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L850-L903",
      "signature": "class RetryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "44e0072d302d2bbc32978b80be51a479e3abec3855495f0f96a7d6333bfac12b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_call_that_recovers_returns_the_later_result",
      "name": "test_a_call_that_recovers_returns_the_later_result",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L892-L903",
      "signature": "def test_a_call_that_recovers_returns_the_later_result(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f11ae5fa3f189d8b41eeacd03fdb5f15544d3486b54c7ce4f91cf9ea0d7f8db",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_call_that_recovers_returns_the_later_result.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L895-L899",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a3567cec318ebce9bff57a907abeee17fd672a0ae1245363ac4339a5b9392a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_non_retryable_error_is_raised_without_a_second_attempt",
      "name": "test_a_non_retryable_error_is_raised_without_a_second_attempt",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L878-L890",
      "signature": "def test_a_non_retryable_error_is_raised_without_a_second_attempt(self) -> None: # Retrying a rejected request just multiplies the load.",
      "exported": true,
      "origin": "ast",
      "body_hash": "16c6ea46c14d9f2c5cc6bcfcb89adb8ee8e477fb361047d2e18da31fc51173ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_non_retryable_error_is_raised_without_a_second_attempt.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L882-L884",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ba8affb052c3369e266f8c894e8473399ccc0570e81a717a8fa26134ba1cabf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_retryable_error_is_retried_up_to_the_bound_then_raised",
      "name": "test_a_retryable_error_is_retried_up_to_the_bound_then_raised",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L861-L876",
      "signature": "def test_a_retryable_error_is_retried_up_to_the_bound_then_raised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7238a9aa673b11dbc691ee04ec9ed0f1768dad203a4367bbdb46be92013832e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_retryable_error_is_retried_up_to_the_bound_then_raised.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L864-L866",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e2f58508e7d10b29c000c190f158538d7a126b08942433b5d2ef675987d3a51",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_successful_call_is_made_exactly_once",
      "name": "test_a_successful_call_is_made_exactly_once",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L851-L859",
      "signature": "def test_a_successful_call_is_made_exactly_once(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "05e35a1734c6255f17c23c288cd522cb5e222899c98b1cdf719eebe17c4cdf5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RetryTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#RetryTests.test_a_successful_call_is_made_exactly_once.fetch",
      "name": "fetch",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L854-L856",
      "signature": "def fetch()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcef857c558d72e45be53a394063220aafaef8c9ab3866e576aeb0cd695a5558",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "name": "SampleMetadataCommandTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L215-L265",
      "signature": "class SampleMetadataCommandTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d45967f51c16060f580e98be5da51aae9113276bf03e42b29a9e4cbd02bc24c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_a_founder_reports_no_parents_rather_than_zero",
      "name": "test_a_founder_reports_no_parents_rather_than_zero",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L226-L231",
      "signature": "def test_a_founder_reports_no_parents_rather_than_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5263886a466303c77169feccfab30f75be6ef80f9f94147800696c48d3f05e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_a_trio_child_reports_both_parents_and_its_relationship",
      "name": "test_a_trio_child_reports_both_parents_and_its_relationship",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L216-L224",
      "signature": "def test_a_trio_child_reports_both_parents_and_its_relationship(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b8b6d37161c0a86490c6d35c34f0184a535a387b24f0f02623d3a2ea8be61ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_an_empty_sample_list_fails",
      "name": "test_an_empty_sample_list_fails",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L261-L265",
      "signature": "def test_an_empty_sample_list_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "13fa8d77a619c08122c4eac82ec16315e83cf18606dc291abb11cdd33e070e87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_an_unknown_identifier_fails_and_names_it",
      "name": "test_an_unknown_identifier_fails_and_names_it",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L245-L251",
      "signature": "def test_an_unknown_identifier_fails_and_names_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "14718dabcddb3ab831ef151b13ead87bc1cad51a56938b44eceb8c614f10a92c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_sample_identifiers_are_case_sensitive",
      "name": "test_sample_identifiers_are_case_sensitive",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L253-L259",
      "signature": "def test_sample_identifiers_are_case_sensitive(self) -> None: # The variant commands take the same names; accepting a wrong case here # would produce IDs the query layer then rejects.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fd79913a197d084dfee2c6f8339cd11b40270bf8c098af4289e2170afcb5192",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_several_samples_come_back_sorted_and_deduplicated",
      "name": "test_several_samples_come_back_sorted_and_deduplicated",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L233-L239",
      "signature": "def test_several_samples_come_back_sorted_and_deduplicated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d39fe8c5df15bc4f4326af19ca752c44961e80ba4493ea99781f382cccebef2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_whitespace_around_identifiers_is_tolerated",
      "name": "test_whitespace_around_identifiers_is_tolerated",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L241-L243",
      "signature": "def test_whitespace_around_identifiers_is_tolerated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cc03136110f3ae05c568fd9dab5aa12717df675c8f933eff10a50fa5d7cacdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleMetadataCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "name": "SelectSamplesByPopulationTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L360-L465",
      "signature": "class SelectSamplesByPopulationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3deaaa8e79c4fef08bc5753feb5a23308e5c518aa138928e38b9df147187dad5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "name": "defaults",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L361-L369",
      "signature": "def defaults(self, **overrides) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "b826391e28c8e5904a3d112d80442ca74ddf159a8d6d599bbb7f330ed936c9bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_negative_skip_is_refused",
      "name": "test_a_negative_skip_is_refused",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L453-L458",
      "signature": "def test_a_negative_skip_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c98cad43a4753be4b4305c94fc90d429b1e19d8e3529d8735596b30ed3ab69ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_skip_past_the_end_returns_an_empty_page_not_an_error",
      "name": "test_a_skip_past_the_end_returns_an_empty_page_not_an_error",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L399-L405",
      "signature": "def test_a_skip_past_the_end_returns_an_empty_page_not_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29cbd6e7e441d21ecc2aecd9a42c572b766d59aba4dfb4e99b6906a349f5063e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_superpopulation_alone_selects_across_its_populations",
      "name": "test_a_superpopulation_alone_selects_across_its_populations",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L422-L427",
      "signature": "def test_a_superpopulation_alone_selects_across_its_populations(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "756558bcb8ea04bc56d387518b8d2d472e94fd998b086c8feb96fd40ad8e4497",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_an_unrecognised_population_is_refused",
      "name": "test_an_unrecognised_population_is_refused",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L460-L465",
      "signature": "def test_an_unrecognised_population_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ba44808a85475c7a921c474d7b4fdaee6579631753985616f0071b00d7dd3f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_neither_selector_is_refused",
      "name": "test_neither_selector_is_refused",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L429-L434",
      "signature": "def test_neither_selector_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fa7b02174207622718ff00d22b9e32e172bf5603a05e8d7bc7307ada6c09595e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_population_and_superpopulation_are_combined_with_and",
      "name": "test_population_and_superpopulation_are_combined_with_and",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L407-L420",
      "signature": "def test_population_and_superpopulation_are_combined_with_and(self) -> None: # YRI is African, so pairing it with EUR must match nobody -- an OR # would return the whole of Europe.",
      "exported": true,
      "origin": "ast",
      "body_hash": "14ad5dd013d13f34de68e0669e204972e26689e92a8e939685f4e45bd824c342",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_skip_advances_the_window_without_dropping_rows",
      "name": "test_skip_advances_the_window_without_dropping_rows",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L379-L388",
      "signature": "def test_skip_advances_the_window_without_dropping_rows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39095dea28923b1f6c8da23032482f74a53aabdd02008518f0dc6be66e251e47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_default_page_is_fifty_rows",
      "name": "test_the_default_page_is_fifty_rows",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L390-L397",
      "signature": "def test_the_default_page_is_fifty_rows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f239a630699d9aa706b9af94ccac57cb6ef4d18ebaf865b7f595ba5025a469b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_limit_bounds_are_enforced_at_both_ends",
      "name": "test_the_limit_bounds_are_enforced_at_both_ends",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L436-L451",
      "signature": "def test_the_limit_bounds_are_enforced_at_both_ends(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a9ccf740b4822f26b39dd3d0ded56569293353316f395c0e2dee6fee584984f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_page_is_sorted_and_capped_by_limit",
      "name": "test_the_page_is_sorted_and_capped_by_limit",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L371-L377",
      "signature": "def test_the_page_is_sorted_and_capped_by_limit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "835d1c8776ca9ea65e878e99e68d1019734fdb3fb235fe655ce18ed76baf7518",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesByPopulationTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests",
      "name": "SelectSamplesCommandTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1077-L1110",
      "signature": "class SelectSamplesCommandTests(ApiCommandTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5775f51fa03101eb02722c619dd2f2db0adc674948c4d95eb61c3410a09a59ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_paging_arguments_reach_the_service_and_the_echo",
      "name": "test_paging_arguments_reach_the_service_and_the_echo",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1078-L1094",
      "signature": "def test_paging_arguments_reach_the_service_and_the_echo(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e83c4e163d16f782f01778257811cf75ff3a97c85d53fa8744505dc3fa700723",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_unset_paging_is_omitted_from_the_echo",
      "name": "test_unset_paging_is_omitted_from_the_echo",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1096-L1110",
      "signature": "def test_unset_paging_is_omitted_from_the_echo(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd4451879ab40cfd099fcd46e20950b91a3fe56a2b65c82644e35657f3dd2ebf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectSamplesCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "name": "SelectVariantsCommandTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1011-L1074",
      "signature": "class SelectVariantsCommandTests(ApiCommandTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac6020efd29ca05e8007db39e47ba29c55471c0a773f786a139d8267ca738504",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "name": "base",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1012-L1022",
      "signature": "def base(self, **overrides) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "00ca1e50f0fb1eb77d931d2e732fb2f076c5630bf2b1f387e7cb85604db3fe8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_a_result_below_the_limit_is_not_truncated",
      "name": "test_a_result_below_the_limit_is_not_truncated",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1042-L1045",
      "signature": "def test_a_result_below_the_limit_is_not_truncated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "319b7fac3e0fa5988eaf17f702645524a1e6422aac00957cbd826077ffd38f00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_an_empty_result_is_reported_as_zero_not_as_an_error",
      "name": "test_an_empty_result_is_reported_as_zero_not_as_an_error",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1047-L1052",
      "signature": "def test_an_empty_result_is_reported_as_zero_not_as_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "87588cace54328c3292ecb9370e0c0bda6ac9a8dffaeb87c4b9dc6ca55367437",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_hitting_the_limit_marks_the_result_as_truncated",
      "name": "test_hitting_the_limit_marks_the_result_as_truncated",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1034-L1040",
      "signature": "def test_hitting_the_limit_marks_the_result_as_truncated(self) -> None: # Silently returning a capped list would understate every carrier.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2651a6e819f55e300330c80a27d3a60b121bf83086980980e04a06e46419320b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "name": "test_paging_walks_every_page_and_cannot_truncate",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1054-L1066",
      "signature": "def test_paging_walks_every_page_and_cannot_truncate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e50d02659e1f92f860dbb5b4ed401011e3c7ce86000a4a44dfd14a9e787affe1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "name": "test_selecting_within_individuals_forwards_the_sample_list",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1068-L1074",
      "signature": "def test_selecting_within_individuals_forwards_the_sample_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "974c21981508e51a10aa3fdaebbbfd9d17ee4ff954631e65d9eab3fb6e232eff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "name": "test_variants_are_returned_with_the_default_limit_applied",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L1024-L1032",
      "signature": "def test_variants_are_returned_with_the_default_limit_applied(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "60804b95eae82411e010b155c675adae7f8182deed65c61a1eb1e5d1b13b8c69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SelectVariantsCommandTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SharedHelperTests",
      "name": "SharedHelperTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L468-L490",
      "signature": "class SharedHelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0bf211e06529ed0b9d7ebdb4f0c3375b6d311a1eac12d1fb1ec1e2587e9f62b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SharedHelperTests.test_csv_splitting_trims_and_drops_empty_tokens",
      "name": "test_csv_splitting_trims_and_drops_empty_tokens",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L469-L473",
      "signature": "def test_csv_splitting_trims_and_drops_empty_tokens(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5cc1cd74f8585ae3a4251a4325af5f056f54aed9289a92f69404e890f845757",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SharedHelperTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SharedHelperTests.test_json_is_written_to_the_requested_path",
      "name": "test_json_is_written_to_the_requested_path",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L475-L480",
      "signature": "def test_json_is_written_to_the_requested_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ce862155a7ca5c4fa467339eec94dfc5269fbac2c9bcb996733e26260cda9b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SharedHelperTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#SharedHelperTests.test_without_a_path_a_temp_file_is_used_and_reported",
      "name": "test_without_a_path_a_temp_file_is_used_and_reported",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L482-L490",
      "signature": "def test_without_a_path_a_temp_file_is_used_and_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ea83d208703e16ccce40aa356633ecfbc78e4b95c85b235664ce23ea321ad74",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SharedHelperTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#Stream",
      "name": "Stream",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L599-L605",
      "signature": "class Stream",
      "exported": true,
      "origin": "ast",
      "body_hash": "d08782a43f24d658464614682ec84953ff735a16c300c409b1bf4101f26574c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#Stream.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L600-L602",
      "signature": "def __init__(self, variants, affected: bool = False) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "ffb1ff08f4240251650f1c09cb80d780de4090da06368d90b9c8415c622eff4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Stream"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#Stream.to_list",
      "name": "to_list",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L604-L605",
      "signature": "def to_list(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e170413985df75288672c47ec310add642dd6175d060a1ebb99143b1d0131b91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Stream"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#variant",
      "name": "variant",
      "kind": "function",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L584-L596",
      "signature": "def variant(start: int = 43044295, **overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "70b4c6aa9c301224598c0546ba4381d248d518a31a6ff28cf643ffcfd905cb08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ZygosityTests",
      "name": "ZygosityTests",
      "kind": "class",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L676-L692",
      "signature": "class ZygosityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d266c04bc41f9d5588b15173a1d4074be0d4a0c9896b1d00f08d91fec2945b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ZygosityTests.test_both_zygosities_are_included_by_default",
      "name": "test_both_zygosities_are_included_by_default",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L677-L679",
      "signature": "def test_both_zygosities_are_included_by_default(self) -> None: # Defaulting to one of them would silently halve every carrier count.",
      "exported": true,
      "origin": "ast",
      "body_hash": "adff44bf2ed74b9775dcbdbcb69716fa433816ae51ea1884f35391037cfaa4c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ZygosityTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ZygosityTests.test_each_flag_narrows_to_its_own_zygosity",
      "name": "test_each_flag_narrows_to_its_own_zygosity",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L681-L687",
      "signature": "def test_each_flag_narrows_to_its_own_zygosity(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff06e8911c22e327464fea5cf8faaf563dc66fdf5ec4b0cdeecb1ea3ba61a3d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ZygosityTests"
    },
    {
      "id": "tests/onekgpd/test_scripts.py#ZygosityTests.test_the_label_names_what_was_queried",
      "name": "test_the_label_names_what_was_queried",
      "kind": "method",
      "path": "tests/onekgpd/test_scripts.py",
      "span": "L689-L692",
      "signature": "def test_the_label_names_what_was_queried(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e504d0200d1a18948c6efbd6281f33f2e81147797482a5e5feb3a6d892d5067e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ZygosityTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L1-L820",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "98467ee7e9592bd3cf1a47313e43c1361ebf10196bd85668864d1fbb9d360664",
      "chars": 34979,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#_load_script",
      "name": "_load_script",
      "kind": "function",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L30-L39",
      "signature": "def _load_script(name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ac5f4bdf5f8c4d1c2a2f649c9720e589e2f8bac37db7ddccbf9969c50e893e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests",
      "name": "CandidateRankingTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L160-L191",
      "signature": "class CandidateRankingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "482e46cbad4b3ce1af02178fffa9d252145eba3de4945d927202fca08ce01f38",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_dedupe_keeps_the_defining_ontologys_copy",
      "name": "test_dedupe_keeps_the_defining_ontologys_copy",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L161-L168",
      "signature": "def test_dedupe_keeps_the_defining_ontologys_copy(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d0d4237b23918f97a8256f7ef2f675c29e8a215d0c06800867cb3cb42d05f87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CandidateRankingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_dedupe_skips_docs_without_an_identifier",
      "name": "test_dedupe_skips_docs_without_an_identifier",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L170-L171",
      "signature": "def test_dedupe_skips_docs_without_an_identifier(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eba453351638a33ab23ea13e01416a96f417f0764ae0cebd16586619e859a50f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CandidateRankingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_exact_matches_outrank_partial_ones",
      "name": "test_exact_matches_outrank_partial_ones",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L173-L182",
      "signature": "def test_exact_matches_outrank_partial_ones(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a715a2544a086b4e1fc7b75d978ae9b8de6f76ff6d3d39422aef52a83adcd871",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CandidateRankingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_label_match_outranks_synonym_match",
      "name": "test_label_match_outranks_synonym_match",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L184-L191",
      "signature": "def test_label_match_outranks_synonym_match(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "587d52dd47b75a9025adf7b33c464f67493edd2b024e681dcbb20968c7f4114d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CandidateRankingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "name": "CurieHelperTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L65-L86",
      "signature": "class CurieHelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6a3d07910d23def2f86b233760e8903a6b023b6e2a12ef22fcd32bac12b338a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_is_curie_accepts_real_prefixes",
      "name": "test_is_curie_accepts_real_prefixes",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L66-L69",
      "signature": "def test_is_curie_accepts_real_prefixes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c533c526330badf8b8d28b5e39aa6759d1faa1a9cd8bc86657efe41f3d54439a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurieHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_is_curie_rejects_non_curies",
      "name": "test_is_curie_rejects_non_curies",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L71-L74",
      "signature": "def test_is_curie_rejects_non_curies(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bba9cbbff63ab83bc334042d9a37824de185ddc6b3c71badba539bd7374ddd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurieHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_ontology_id_is_the_lowercased_prefix",
      "name": "test_ontology_id_is_the_lowercased_prefix",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L76-L79",
      "signature": "def test_ontology_id_is_the_lowercased_prefix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a4a5387a2b0806640f7ee9bd0bd7145e0e79ffc791407c9a10221836a5d4382",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurieHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_ontology_id_of_junk_is_none",
      "name": "test_ontology_id_of_junk_is_none",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L85-L86",
      "signature": "def test_ontology_id_of_junk_is_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "745873e87cc5ab79cc7ad5e8f7244e330a24cdf7d68a5c414a0516f5d37c3045",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurieHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_ontology_id_override_for_orphanet",
      "name": "test_ontology_id_override_for_orphanet",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L81-L83",
      "signature": "def test_ontology_id_override_for_orphanet(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "439419b8899c00746b6b3ab553c686768147599e484e53ff25bcabb7f334bcad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CurieHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#doc",
      "name": "doc",
      "kind": "function",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L51-L62",
      "signature": "def doc(**overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "281fe36e8c0a1311310119bf6f2e5b9a5c942863c78fdbf3655fb2f1859b69b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "name": "ExitCodeTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L399-L445",
      "signature": "class ExitCodeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7391f212c7ca2e8eda24cc933eb6c0f73038a611b83a68e41903c7358aa0d683",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "name": "result",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L406-L408",
      "signature": "def result(self, status)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cff83f88ac00c04bf5ab1ab8abd1f11b2c1160cca75dbf6f0e6afa73a761a4f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "name": "run_validate",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L400-L404",
      "signature": "def run_validate(self, argv, results)",
      "exported": true,
      "origin": "ast",
      "body_hash": "811c3974b7b42ed90d4170e91bc489b2883434d67270731c6bb08c1613e8a046",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_bad_branch_curie_exits_two",
      "name": "test_bad_branch_curie_exits_two",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L432-L435",
      "signature": "def test_bad_branch_curie_exits_two(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38be99a3aa562809bec65ac672464d59a9054bc8cedf9e051f4d35a011e632f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_clean_run_exits_zero",
      "name": "test_clean_run_exits_zero",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L410-L412",
      "signature": "def test_clean_run_exits_zero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "353d1d57d2e01fc8d4d2dc9ccb6246ce3686b7550d918d370dfc8536f7b88da6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_failure_exits_one",
      "name": "test_failure_exits_one",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L414-L416",
      "signature": "def test_failure_exits_one(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f3d95b195970d84eb2dc9e32011e715e1a3a2ab1549198884ae619db4b49f732",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_json_output_is_a_list_of_records",
      "name": "test_json_output_is_a_list_of_records",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L441-L445",
      "signature": "def test_json_output_is_a_list_of_records(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7a2a818871ddf8ce38991b7cd838f37b5163d9cb0160b83e4fc8b2b64b505ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_no_input_exits_two",
      "name": "test_no_input_exits_two",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L428-L430",
      "signature": "def test_no_input_exits_two(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9428c5560c3056caba672d0920b30422e3327e132eeb3b0a6c68d5904ca330bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_strict_makes_warnings_fail",
      "name": "test_strict_makes_warnings_fail",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L422-L426",
      "signature": "def test_strict_makes_warnings_fail(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f179241c6ae7db76ee223c5432471702b365e4bb2a750d0908c826f7c319e414",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_tsv_output_has_the_documented_columns",
      "name": "test_tsv_output_has_the_documented_columns",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L437-L439",
      "signature": "def test_tsv_output_has_the_documented_columns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cae25bd3bdc18ff9b17dad8abce435b7bac227db7b5ac3701cb08fd73dc9b42d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_warning_alone_exits_zero",
      "name": "test_warning_alone_exits_zero",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L418-L420",
      "signature": "def test_warning_alone_exits_zero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66bd19aaabf81959f944224eeefc0a3c2fcadce95c9cebea0068001b6a2197bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExitCodeTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "name": "InputParsingTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L349-L396",
      "signature": "class InputParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4af96ec50fa93f8d2d67b148cc750e8cd71d8ac77a5785e47438bf5216948a3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "name": "parse",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L350-L357",
      "signature": "def parse(self, text, terms=())",
      "exported": true,
      "origin": "ast",
      "body_hash": "d736b468c27bbe74c9d6b27b03f98338a74b77324fe721a989e46a50bdd5d1a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_alternate_header_names",
      "name": "test_alternate_header_names",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L363-L365",
      "signature": "def test_alternate_header_names(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "15e246411c8b70ca4b98702bc01463ac6cbff8195f2621b6767fcb03c1f75087",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_comment_and_blank_lines_are_skipped",
      "name": "test_comment_and_blank_lines_are_skipped",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L383-L385",
      "signature": "def test_comment_and_blank_lines_are_skipped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2fa113b6a498f36a827061aa561c38555f3f910f88f07fcbe166fe6bf042fbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_csv_is_detected",
      "name": "test_csv_is_detected",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L367-L369",
      "signature": "def test_csv_is_detected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d486834ccc8f99b928b7647e5764af4883be3d4e09ebb9f2a91d947f3683b832",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_headerless_two_columns",
      "name": "test_headerless_two_columns",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L371-L373",
      "signature": "def test_headerless_two_columns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7abac7c2be2bc53199bcd106074c68e93f883ee3412db98134c80fd79bc8cf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_id_only_header_without_label_column",
      "name": "test_id_only_header_without_label_column",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L379-L381",
      "signature": "def test_id_only_header_without_label_column(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d657af1293abf61e48c7eb744fc6b28a85c3de29e3afe6e9b5d9d97578a48d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_positional_terms_merge_with_file_terms",
      "name": "test_positional_terms_merge_with_file_terms",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L387-L389",
      "signature": "def test_positional_terms_merge_with_file_terms(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f1710885044c3e2d86a03b460cfa00be33e467ce6049a90fe8f1f203b3f9d48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_resolve_deduplicates_queries_preserving_order",
      "name": "test_resolve_deduplicates_queries_preserving_order",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L391-L396",
      "signature": "def test_resolve_deduplicates_queries_preserving_order(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f63c2b152c295016df925308d81c9d0ceb26ba5eb424c62841df0272b041cb0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_single_column_has_no_labels",
      "name": "test_single_column_has_no_labels",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L375-L377",
      "signature": "def test_single_column_has_no_labels(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b100d346608e68421915aa54b91378be4c22b6bff33bf609841ed9dcabe5684",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_tsv_with_headers",
      "name": "test_tsv_with_headers",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L359-L361",
      "signature": "def test_tsv_with_headers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "209805dc7cd47a4b6df2b8d2148ca82b7bffc7688dbc0019aadf1c2ed7e2997c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "InputParsingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "name": "IriConversionTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L89-L130",
      "signature": "class IriConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eab15ad2b2c86cac4d830b403df556ac3ef5620bc7da48b856d87a5f035a9b6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_candidate_iris_use_the_right_template",
      "name": "test_candidate_iris_use_the_right_template",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L118-L130",
      "signature": "def test_candidate_iris_use_the_right_template(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a06a7d4b045d72f2025844868b15f608936478f274ad651e8320c458c63a12fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IriConversionTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_efo_namespace_to_curie",
      "name": "test_efo_namespace_to_curie",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L96-L100",
      "signature": "def test_efo_namespace_to_curie(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "060a2adccc0889207580cc732a5c2befeff15fc39f9786f63eb7e23754c3e8e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IriConversionTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_multi_underscore_prefix_splits_on_the_last_underscore",
      "name": "test_multi_underscore_prefix_splits_on_the_last_underscore",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L108-L112",
      "signature": "def test_multi_underscore_prefix_splits_on_the_last_underscore(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ae7cab2b2664d9bebbbe459bece199450362fe7d8502d3a235be0fbb0628c15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IriConversionTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_obo_purl_to_curie",
      "name": "test_obo_purl_to_curie",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L90-L94",
      "signature": "def test_obo_purl_to_curie(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d152586b78706bfe926fc072b3cbf483e45244cf58c932c36ff561e55ec4b62",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IriConversionTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_orphanet_namespace_to_curie",
      "name": "test_orphanet_namespace_to_curie",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L102-L106",
      "signature": "def test_orphanet_namespace_to_curie(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27c81e82c7c30eed249ea94e4dc9a544e196d491f9f13ff5020688a37d177507",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IriConversionTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_unconvertible_iris_return_none",
      "name": "test_unconvertible_iris_return_none",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L114-L116",
      "signature": "def test_unconvertible_iris_return_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2906f98c458ea6060750b81c941d87ebca7f611a634af6a0cdfcb34ef0a42a24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IriConversionTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests",
      "name": "LabelMatchingTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L133-L157",
      "signature": "class LabelMatchingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "94832c855215aa9c4750a2700318d3c5f6166585caa3057ad869fd2982a53128",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_match_type_distinguishes_label_synonym_and_partial",
      "name": "test_match_type_distinguishes_label_synonym_and_partial",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L149-L157",
      "signature": "def test_match_type_distinguishes_label_synonym_and_partial(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "13bd7f236ee69b1f65d73eaa807377da655869c7c883bbd389e8de18ba68b2cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelMatchingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_normalize_folds_case_and_whitespace_only",
      "name": "test_normalize_folds_case_and_whitespace_only",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L134-L139",
      "signature": "def test_normalize_folds_case_and_whitespace_only(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c033f8cd85e1aa78bb7421c0d2136bbbc6a2d4f6945152570129e8b818cf223c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelMatchingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_synonyms_collected_from_every_field_spelling",
      "name": "test_synonyms_collected_from_every_field_spelling",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L141-L147",
      "signature": "def test_synonyms_collected_from_every_field_spelling(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f4041a52460a1669acc721d20e5eb2fb7f81dc47e178e2281560ac2ed5c9263",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LabelMatchingTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "name": "LiveApiTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L776-L810",
      "signature": "class LiveApiTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8495cba4434a896e44602c4483728d1e6517bd9998363734a7532284bc8899d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_exact_true_alone_is_not_exact_label_matching",
      "name": "test_exact_true_alone_is_not_exact_label_matching",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L779-L783",
      "signature": "def test_exact_true_alone_is_not_exact_label_matching(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a56a4f56727535c9d6fcdc6860cb8410cc5bd529a47a770f260201c58ce56de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_iri_fallback_resolves_a_term_missing_from_the_obo_id_index",
      "name": "test_iri_fallback_resolves_a_term_missing_from_the_obo_id_index",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L800-L803",
      "signature": "def test_iri_fallback_resolves_a_term_missing_from_the_obo_id_index(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66b9a360596efb6f51bf02c6ea5e8f13d7b658e7bf873f3743d1747ef0c23c5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_obsolete_term_carries_its_replacement",
      "name": "test_obsolete_term_carries_its_replacement",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L785-L790",
      "signature": "def test_obsolete_term_carries_its_replacement(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7079cb86ecca28627f32ea8fcc3a3d0aaa0902c003a37ca99ed11c9e11f33df4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_orphanet_override_resolves",
      "name": "test_orphanet_override_resolves",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L805-L807",
      "signature": "def test_orphanet_override_resolves(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bacf8d9ef59cf20a361ec8b432c72f1f42ee73049e3d68261503022c2f725af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_search_cannot_report_obsolescence",
      "name": "test_search_cannot_report_obsolescence",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L792-L798",
      "signature": "def test_search_cannot_report_obsolescence(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "369ab918d7a2656c10965e6771dac0a54e421e1077ed01a5f7d51c8e253d72d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_unknown_id_resolves_to_nothing",
      "name": "test_unknown_id_resolves_to_nothing",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L809-L810",
      "signature": "def test_unknown_id_resolves_to_nothing(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc348ae2227e28b54fe067101c468950dd90ffa6739a6d11b4824fc1cbd5ece3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "name": "LookupPrefixCliTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L604-L701",
      "signature": "class LookupPrefixCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e2101927219d20adad84c76a4fe95301604503e35b8e1cf8bebfa33966ab4c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_blanks_identifiers_org_when_resolver_rejects",
      "name": "test_lookup_blanks_identifiers_org_when_resolver_rejects",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L672-L686",
      "signature": "def test_lookup_blanks_identifiers_org_when_resolver_rejects(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f9852ad774f93860ea2e3d7b028555be0f9762eede00ec9c20885445d0653c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_chebi_keeps_embedded_prefix_in_miriam_url",
      "name": "test_lookup_chebi_keeps_embedded_prefix_in_miriam_url",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L656-L670",
      "signature": "def test_lookup_chebi_keeps_embedded_prefix_in_miriam_url(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "688f7b8fbbd039692bfb6298d50a641d3958189d4521327c5e9b59d3decb61bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_oba_leaves_identifiers_org_empty",
      "name": "test_lookup_oba_leaves_identifiers_org_empty",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L647-L654",
      "signature": "def test_lookup_oba_leaves_identifiers_org_empty(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0bc9eaddaaf988abe6211da239b33dfe5384eb9e8ae2f5b96e1071231644acb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_orphanet_emits_miriam_url_not_preferred_prefix",
      "name": "test_lookup_orphanet_emits_miriam_url_not_preferred_prefix",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L630-L645",
      "signature": "def test_lookup_orphanet_emits_miriam_url_not_preferred_prefix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b526f987b790d494b3361d88f3c9df630e020ad4343d4dfae1fad5c32d51f48f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_uses_bioregistry_then_identifiers",
      "name": "test_lookup_uses_bioregistry_then_identifiers",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L611-L628",
      "signature": "def test_lookup_uses_bioregistry_then_identifiers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "715e27c97c78a379b1540fe79eb57582efcd85d5a4d63302ea3706d3b3a6d86b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_malformed_input_does_not_hit_the_network",
      "name": "test_malformed_input_does_not_hit_the_network",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L605-L609",
      "signature": "def test_malformed_input_does_not_hit_the_network(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "30b704e26dc1cc9fa12b5044c83bc834e9108665b4eb6a686e7b23d6564841a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_no_input_exits_two",
      "name": "test_no_input_exits_two",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L697-L701",
      "signature": "def test_no_input_exits_two(self): # pytest captures stdin, so isatty() is False unless we force a TTY.",
      "exported": true,
      "origin": "ast",
      "body_hash": "592d3bf6a5a1e5119fefac14e3ccbc7444658fcddf1ba6cde22729bc32defff4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_unknown_prefix_from_404",
      "name": "test_unknown_prefix_from_404",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L688-L695",
      "signature": "def test_unknown_prefix_from_404(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bf226a4cdb71d472407e22c1ffebc69616d6e3c4ea54e01e3ba01fdddaed3e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LookupPrefixCliTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests",
      "name": "MapTermsTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L738-L772",
      "signature": "class MapTermsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5af656c5fdd56c7de8dc4bea678851c9601b52b05f5eaec2c6b1584122ffe069",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_missing_ontology_exits_two",
      "name": "test_missing_ontology_exits_two",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L765-L767",
      "signature": "def test_missing_ontology_exits_two(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "78786409d92610717469dc7554a404bac57d27e5b17c00abefe6671fd9bb43b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MapTermsTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_no_input_exits_two",
      "name": "test_no_input_exits_two",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L769-L772",
      "signature": "def test_no_input_exits_two(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "03e24bbfd620ab8f191335ea494b8428f22d8db2eae7139b69e02389cf9912b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MapTermsTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_safe_only_drops_weak_hits",
      "name": "test_safe_only_drops_weak_hits",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L739-L758",
      "signature": "def test_safe_only_drops_weak_hits(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8385d0820f98660e6629e17e2a099a482ea7e59156d1f7ec33174f2e6b110d55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MapTermsTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_unresolved_row_has_no_curie",
      "name": "test_unresolved_row_has_no_curie",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L760-L763",
      "signature": "def test_unresolved_row_has_no_curie(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e79d3249e0757ff0499677d5e3302349654f0a5cd4ddc3feadba4c3fecc5f77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MapTermsTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "name": "PrefixHelperTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L491-L601",
      "signature": "class PrefixHelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ee0744a4cc140a11b58cd47b283fe86c407575d4b3687e5230276015abdbcbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_classify_does_not_template_landing_pages",
      "name": "test_classify_does_not_template_landing_pages",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L557-L563",
      "signature": "def test_classify_does_not_template_landing_pages(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8805f1991c6d4ba3e790c5e78013f90b497e589772e0a29f7026115c79db007b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_identifiers_resolver_url_keeps_the_colon",
      "name": "test_identifiers_resolver_url_keeps_the_colon",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L516-L519",
      "signature": "def test_identifiers_resolver_url_keeps_the_colon(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6c55d048f1b99a4ace0f74b052bc70d9b377f84cd58afa439be8e39eaa3fad4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_invalid_local_id_is_caught_without_a_network_call",
      "name": "test_invalid_local_id_is_caught_without_a_network_call",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L538-L541",
      "signature": "def test_invalid_local_id_is_caught_without_a_network_call(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0807aeda60ad11dd98935bd5d9c625d94d8df344485fc2b6753ac79a8bc3ab4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_chebi_keeps_embedded_prefix",
      "name": "test_landing_pages_chebi_keeps_embedded_prefix",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L574-L582",
      "signature": "def test_landing_pages_chebi_keeps_embedded_prefix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd64342a245312d8c019ab71d4c22aff324765d0f20aadb8747bc29d6768b702",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_hp_uses_miriam_and_ontobee_mapping",
      "name": "test_landing_pages_hp_uses_miriam_and_ontobee_mapping",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L565-L572",
      "signature": "def test_landing_pages_hp_uses_miriam_and_ontobee_mapping(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fee3e607f3ccad274dc41edd9acfe2878cf1c1d232ad77367e530eab7db48a51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_oba_has_no_identifiers_org",
      "name": "test_landing_pages_oba_has_no_identifiers_org",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L594-L601",
      "signature": "def test_landing_pages_oba_has_no_identifiers_org(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e7126f11305ab9ef268476301ff17b9f9e9d91718d9efec84d9ca83f6ab0b12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_orphanet_uses_miriam_namespace_not_preferred",
      "name": "test_landing_pages_orphanet_uses_miriam_namespace_not_preferred",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L584-L592",
      "signature": "def test_landing_pages_orphanet_uses_miriam_namespace_not_preferred(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a883f6a6caa8953d413a2db651df65cfb3476db6954d8a84dff768c6b5048a71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_local_pattern_is_the_local_id_only",
      "name": "test_local_pattern_is_the_local_id_only",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L497-L507",
      "signature": "def test_local_pattern_is_the_local_id_only(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5416c9543b1c7d764ad1955e0f4853a33bb7c192350ac6465f48c9c74b32bc64",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_preferred_prefix_is_ok_in_either_case",
      "name": "test_preferred_prefix_is_ok_in_either_case",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L521-L525",
      "signature": "def test_preferred_prefix_is_ok_in_either_case(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed77019295d9d8e6f26d49fea3f65874e70561721269f35fc61f0583b5bbe659",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_reference_detail_overrides_for_invalid_local",
      "name": "test_reference_detail_overrides_for_invalid_local",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L547-L555",
      "signature": "def test_reference_detail_overrides_for_invalid_local(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "28c5e97d93ace1dbb24f75ab55846ad6c4dc7cba79fe0cdb75befe6298b8b4a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_split_query_handles_prefix_and_curie",
      "name": "test_split_query_handles_prefix_and_curie",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L492-L495",
      "signature": "def test_split_query_handles_prefix_and_curie(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40e4758e7846876f108fa9a63a5be0a86f46f8ea72d2b937912d7e41222dfcf3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_synonym_curie_still_builds_the_preferred_form",
      "name": "test_synonym_curie_still_builds_the_preferred_form",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L532-L536",
      "signature": "def test_synonym_curie_still_builds_the_preferred_form(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "af3be25029e0521c58b4f45f91554d7faae1b11815318f9dfe03f943009356b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_synonym_prefix_is_flagged",
      "name": "test_synonym_prefix_is_flagged",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L527-L530",
      "signature": "def test_synonym_prefix_is_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c134443146668390f8edb4e57a467b717afa199b722c4d7c849378e881c66e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_unknown_prefix",
      "name": "test_unknown_prefix",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L543-L545",
      "signature": "def test_unknown_prefix(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "359fe383ad0dba643cc7bc8356b31b6ec0ee5e47e31f9d0b3a6dc563d157bff6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_uri_format_and_ontobee_url",
      "name": "test_uri_format_and_ontobee_url",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L509-L514",
      "signature": "def test_uri_format_and_ontobee_url(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1c2f4f8e2a068666e1edbaee8a0c84a49cafb59d006e08df2444c5148a6fa13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrefixHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests",
      "name": "ResolveStrategyTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L194-L241",
      "signature": "class ResolveStrategyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8807202d22b1840fe0791804efc2fb2f66610f29829f02d222a22d5d3986b6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_exact_only_never_escalates",
      "name": "test_exact_only_never_escalates",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L223-L235",
      "signature": "def test_exact_only_never_escalates(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f99ba712a65e87200070eaf2af025af0187377faf6f6308389c818356b1c0dd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveStrategyTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_exact_only_never_escalates.fake_search",
      "name": "fake_search",
      "kind": "function",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L226-L228",
      "signature": "def fake_search(text, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b4638edb043f9c9a65bfaf086bd098e05d094166b330932e41764fc0aad2a5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_escalates_when_exact_finds_nothing",
      "name": "test_ladder_escalates_when_exact_finds_nothing",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L209-L221",
      "signature": "def test_ladder_escalates_when_exact_finds_nothing(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "35ddffdf9f82ab67d5e95d919c9e5742a2e58ed11137a1855056b81ff5398d7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveStrategyTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_escalates_when_exact_finds_nothing.fake_search",
      "name": "fake_search",
      "kind": "function",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L212-L214",
      "signature": "def fake_search(text, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b59ebc58762ce84c6e0b0005c8b8818cfe2b98107a36647496b6a3f73f6da7af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_stops_at_the_first_strategy_that_hits",
      "name": "test_ladder_stops_at_the_first_strategy_that_hits",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L195-L207",
      "signature": "def test_ladder_stops_at_the_first_strategy_that_hits(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "420d212cf1375441bc62c01bb051c3a61daf99879fd853d1729394c6b63761e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveStrategyTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_stops_at_the_first_strategy_that_hits.fake_search",
      "name": "fake_search",
      "kind": "function",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L198-L200",
      "signature": "def fake_search(text, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8085c74759cc3dff445da3006d12bc3e76c701955d876779352c806d0867d4a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_unresolved_query_becomes_a_visible_row",
      "name": "test_unresolved_query_becomes_a_visible_row",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L237-L241",
      "signature": "def test_unresolved_query_becomes_a_visible_row(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9a42c49990042ccf2db12702cc8b620bf18a89851d0b5b844c99e71adec9485",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveStrategyTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "name": "ValidateTermTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L244-L346",
      "signature": "class ValidateTermTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f2d508de0bf5f07648e7dd0c9f3e67cbe0056bfc308217aa35940d7a734ef83",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "name": "check",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L245-L251",
      "signature": "def check(self, term, curie=\"UBERON:0002107\", label=None, branch=None, ontologies=None, ancestors=())",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d18a34fa064e0170a8389cb3a64c69d51a7f5b103a71f153fbd62fa869e9639",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "name": "live_term",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L253-L265",
      "signature": "def live_term(self, **overrides)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8399a6c82c53a6ce09209711f11d3d39c28ad104800d7f1bc8212af62824254",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_a_term_is_in_its_own_branch",
      "name": "test_a_term_is_in_its_own_branch",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L327-L329",
      "signature": "def test_a_term_is_in_its_own_branch(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5881d986a825554bda5418e27693574685799ac09d923787bd68af9b60cd75fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_branch_membership_passes_and_fails",
      "name": "test_branch_membership_passes_and_fails",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L320-L325",
      "signature": "def test_branch_membership_passes_and_fails(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "49be27780adc23e173fe1181764f38ea9494f718575d76bfe0ce8813b43cc33c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_failure_beats_warning",
      "name": "test_failure_beats_warning",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L342-L346",
      "signature": "def test_failure_beats_warning(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2dd4772551c90b2ec8dceb50a2c69e34b9399a8e21ff3ce744b762bde6897ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_imported_only_term_warns",
      "name": "test_imported_only_term_warns",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L331-L336",
      "signature": "def test_imported_only_term_warns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3449585629f578ca1ca1502c3e850d382e49ace3b7ff78de396303c96894da44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_comparison_is_case_insensitive",
      "name": "test_label_comparison_is_case_insensitive",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L307-L308",
      "signature": "def test_label_comparison_is_case_insensitive(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "780545db4638acafa9cdfbc5b2c7721fc8e24d469a5521706e94c19864bb7cea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_mismatch_reports_both_labels",
      "name": "test_label_mismatch_reports_both_labels",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L301-L305",
      "signature": "def test_label_mismatch_reports_both_labels(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "83ebacd35c88c68a8c666dfc23ce66990c17625a874710ed2ebb7e22ce58edfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_malformed_curie_is_rejected_without_a_lookup",
      "name": "test_malformed_curie_is_rejected_without_a_lookup",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L272-L278",
      "signature": "def test_malformed_curie_is_rejected_without_a_lookup(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "479c9b33f75a2851a38e2df2ddef098505702d895cdecc675ffdd1469fe8eeae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_missing_term_is_not_found",
      "name": "test_missing_term_is_not_found",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L280-L281",
      "signature": "def test_missing_term_is_not_found(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f2502154846d5637ef7933adf5789539724e68cbbe5b2d4c56163201e40ff6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_non_class_terms_warn",
      "name": "test_non_class_terms_warn",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L338-L340",
      "signature": "def test_non_class_terms_warn(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df3e30cd956a8c3f3d57e1fdde272bbc1e153b14c10eb042d5de1982feeba9af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_term_reports_its_replacement_as_a_curie",
      "name": "test_obsolete_term_reports_its_replacement_as_a_curie",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L283-L293",
      "signature": "def test_obsolete_term_reports_its_replacement_as_a_curie(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcd8a94d0d5fb3f09f9f88928c19f0e73f8c96ec3129138d290439372bae718a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_without_replacement_says_so",
      "name": "test_obsolete_without_replacement_says_so",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L295-L299",
      "signature": "def test_obsolete_without_replacement_says_so(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2d5188794e645c92cfe3d6e2f693aeaad664397ba5461b66e10321ca9e0d92f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_synonym_label_warns_and_names_the_primary_label",
      "name": "test_synonym_label_warns_and_names_the_primary_label",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L310-L313",
      "signature": "def test_synonym_label_warns_and_names_the_primary_label(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cdac4b88a0b7129f6c0772c9adfa7b0da76fdc9a0d8af2ad619288c790277cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_valid_term_passes",
      "name": "test_valid_term_passes",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L267-L270",
      "signature": "def test_valid_term_passes(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce8ff82f24376700fa9ab3c99fc694df35f56c5235c0e8799dc9d2c3b79d9445",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_wrong_ontology_is_caught",
      "name": "test_wrong_ontology_is_caught",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L315-L318",
      "signature": "def test_wrong_ontology_is_caught(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "054d61e1cf833972980e0e0fdaf5049466a631f4528d06f5e51dbbfa4c0a339c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidateTermTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests",
      "name": "ZoomaHelperTests",
      "kind": "class",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L704-L735",
      "signature": "class ZoomaHelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ccd68e6c3304cc81bae05eccfd89a23d3bf8811e36da6f04dbd6602576da423",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests.test_filter_requires_an_ontology",
      "name": "test_filter_requires_an_ontology",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L705-L711",
      "signature": "def test_filter_requires_an_ontology(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b7b09f5909c126fd783c0b8cdbe844628731e401145b6899d46af5fb9014fed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ZoomaHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests.test_flatten_hit_converts_obo_iris_and_flags_weak_confidence",
      "name": "test_flatten_hit_converts_obo_iris_and_flags_weak_confidence",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L713-L726",
      "signature": "def test_flatten_hit_converts_obo_iris_and_flags_weak_confidence(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c17cf3c61125c9a214b7bdd14e5d0efb2a3a8f7f6f8f0a8627e7fe22a57f2ae2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ZoomaHelperTests"
    },
    {
      "id": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests.test_high_confidence_is_safe",
      "name": "test_high_confidence_is_safe",
      "kind": "method",
      "path": "tests/ontology-term-resolution/test_scripts.py",
      "span": "L728-L735",
      "signature": "def test_high_confidence_is_safe(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d58af98191bb9bd20765940b279581789c7067f339238c814c0c64c82fcf78fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ZoomaHelperTests"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py",
      "name": "test_open_notebook_skill.py",
      "kind": "file",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L1-L407",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "452aac3040ee38f9decd8d60274862258f48ecee30819d09bb927cb4017814d4",
      "chars": 15421,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts",
      "name": "TestExampleScripts",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L304-L336",
      "signature": "class TestExampleScripts(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40e223315442b02fcd14b3d119fa74007f536e920b0670c3dcbfdddfa3e41749",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts._check_script",
      "name": "_check_script",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L307-L320",
      "signature": "def _check_script(self, filename)",
      "exported": false,
      "origin": "ast",
      "body_hash": "54dbfcc8da9b7d784138fc5c4d7ec07c78faa58851526ae0daaffc87459e89fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExampleScripts"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_chat_interaction_script_exists",
      "name": "test_chat_interaction_script_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L333-L336",
      "signature": "def test_chat_interaction_script_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f096f9fdbe797acb0f15af6f4b5c6524fdc1c0512f82c3b1f4b9ec9253c93e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExampleScripts"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_notebook_management_script_exists",
      "name": "test_notebook_management_script_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L322-L326",
      "signature": "def test_notebook_management_script_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e963a583d6c25981f55d43fe419225c9a5e0589cf82f1ffaef526105d5bee7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExampleScripts"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_source_ingestion_script_exists",
      "name": "test_source_ingestion_script_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L328-L331",
      "signature": "def test_source_ingestion_script_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7617738042a037d4bac44b902f1c45f300c7c42c48f601fff80998dfb01629",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExampleScripts"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml",
      "name": "TestPyprojectToml",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L339-L353",
      "signature": "class TestPyprojectToml(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "12c444c1cd97d9789e8ab3c7aee8c91ec687b460d24ae6fcf9d42baec94d54b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L343-L345",
      "signature": "def setUpClass(cls)",
      "exported": true,
      "origin": "ast",
      "body_hash": "196508356705e9177801016058f1c5194bc787781b14d6fc02e973efa1650005",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPyprojectToml"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml.test_pyproject_has_project_name",
      "name": "test_pyproject_has_project_name",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L351-L353",
      "signature": "def test_pyproject_has_project_name(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "659efa83da653c9e5c7d8189905858e6ebe634280847d5e6a20cf49621bc6415",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPyprojectToml"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml.test_pyproject_has_version",
      "name": "test_pyproject_has_version",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L347-L349",
      "signature": "def test_pyproject_has_version(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "12f94416c286cd7783714360976dde3df5a71efa5f79b98aa5ee321f1293f36d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPyprojectToml"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "name": "TestReferenceFiles",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L236-L301",
      "signature": "class TestReferenceFiles(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c553e91676e65fe1e3f6eebe4bb462f146ebf7227b62c32ca32bb3a62784386f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "name": "_read_reference",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L239-L247",
      "signature": "def _read_reference(self, filename)",
      "exported": false,
      "origin": "ast",
      "body_hash": "48b53d41abce759b4023c7b9050931387c9cc5e1ed2994639e5208526ca6cf77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestReferenceFiles"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_api_reference_exists_and_comprehensive",
      "name": "test_api_reference_exists_and_comprehensive",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L249-L259",
      "signature": "def test_api_reference_exists_and_comprehensive(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b307633f5908b8b212dfe7c9766fb215a588ff742ecd409e3bafdad382d6fb41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestReferenceFiles"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_api_reference_has_http_methods",
      "name": "test_api_reference_has_http_methods",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L261-L269",
      "signature": "def test_api_reference_has_http_methods(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc1df4c82f3213fc4142fa760b3793032ac0935b34c6819e1ad74b27abc41944",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestReferenceFiles"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_architecture_reference_exists",
      "name": "test_architecture_reference_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L291-L301",
      "signature": "def test_architecture_reference_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0894105ba231a42f65775d8fd8290e2529b0d977ed577e4489e8e36cf5f1a8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestReferenceFiles"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_configuration_reference_exists",
      "name": "test_configuration_reference_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L277-L289",
      "signature": "def test_configuration_reference_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9947a0f9e2ac63828480bc75fd8a2a144a0366e5e1ae58f86970b36add3d50b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestReferenceFiles"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_examples_reference_exists",
      "name": "test_examples_reference_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L271-L275",
      "signature": "def test_examples_reference_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ed8a4d7ce3e409fad8877a983dd669dc78a6724f7b459d4ac18f99b43499699",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestReferenceFiles"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure",
      "name": "TestSkillDirectoryStructure",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L26-L55",
      "signature": "class TestSkillDirectoryStructure(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9c8d78d36ad8323b41ace1e6f1adf7c94744c35fa207127d6bffbdf2d7deb21",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_references_directory_exists",
      "name": "test_references_directory_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L43-L48",
      "signature": "def test_references_directory_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a83c1dd53088408f234e98380cf037fb448cbb6dc3a063a241c205ed73bb7e44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillDirectoryStructure"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_scripts_directory_exists",
      "name": "test_scripts_directory_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L50-L55",
      "signature": "def test_scripts_directory_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c90cc0a81b28629cf8bf2869837501f8cf93d7bf0a6950301509435a66ab8fd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillDirectoryStructure"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_skill_directory_exists",
      "name": "test_skill_directory_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L29-L34",
      "signature": "def test_skill_directory_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "053c22297e296864d1154bc59508aeec9f5a251a52788699f2fbf5b5f697e448",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillDirectoryStructure"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_skill_md_exists",
      "name": "test_skill_md_exists",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L36-L41",
      "signature": "def test_skill_md_exists(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b41932d32ad1a6ad45c6402bb63d91a5a76ab381a7c0a7828362ebc3361c24d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillDirectoryStructure"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "name": "TestSkillMdApiEndpointCoverage",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L356-L402",
      "signature": "class TestSkillMdApiEndpointCoverage(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ec279e44567414a81e5f4e81d8fa18f71082a4087ff089379ea30f8a7682c60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L360-L366",
      "signature": "def setUpClass(cls)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0f277ea9fd21cf33fdf005ce88012a52440a8785804fcf5af6e73127b1126ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_chat_endpoints",
      "name": "test_covers_chat_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L380-L382",
      "signature": "def test_covers_chat_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3008dc830e31d88418c0a159dba3fc158b2ddc3afb5bcd88860685c216a8a396",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_credential_management",
      "name": "test_covers_credential_management",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L400-L402",
      "signature": "def test_covers_credential_management(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b806c00d3de0ae082cdc741b278db2adc3f551f55261dd70969ffb0167babf0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_model_management",
      "name": "test_covers_model_management",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L396-L398",
      "signature": "def test_covers_model_management(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "132189743ee81d0bb520c258aa22adf8bc44c03f5565e1fb83e710d77c628e07",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_note_endpoints",
      "name": "test_covers_note_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L376-L378",
      "signature": "def test_covers_note_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "057f49577c7326c35a2418cb417753de5631c6a8b0ae7629baa902887903d011",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_notebook_endpoints",
      "name": "test_covers_notebook_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L368-L370",
      "signature": "def test_covers_notebook_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3581b38cfb7f95ef84927f6c49e2e6eb5a4985fc9b5fcf4684be22531be92250",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_podcast_endpoints",
      "name": "test_covers_podcast_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L388-L390",
      "signature": "def test_covers_podcast_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5f6a2bc19475b6ab227cdb28e1496be0662efba37138ea653c5dfea045d7d56",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_search_endpoints",
      "name": "test_covers_search_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L384-L386",
      "signature": "def test_covers_search_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "71e6c04f889c876c84ebb78abb8e08a48fca7669a1000361e477b886aa0ee4dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_source_endpoints",
      "name": "test_covers_source_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L372-L374",
      "signature": "def test_covers_source_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c581e04b889ffe2449fa8ce62d38caa377c6ec5b27dbb2ea1fbe12ab9cb79426",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_transformation_endpoints",
      "name": "test_covers_transformation_endpoints",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L392-L394",
      "signature": "def test_covers_transformation_endpoints(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3584e64c9c092e9853d3d92915afc74b21190718274cc229361647e73842475",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdApiEndpointCoverage"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "name": "TestSkillMdContent",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L111-L233",
      "signature": "class TestSkillMdContent(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "63e83bdfa49305a0e0372393e4309760d96738b9eec8c251be2913fbb05fff6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L115-L117",
      "signature": "def setUpClass(cls)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e25375ad6e1719c0910c0ef2e9d21df8b437e10b18567a6a901c712c663c32b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_content_length_sufficient",
      "name": "test_content_length_sufficient",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L227-L233",
      "signature": "def test_content_length_sufficient(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bc63e7971230d876faad1e0108776acb02ae0916f0270cdc7a9cfe91206c0ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_api_base_url",
      "name": "test_has_api_base_url",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L147-L149",
      "signature": "def test_has_api_base_url(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c69286de6199ab462ab9a8ff4d4a0b08cec4b4271f182dfccb763b585dd93745",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_api_reference_section",
      "name": "test_has_api_reference_section",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L192-L198",
      "signature": "def test_has_api_reference_section(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a86eea0a26c4247e7535eb1ec841325356cb6772095d42866d5544bf71275fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_bash_code_examples",
      "name": "test_has_bash_code_examples",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L204-L209",
      "signature": "def test_has_bash_code_examples(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0aa46c1a279df34c7c72ed53f2deff4a10c77464d8ff125bbc31b883e2dcf244",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_core_features_section",
      "name": "test_has_core_features_section",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L181-L190",
      "signature": "def test_has_core_features_section(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b56c343d5e2449a477410ae81cc939c589bbeb53b43da7635d189f039605046a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_docker_setup",
      "name": "test_has_docker_setup",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L142-L145",
      "signature": "def test_has_docker_setup(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3db4c2ebcc5db6b5c7754645b7723c72afcec80dd3a2682143fbe5a07411e1a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_environment_variable_info",
      "name": "test_has_environment_variable_info",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L219-L225",
      "signature": "def test_has_environment_variable_info(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4aa401a05a113cc51c047a6459b4fd3d58f1799e353cd659a384c129418c258a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_installation_instructions",
      "name": "test_has_installation_instructions",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L211-L217",
      "signature": "def test_has_installation_instructions(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "12740423bc4baca6ac2f7ba1ef831ee3e98fb2d91eb91bfc67a78a10b4280a70",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_overview_section",
      "name": "test_has_overview_section",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L126-L132",
      "signature": "def test_has_overview_section(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c554bff8e5df0e45c9c4e9086374add6e6d8777c6c280d7a56d8437e74365859",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_python_code_examples",
      "name": "test_has_python_code_examples",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L200-L202",
      "signature": "def test_has_python_code_examples(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e0e4da7a4a5ae8449de6fb937f67496b1576fe1633e46eb37be59163c99312e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_quick_start_section",
      "name": "test_has_quick_start_section",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L134-L140",
      "signature": "def test_has_quick_start_section(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8dbdd25f610b9233eb7463fb22fe47d1c989114f7c4df9f45d00c29710153117",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_title_heading",
      "name": "test_has_title_heading",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L119-L124",
      "signature": "def test_has_title_heading(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab7217731b007066e744b0d73a2b4a81a5e7c56cd40c3f0ad6e71c224029761a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_mentions_multiple_ai_providers",
      "name": "test_mentions_multiple_ai_providers",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L167-L179",
      "signature": "def test_mentions_multiple_ai_providers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b652cb52ab4a969c8f75b9d465de2a612c08aa09691304680656af8d8bb4da99",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_mentions_notebooklm_alternative",
      "name": "test_mentions_notebooklm_alternative",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L151-L157",
      "signature": "def test_mentions_notebooklm_alternative(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "79bd053edcbc50e4d994c46e36c738b871629fc026dd7a75fc70123a800b4abe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_mentions_self_hosted",
      "name": "test_mentions_self_hosted",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L159-L165",
      "signature": "def test_mentions_self_hosted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "229e7ce58f94b3f53c549c5414dee6f9b05043cb33804ffafb04c383ab9024db",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdContent"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "name": "TestSkillMdFrontmatter",
      "kind": "class",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L58-L108",
      "signature": "class TestSkillMdFrontmatter(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "857d9b73d1e35b6c3cc525aaceaae332d1864b0d331233ad762a14fcd1696b46",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L62-L67",
      "signature": "def setUpClass(cls)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2044de951b160396e2b0a9f0b11581e394b21109d27a030b61bb2823d372211",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdFrontmatter"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_description",
      "name": "test_frontmatter_has_description",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L86-L97",
      "signature": "def test_frontmatter_has_description(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "738fc58c06eac0b4aaff297e90385262fd68fd67ef8cbaabe0c8cf00f661ec7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdFrontmatter"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_license",
      "name": "test_frontmatter_has_license",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L99-L102",
      "signature": "def test_frontmatter_has_license(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de72c3f194074609e2f816756ad519f61cfa713a0f45eacf04d1012b425dcbfb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdFrontmatter"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_metadata_author",
      "name": "test_frontmatter_has_metadata_author",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L104-L108",
      "signature": "def test_frontmatter_has_metadata_author(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "948f22f3a7e29030b4f0e745045cb62407ba019408aa9b95eaa7806dcd11885c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdFrontmatter"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_name",
      "name": "test_frontmatter_has_name",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L81-L84",
      "signature": "def test_frontmatter_has_name(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccc293b3b8d4249d41a1b42485e37afd09b9ce5890dfb99485271685b96160eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdFrontmatter"
    },
    {
      "id": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_has_yaml_frontmatter",
      "name": "test_has_yaml_frontmatter",
      "kind": "method",
      "path": "tests/open-notebook/test_open_notebook_skill.py",
      "span": "L69-L79",
      "signature": "def test_has_yaml_frontmatter(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7f858ad8f90f5ae7f15f4b037398d745b92055d9fc25c91224a4c57fa84fb1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillMdFrontmatter"
    },
    {
      "id": "tests/openpiv/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L1-L494",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "05a70c7cb97367297ca9d1ae9b40f6c2eec7142f2efebf1b3f0350f72d70e011",
      "chars": 22313,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "name": "AnalyticFlowTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L325-L399",
      "signature": "class AnalyticFlowTests(AnalyzerFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9cc0964af1cbdb2c65578edeb3f347712f62564d27e74be1a43733852e090d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "name": "grid",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L331-L336",
      "signature": "def grid(self, descending_y: bool) -> tuple[np.ndarray, np.ndarray]",
      "exported": true,
      "origin": "ast",
      "body_hash": "44e348d7fb2c74950ff4acf699ba0d58f6ec3e447771ffd686ab4c5b1aa68a08",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_supplied_spacing_overrides_the_inferred_one",
      "name": "test_a_supplied_spacing_overrides_the_inferred_one",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L382-L392",
      "signature": "def test_a_supplied_spacing_overrides_the_inferred_one(self) -> None: # The gradients are per unit length, so halving the assumed spacing # doubles every derivative.",
      "exported": true,
      "origin": "ast",
      "body_hash": "27dc07f4f5ff9ecb08d5ab97ea89dd76528eb5c54f4b3217ca4f8d344045193a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_uniform_flow_has_neither_vorticity_nor_strain",
      "name": "test_a_uniform_flow_has_neither_vorticity_nor_strain",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L394-L399",
      "signature": "def test_a_uniform_flow_has_neither_vorticity_nor_strain(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "749d8048db14b5d58b0807b4ca00c893902364f249a62b62eff01690e0925da1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_incompressible_extension_gives_opposite_normal_strains",
      "name": "test_incompressible_extension_gives_opposite_normal_strains",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L371-L380",
      "signature": "def test_incompressible_extension_gives_opposite_normal_strains(self) -> None: # u = a*x, v = -a*y is divergence free, so exx = a and eyy = -a.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7241b34cc59170056241c8890f97448f9a8204ebcec0e640c9b9abc532ec871a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_pure_shear_splits_between_vorticity_and_shear_strain",
      "name": "test_pure_shear_splits_between_vorticity_and_shear_strain",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L360-L369",
      "signature": "def test_pure_shear_splits_between_vorticity_and_shear_strain(self) -> None: # u = k*y, v = 0: dv/dx - du/dy = -k, and exy = 0.5*(du/dy + dv/dx) = k/2.",
      "exported": true,
      "origin": "ast",
      "body_hash": "81a57841d1ddd55f078eb86ce7b0f6193e86368b389cbfad524bffd3fcffc06b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_rotation_carries_no_strain",
      "name": "test_rotation_carries_no_strain",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L351-L358",
      "signature": "def test_rotation_carries_no_strain(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b234a9ccf192c00b9260a6ee63224c3b0316f9dd2e33e27c012f5cdd13be292e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_solid_body_rotation_has_vorticity_twice_the_rate",
      "name": "test_solid_body_rotation_has_vorticity_twice_the_rate",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L338-L349",
      "signature": "def test_solid_body_rotation_has_vorticity_twice_the_rate(self) -> None: # u = -omega*y, v = omega*x is rigid rotation at omega; its vorticity # dv/dx - du/dy is exactly 2*omega everywhere, including at the edges, # because the field is linear and np.gradient is exact for linear data.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d2a5db1819fd039b39a0704714b6ce78558b41932aa040e3892cc1c6929b561",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyticFlowTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "name": "AnalyzerFixtureCase",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L267-L297",
      "signature": "class AnalyzerFixtureCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ad06d1406dce0dd05f1ffba28c8b3c67903c5338ca39168233fc9c698a4112c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "name": "analyzer",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L279-L297",
      "signature": "def analyzer( self, u: np.ndarray, v: np.ndarray, x: np.ndarray, y: np.ndarray, flags: np.ndarray | None = None, ) -> analyze.PIVAnalyzer",
      "exported": true,
      "origin": "ast",
      "body_hash": "464ada37e622b8bab822dedb8b915103e59a4ec61cbc8a72fdf51ee8d4a64a23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyzerFixtureCase"
    },
    {
      "id": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L273-L277",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "de0f7e99785597582804aa3ed04e97b0d9f2262e26119c25a3f0a5b381566714",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AnalyzerFixtureCase"
    },
    {
      "id": "tests/openpiv/test_scripts.py#BundledExampleTests",
      "name": "BundledExampleTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L481-L489",
      "signature": "class BundledExampleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ea4f8d1c42ae86a435ace6ec51f54d96d4b638cb41a93d531c93594d56f9727",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#BundledExampleTests.test_the_example_pair_ships_inside_the_installed_openpiv",
      "name": "test_the_example_pair_ships_inside_the_installed_openpiv",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L482-L489",
      "signature": "def test_the_example_pair_ships_inside_the_installed_openpiv(self) -> None: # run_example.py's whole premise is that no external data is needed, so # if upstream drops these files the script is broken.",
      "exported": true,
      "origin": "ast",
      "body_hash": "88f0f4a4b0dbc9fb55dd56e49c869a9dfb4f9bcae6b43440322da11b7a752c5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledExampleTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#CliArgumentTests",
      "name": "CliArgumentTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L250-L264",
      "signature": "class CliArgumentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "088d2ee4ce69e141d861eb8058f7d9c9754726f8eb2be988f3c7ad46054064b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#CliArgumentTests.test_exactly_two_images_are_required",
      "name": "test_exactly_two_images_are_required",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L251-L264",
      "signature": "def test_exactly_two_images_are_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "74169b5cfcf64ec3a06ccb867a75e3e8ea693be867d39c53732b3b6875dd8a3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliArgumentTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "name": "DisplacementRecoveryTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L65-L215",
      "signature": "class DisplacementRecoveryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d223a8a0160a1a3ad62874eda6be8994cf6132f65f66edafb2cbf8fbd56faf04",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "name": "field",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L92-L106",
      "signature": "def field(self, dy: int, dx: int, **overrides) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "50c1c913878c9b98a02dce092000c426a837f5674b87bd25dae279e872e1d8f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.pair",
      "name": "pair",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L83-L90",
      "signature": "def pair(self, dy: int, dx: int) -> tuple[Path, Path]",
      "exported": true,
      "origin": "ast",
      "body_hash": "4276ecfc59ef07a6aab4edd9f4c1f118a8460a107e17d9521b6ec61552bd3b89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L77-L81",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d9c23a5941ff0cd6bfd123bcb8373b2014e89c7029cb632d2e02e86131ed308",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L69-L75",
      "signature": "def setUpClass(cls) -> None: # A fixed seed keeps the particle pattern -- and therefore the # correlation quality -- identical from run to run.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c226c9494597906df0f279f4a1aeaf57eb92421a2d9bf6db79361b79f19a175",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_downward_shift_is_recovered_as_a_negative_v",
      "name": "test_a_downward_shift_is_recovered_as_a_negative_v",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L122-L129",
      "signature": "def test_a_downward_shift_is_recovered_as_a_negative_v(self) -> None: # transform_coordinates() puts the field in a right-handed y-up frame, # so motion towards higher row indices -- down the image -- is negative # v. Getting this backwards mirrors every reported flow.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d9f88ec6a3ef1fddd41cd080c122effe9a2be588cd26ee7ae86cad51f2acd2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_larger_search_area_still_recovers_the_shift",
      "name": "test_a_larger_search_area_still_recovers_the_shift",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L162-L166",
      "signature": "def test_a_larger_search_area_still_recovers_the_shift(self) -> None: # search_area > window_size switches the correlation to \"linear\"; the # answer must not change.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e6ba5d05974f875f5df81bbbd26f55699f27704e6ce787abee7a8434754af76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_leftward_shift_is_recovered_as_a_negative_u",
      "name": "test_a_leftward_shift_is_recovered_as_a_negative_u",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L117-L120",
      "signature": "def test_a_leftward_shift_is_recovered_as_a_negative_u(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39013534bca69c867ca1d9f242bc0c8f4d77e7e5c1da7e471ab997dfd47591d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_rightward_shift_is_recovered_as_a_positive_u",
      "name": "test_a_rightward_shift_is_recovered_as_a_positive_u",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L108-L115",
      "signature": "def test_a_rightward_shift_is_recovered_as_a_positive_u(self) -> None: # Particles move exactly +4 px in x, so with dt = 1 s and 1 px per unit # every valid vector must read u = 4 and v = 0.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e1c8b9d68aaf7407dd91c260144debdd898749c17c8c9e1e7522d4e181ad6eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_uniform_translation_has_no_vorticity",
      "name": "test_a_uniform_translation_has_no_vorticity",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L200-L215",
      "signature": "def test_a_uniform_translation_has_no_vorticity(self) -> None: # End to end: rigid translation carries no rotation, so the derived # vorticity must stay at the noise level rather than pick up a bias.",
      "exported": true,
      "origin": "ast",
      "body_hash": "78333e1eb987839a786de408a91b241f682221f54fbb989d652620e62013e078",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_dropping_invalid_vectors_leaves_holes_where_they_were_flagged",
      "name": "test_dropping_invalid_vectors_leaves_holes_where_they_were_flagged",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L184-L198",
      "signature": "def test_dropping_invalid_vectors_leaves_holes_where_they_were_flagged(self) -> None: # By default a flagged vector is replaced by the local mean, so the # field has no holes; --drop_invalid must NaN out exactly the flagged # positions and leave every other vector untouched.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a468eecb9c28d82fb1be55816d5aaa0a23b1f86a4607d27cdf580bb8f3b728f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_dt_converts_the_displacement_into_a_velocity",
      "name": "test_dt_converts_the_displacement_into_a_velocity",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L149-L152",
      "signature": "def test_dt_converts_the_displacement_into_a_velocity(self) -> None: # 4 px over 0.5 s is 8 px/s.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a69fcfa41176557bd57448d1b9c0537cc079da01180f18f8a640892b4f65ddb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_every_documented_output_file_is_written",
      "name": "test_every_documented_output_file_is_written",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L168-L182",
      "signature": "def test_every_documented_output_file_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "76da6a39cd90fd260497ab9dd6e247b0fb2048f93d15f06bf6f276db3ec345c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_identical_frames_recover_no_motion",
      "name": "test_identical_frames_recover_no_motion",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L131-L135",
      "signature": "def test_identical_frames_recover_no_motion(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e779bcc7b0a3de4fd8eb45c8a9a5013aece3001d51f986366950532c1aac5c20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_the_grid_geometry_follows_the_window_and_overlap",
      "name": "test_the_grid_geometry_follows_the_window_and_overlap",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L137-L147",
      "signature": "def test_the_grid_geometry_follows_the_window_and_overlap(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc89469457fcf5e39dfe4b88065bea2957ea4de7bc60687fba4a764fae011133",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_the_scaling_factor_is_pixels_per_physical_unit",
      "name": "test_the_scaling_factor_is_pixels_per_physical_unit",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L154-L160",
      "signature": "def test_the_scaling_factor_is_pixels_per_physical_unit(self) -> None: # 4 px at 2 px/mm is 2 mm/s, so u must be divided by the factor, not # multiplied by it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "67e8ea3dfd0e1eb2965b7b1230895247f8774f62f6a4ddbb247a836ccea06044",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DisplacementRecoveryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#FlagsTests",
      "name": "FlagsTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L454-L478",
      "signature": "class FlagsTests(AnalyzerFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "69e24fca6d6fce3a9eebc7b2050169de40e7015d7d5b129aed33985422927943",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#FlagsTests.test_flags_are_loaded_as_a_boolean_mask",
      "name": "test_flags_are_loaded_as_a_boolean_mask",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L455-L464",
      "signature": "def test_flags_are_loaded_as_a_boolean_mask(self) -> None: # runner.py saves them as bool, but a float or int array from an older # run must still index correctly rather than be read as positions.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8d39bbfcd81c8d1cbf97740b85137e9718700dbea6dbbc6b92bb0b38d0b2551",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FlagsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#FlagsTests.test_the_quiver_plot_draws_only_the_valid_vectors",
      "name": "test_the_quiver_plot_draws_only_the_valid_vectors",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L466-L478",
      "signature": "def test_the_quiver_plot_draws_only_the_valid_vectors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6556adf499758bd7f7f79d053beaf56f0dcfc412f51f89d9e637017b1a9822f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FlagsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#GridSpacingTests",
      "name": "GridSpacingTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L300-L322",
      "signature": "class GridSpacingTests(AnalyzerFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38cf2628c4e904ed9aaed9dc69f9c4da849e44e0ab8c68ac22166b7d1c988440",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#GridSpacingTests.test_a_degenerate_axis_falls_back_to_one",
      "name": "test_a_degenerate_axis_falls_back_to_one",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L315-L322",
      "signature": "def test_a_degenerate_axis_falls_back_to_one(self) -> None: # A single-column field has no spacing to infer; 1.0 keeps the # derivative per grid cell instead of dividing by zero.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f8930730c71f14c73aeb0c9ab809b098b6251a1f1c45c61e8830bf37d219bc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GridSpacingTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#GridSpacingTests.test_the_spacing_is_positive_even_when_a_coordinate_runs_backwards",
      "name": "test_the_spacing_is_positive_even_when_a_coordinate_runs_backwards",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L307-L313",
      "signature": "def test_the_spacing_is_positive_even_when_a_coordinate_runs_backwards(self) -> None: # runner.py writes y decreasing; the reported spacing is a magnitude.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c773696af62e964576980f63cddc7dc62cbc44dedceb831b79ff2b274f25c691",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GridSpacingTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#GridSpacingTests.test_the_spacing_is_read_off_the_coordinates_not_assumed",
      "name": "test_the_spacing_is_read_off_the_coordinates_not_assumed",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L301-L305",
      "signature": "def test_the_spacing_is_read_off_the_coordinates_not_assumed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f83d00b5884de0d29e15cfdf244d5176699b6bc6e7de12cbb80ef8bcc670b11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GridSpacingTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#particle_image",
      "name": "particle_image",
      "kind": "function",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L57-L62",
      "signature": "def particle_image(rows: np.ndarray, columns: np.ndarray, dy: int, dx: int) -> np.ndarray",
      "exported": true,
      "origin": "ast",
      "body_hash": "ffec52f68b53336be0afd2d1f2bef12f586d548de7d9bceb789d89479e87b234",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#StatisticsTests",
      "name": "StatisticsTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L411-L451",
      "signature": "class StatisticsTests(AnalyzerFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "be071d1fd3d524f26bfceabc7cb53f17fd16437f49b037a1b7e5d416cf38268f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "name": "field",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L412-L415",
      "signature": "def field(self, u: np.ndarray, v: np.ndarray) -> analyze.PIVAnalyzer",
      "exported": true,
      "origin": "ast",
      "body_hash": "6528b0112cf6cb27be527457ab4c82a81ff753bf7715fec313c10a1b7fc7e8cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#StatisticsTests.test_a_uniform_field_has_zero_fluctuation_and_zero_energy",
      "name": "test_a_uniform_field_has_zero_fluctuation_and_zero_energy",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L417-L423",
      "signature": "def test_a_uniform_field_has_zero_fluctuation_and_zero_energy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cba613687ca4ac58d9816d3a2b9d26196ad74f74a2c941d96b24153d45c1a8b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#StatisticsTests.test_holes_left_by_drop_invalid_are_ignored_not_propagated",
      "name": "test_holes_left_by_drop_invalid_are_ignored_not_propagated",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L445-L451",
      "signature": "def test_holes_left_by_drop_invalid_are_ignored_not_propagated(self) -> None: # --drop_invalid writes NaN where a vector was rejected; the statistics # must describe the surviving vectors instead of returning NaN.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bf7b23e5e1719d94cb40cad961fcb2561f5f92fd5f04fc452e958dc5c7793a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#StatisticsTests.test_subtracting_the_mean_makes_the_rms_offset_invariant",
      "name": "test_subtracting_the_mean_makes_the_rms_offset_invariant",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L435-L443",
      "signature": "def test_subtracting_the_mean_makes_the_rms_offset_invariant(self) -> None: # The fluctuation statistics describe the spread, so adding a uniform # 100 to every vector must move only the means.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d6fc979d5de93ddb261651e15772db1afd84f1a856139e9e756df2e244c53d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#StatisticsTests.test_the_rms_is_the_population_standard_deviation",
      "name": "test_the_rms_is_the_population_standard_deviation",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L425-L433",
      "signature": "def test_the_rms_is_the_population_standard_deviation(self) -> None: # [-2, -2, 2, 2] has mean 0 and population variance 4, so sd = 2 exactly # -- the sample (n-1) convention would give 2.309 instead.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f8427f1f3a2016dad2120a4d418a13c2cfb1820e1272f605be9251a8dd51b16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests",
      "name": "VelocityMagnitudeTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L402-L408",
      "signature": "class VelocityMagnitudeTests(AnalyzerFixtureCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f0b9e647ca97caa153899ab6c26d97c3a1910a7b3a5850148c16d608e8f1727",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests.test_the_magnitude_is_the_euclidean_norm",
      "name": "test_the_magnitude_is_the_euclidean_norm",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L403-L408",
      "signature": "def test_the_magnitude_is_the_euclidean_norm(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f0eebe949bb3a4ac8db2be1d764551fb82fd49c3b3dd10f64653ecf150c29e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityMagnitudeTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#WindowGeometryTests",
      "name": "WindowGeometryTests",
      "kind": "class",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L218-L247",
      "signature": "class WindowGeometryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "152ea3899d51e8bc914bd867284300665cc661f33b8a54abe08fa370f033288f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_a_search_area_smaller_than_the_window_is_refused",
      "name": "test_a_search_area_smaller_than_the_window_is_refused",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L221-L223",
      "signature": "def test_a_search_area_smaller_than_the_window_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cc9efa6b5fc67d59c6aac1f082d4b64347141ff796861fe554df50ab18e0279",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WindowGeometryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_an_overlap_at_or_above_the_window_is_refused",
      "name": "test_an_overlap_at_or_above_the_window_is_refused",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L225-L232",
      "signature": "def test_an_overlap_at_or_above_the_window_is_refused(self) -> None: # overlap == window_size would give a zero step and an infinite grid.",
      "exported": true,
      "origin": "ast",
      "body_hash": "332a7ecc8ad8910d47532d931e9ae06ff6d44599a8e526f78f17007d230bf591",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WindowGeometryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_the_guards_fire_before_the_images_are_opened",
      "name": "test_the_guards_fire_before_the_images_are_opened",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L234-L238",
      "signature": "def test_the_guards_fire_before_the_images_are_opened(self) -> None: # Both paths below do not exist; a FileNotFoundError instead of a # ValueError would mean the geometry check runs too late to be useful.",
      "exported": true,
      "origin": "ast",
      "body_hash": "609ef2dbf3ce7b086676bbac1f1e2d048c798237373dafe55d1dca1afec53cba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WindowGeometryTests"
    },
    {
      "id": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_the_shipped_defaults_satisfy_their_own_guards",
      "name": "test_the_shipped_defaults_satisfy_their_own_guards",
      "kind": "method",
      "path": "tests/openpiv/test_scripts.py",
      "span": "L240-L247",
      "signature": "def test_the_shipped_defaults_satisfy_their_own_guards(self) -> None: # window 32 / overlap 12 / search 38 is a legal combination, so the # documented defaults must reach the image read rather than be refused.",
      "exported": true,
      "origin": "ast",
      "body_hash": "def72ec0b2326b230ae1a54aabb7ef67ab7c552f7748870ea03505d96f26f05b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WindowGeometryTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L1-L600",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "07d9739a90934d5f9eb8e7af6aa792eac8a923c2bafd576a62c02ca9bbf34959",
      "chars": 25406,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "name": "AbsorbanceReaderTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L562-L595",
      "signature": "class AbsorbanceReaderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "65e42c853cad26c3dd5a2ef42afdb18b77af0bb9ac85706ebbb4785e00582605",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L565-L566",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfc815d9b43c4e434fef662700b8fbb6a91a7d494131fde3fb3c369f72e5256",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsorbanceReaderTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_no_pipette_is_loaded_so_no_trash_is_needed",
      "name": "test_no_pipette_is_loaded_so_no_trash_is_needed",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L592-L595",
      "signature": "def test_no_pipette_is_loaded_so_no_trash_is_needed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8343d74ca1eae00fa7d9c94bcf488863696274ef77c0675ddb5bc3f796b6f94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsorbanceReaderTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_lid_is_closed_before_initialisation",
      "name": "test_the_lid_is_closed_before_initialisation",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L574-L577",
      "signature": "def test_the_lid_is_closed_before_initialisation(self) -> None: # Required even when the physical lid starts closed, per the module docs.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdc9607f5ff379f8513c995656cbc3b8747187547060160cdcafc7ca3c30e753",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsorbanceReaderTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_plate_is_moved_onto_the_reader_and_back_to_its_slot",
      "name": "test_the_plate_is_moved_onto_the_reader_and_back_to_its_slot",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L579-L586",
      "signature": "def test_the_plate_is_moved_onto_the_reader_and_back_to_its_slot(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d9b82a47ab6f8450fc3a2f03ff69cdf9764047d3118168db59a91679a763fce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsorbanceReaderTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_read_is_exported_under_a_filename",
      "name": "test_the_read_is_exported_under_a_filename",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L588-L590",
      "signature": "def test_the_read_is_exported_under_a_filename(self) -> None: # Without export_filename the measurements stay in the run only.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c6ff73cdfdbadebe857a42604dc5cf92296e0713ef7d30f30ed2ff85c9abc70",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsorbanceReaderTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_reader_is_initialised_at_both_documented_wavelengths",
      "name": "test_the_reader_is_initialised_at_both_documented_wavelengths",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L568-L572",
      "signature": "def test_the_reader_is_initialised_at_both_documented_wavelengths(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f5d5dc55b68e56299a7c537ff15a25f483d3e8ddbd1941929b9812519dd4db8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AbsorbanceReaderTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#BasicTransferTests",
      "name": "BasicTransferTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L318-L339",
      "signature": "class BasicTransferTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "536cfc0d152994c38903b5c6679571f2a54671f0a368abe96accaa7c13ec5ec9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L321-L322",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfc815d9b43c4e434fef662700b8fbb6a91a7d494131fde3fb3c369f72e5256",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BasicTransferTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_one_tip_is_used_for_the_single_transfer",
      "name": "test_one_tip_is_used_for_the_single_transfer",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L324-L326",
      "signature": "def test_one_tip_is_used_for_the_single_transfer(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c50e20177d0ebdd7f55246656ee1a79f92356f6ef032af086516fe6315e1631",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BasicTransferTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_the_declared_hundred_microlitres_move_from_reservoir_to_plate",
      "name": "test_the_declared_hundred_microlitres_move_from_reservoir_to_plate",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L328-L334",
      "signature": "def test_the_declared_hundred_microlitres_move_from_reservoir_to_plate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61811075c33111ae6c32badd59f1e9cf237803339e21b4a1152506e0b6252093",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BasicTransferTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_the_transfer_stays_within_the_declared_reservoir_volume",
      "name": "test_the_transfer_stays_within_the_declared_reservoir_volume",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L336-L339",
      "signature": "def test_the_transfer_stays_within_the_declared_reservoir_volume(self) -> None: # 1000 uL is loaded into A1; one 100 uL transfer cannot overdraw it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b003fb3424b76dd84ccd0e96daf3a18e60603b3f2fab382769d626ca3669a56",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BasicTransferTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#call_argument",
      "name": "call_argument",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L122-L131",
      "signature": "def call_argument(name: str, method: str, index: int, keyword: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "935ffb902fec538dcbd84c49baf02113414f188bb7312a16564432d7cc6e2418",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#calls",
      "name": "calls",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L87-L119",
      "signature": "def calls(name: str) -> list[tuple[str, list, dict]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cdd1219c06ec694b61abadddb2ab36503f627799a7b783da6700319e9c15c58",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#closing_comment",
      "name": "closing_comment",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L171-L181",
      "signature": "def closing_comment(name: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4bd6fab00842e24b0b3f01114831f6cdc24a82822a7f04412dc10290ffdd2c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#counted",
      "name": "counted",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L184-L185",
      "signature": "def counted(log: list[str], prefix: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "723c39ab45a2c1d0674ec14925674735882e7b023d9123af977f75bbd4a9a37c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#declarations",
      "name": "declarations",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L73-L75",
      "signature": "def declarations(name: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1dfc054fe879442535f2f25963f02de625d67601c25d5b44ddf93bd544109425",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#DeclarationTests",
      "name": "DeclarationTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L196-L232",
      "signature": "class DeclarationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a58889b1eaa90bd8f2fe3e8c2ab3c869e6e38d8a3c371ccc58c8c56b003e5b42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_declares_its_robot_and_api_level",
      "name": "test_each_template_declares_its_robot_and_api_level",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L208-L215",
      "signature": "def test_each_template_declares_its_robot_and_api_level(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd3da949e2685f71d2786694dac05df9f97440e469937417608a66dd935ede89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeclarationTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_exposes_a_single_argument_run_entry_point",
      "name": "test_each_template_exposes_a_single_argument_run_entry_point",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L228-L232",
      "signature": "def test_each_template_exposes_a_single_argument_run_entry_point(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf508064615538329756a0ba84a277331a96c1fa5b5d3fe2c08ce0159b132a3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeclarationTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_names_itself_and_its_purpose",
      "name": "test_each_template_names_itself_and_its_purpose",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L199-L206",
      "signature": "def test_each_template_names_itself_and_its_purpose(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0bc3d50970ad69f863d6a9c40ec95e4d22be5d0b23f0f3c7e2c102624189bc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeclarationTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_no_template_asks_for_a_newer_api_than_the_installed_package",
      "name": "test_no_template_asks_for_a_newer_api_than_the_installed_package",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L217-L226",
      "signature": "def test_no_template_asks_for_a_newer_api_than_the_installed_package(self) -> None: # A protocol declaring an unsupported apiLevel fails analysis before a # single command runs, and the error names the level rather than the bug.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1154f919b94b280f268c3d2c3fbb25dd5e8cbfe140d7d758d036d79265d4bb6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeclarationTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#load_names",
      "name": "load_names",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L134-L147",
      "signature": "def load_names(name: str, method: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1c3c51d5070176db8bccbd52b254bb84a09291b2949f1744d373519aa7c6009",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "name": "PcrSetupTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L481-L559",
      "signature": "class PcrSetupTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "83b1506803b61574f3f777402d8692ac94671d3d817c5d909b6573d060319f25",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L487-L488",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfc815d9b43c4e434fef662700b8fbb6a91a7d494131fde3fb3c369f72e5256",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_each_reaction_gets_one_template_from_its_own_tube",
      "name": "test_each_reaction_gets_one_template_from_its_own_tube",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L514-L524",
      "signature": "def test_each_reaction_gets_one_template_from_its_own_tube(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40ee2ea0122114c1bb19ac05b44c004d09f5e44de6bcd3c28d1bd03ce11eb755",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_every_thermocycler_step_declares_the_reaction_volume",
      "name": "test_every_thermocycler_step_declares_the_reaction_volume",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L554-L559",
      "signature": "def test_every_thermocycler_step_declares_the_reaction_volume(self) -> None: # block_max_volume drives the ramp: understating it under-heats the mix.",
      "exported": true,
      "origin": "ast",
      "body_hash": "78e06d079d56d11a147142774cc6a44be1b45fdc87e231c9d765e768d12e9bc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_one_tip_for_the_master_mix_and_one_per_template",
      "name": "test_one_tip_for_the_master_mix_and_one_per_template",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L526-L527",
      "signature": "def test_one_tip_for_the_master_mix_and_one_per_template(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4abe5c5e9356fc2370ecb15f9aed7bbd2bf349384d55af300a5566ab6b8ec55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_block_and_lid_temperatures_are_the_documented_ones",
      "name": "test_the_block_and_lid_temperatures_are_the_documented_ones",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L536-L543",
      "signature": "def test_the_block_and_lid_temperatures_are_the_documented_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd3fb0c3767c4c6a83ef9977cbfa2869bd561c26df596c0abe7749f401254304",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_cycling_profile_runs_thirty_five_repetitions",
      "name": "test_the_cycling_profile_runs_thirty_five_repetitions",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L529-L534",
      "signature": "def test_the_cycling_profile_runs_thirty_five_repetitions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "814dd95e3564e3e53e272bd3784c377675e08bca38e24881f9329608230d5a7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_declared_master_mix_volume_covers_the_run",
      "name": "test_the_declared_master_mix_volume_covers_the_run",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L504-L512",
      "signature": "def test_the_declared_master_mix_volume_covers_the_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1fa3864f53f20ecfb1584f03b5e4b2545b7428cdcac4d2536c1ca76b365f402",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_lid_is_opened_before_pipetting_and_after_cycling",
      "name": "test_the_lid_is_opened_before_pipetting_and_after_cycling",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L545-L552",
      "signature": "def test_the_lid_is_opened_before_pipetting_and_after_cycling(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "195fe6e34d02abd94f1cb633b6633bee47a0f03e4562bcd1b07660a19b5e7e71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_master_mix_is_distributed_in_one_aspiration",
      "name": "test_the_master_mix_is_distributed_in_one_aspiration",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L494-L502",
      "signature": "def test_the_master_mix_is_distributed_in_one_aspiration(self) -> None: # 8 x 20 uL plus the 10 uL disposal volume is 170 uL, inside a 200 uL # tip -- so the whole plate column is filled from a single draw.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a80037f757e3d2e0c5157d784262edd7be9c92b9e2302a87e429f056ad74446",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_reaction_volume_matches_the_advertised_twenty_five",
      "name": "test_the_reaction_volume_matches_the_advertised_twenty_five",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L490-L492",
      "signature": "def test_the_reaction_volume_matches_the_advertised_twenty_five(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d797c0012ea32a83110831280edfada048c5b166c8ce35302eeec60441eb1e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PcrSetupTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "name": "RobotSpecificApiTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L235-L289",
      "signature": "class RobotSpecificApiTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f88abff02dd555d9da76f0ad44d095966c27638d8d5c1ba054e959e77c0482cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_every_flex_template_with_a_pipette_loads_a_trash_bin",
      "name": "test_every_flex_template_with_a_pipette_loads_a_trash_bin",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L259-L267",
      "signature": "def test_every_flex_template_with_a_pipette_loads_a_trash_bin(self) -> None: # Flex has no fixed trash: a protocol that picks up a tip and never # declares somewhere to drop it fails analysis.",
      "exported": true,
      "origin": "ast",
      "body_hash": "439b4fd1d5c9a96a9b6483d6ebf043d264cdd8e40aea37afd259a3c2ac0ea570",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RobotSpecificApiTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_pipette_names_match_the_robot_line",
      "name": "test_pipette_names_match_the_robot_line",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L269-L278",
      "signature": "def test_pipette_names_match_the_robot_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc5cd9ab10407ded8e6f286f747ed14f84b8e8367c868db1dc8fff39ce8ec602",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RobotSpecificApiTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_flex_templates_use_coordinate_deck_slots",
      "name": "test_the_flex_templates_use_coordinate_deck_slots",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L246-L251",
      "signature": "def test_the_flex_templates_use_coordinate_deck_slots(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6ebb48d9553f828f14178154205d63ec38fe2138ec58a486d1501cbc3b8edac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RobotSpecificApiTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_ot2_template_leaves_the_fixed_trash_alone",
      "name": "test_the_ot2_template_leaves_the_fixed_trash_alone",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L253-L257",
      "signature": "def test_the_ot2_template_leaves_the_fixed_trash_alone(self) -> None: # The OT-2 trash is wired to slot 12; calling load_trash_bin() on an # OT-2 is an error, which is why the template only comments on it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "44235cb496f4ecbb678b0683a2bb99d926a12ce8e000de2acc8fe7aabd4cb72a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RobotSpecificApiTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_ot2_template_uses_numbered_deck_slots",
      "name": "test_the_ot2_template_uses_numbered_deck_slots",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L240-L244",
      "signature": "def test_the_ot2_template_uses_numbered_deck_slots(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "648a3321f0a0a8fddab189747eb2e718bcc7c7c43abb0dabaaaabba32f8f5699",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RobotSpecificApiTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_tip_racks_match_the_robot_line",
      "name": "test_tip_racks_match_the_robot_line",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L280-L289",
      "signature": "def test_tip_racks_match_the_robot_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e495b06284e7465ec923dedb30ed9d9aa08738da703ca31410353da4803fd3fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RobotSpecificApiTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#run_log",
      "name": "run_log",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L78-L84",
      "signature": "def run_log(name: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d9b9103cedb9a83cc04fc0ddd5d86fb560752d4671d90d0715dee8a1ee523ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "name": "RuntimeParameterTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L342-L423",
      "signature": "class RuntimeParameterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa5168e87a7e0c27f733aeea5c13f3ab511df773f46806cc4a704dc6d1f80bdb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "name": "Recorder",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L345-L361",
      "signature": "class Recorder",
      "exported": true,
      "origin": "ast",
      "body_hash": "8afaec0c18bd4efcf59d1da17c97b338bec4270e065b70ebc702f82ccec4712c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L348-L349",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "989e57f35e519b65366600fe7b4945938893b9a5d7e98b01f0daba4826fd53a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder._add",
      "name": "_add",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L351-L352",
      "signature": "def _add(self, kind, **kwargs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "999beb93bdd20a99bb34ebc8d032f1876bec19542969fa3add2ffecf45a24a35",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_bool",
      "name": "add_bool",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L360-L361",
      "signature": "def add_bool(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1180dd0dd621ddb0a1f90d0fb06df3ada3dfcf24727463bb9956be8244e10f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_float",
      "name": "add_float",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L357-L358",
      "signature": "def add_float(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5d9532a34d8d42ba284b02b72567ce454de40a2c54ac9bf987f73d7dd641d67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_int",
      "name": "add_int",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L354-L355",
      "signature": "def add_int(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a52e441dd87e69e810774684c5f09369df1e21056c2b76fc5bb88f2d1ca300a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L363-L366",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7e11f13870ea31bbf4d931e36fc3635466ef7456135a12f81eec97bae22e6d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_distributing_reuses_one_tip",
      "name": "test_distributing_reuses_one_tip",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L416-L417",
      "signature": "def test_distributing_reuses_one_tip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6685f21ed0dab1eb1801a4042422ed0181c9ffe3364c5069aba23248a7a2aa25",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_every_numeric_default_sits_inside_its_own_bounds",
      "name": "test_every_numeric_default_sits_inside_its_own_bounds",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L374-L382",
      "signature": "def test_every_numeric_default_sits_inside_its_own_bounds(self) -> None: # A default outside the range is rejected at run setup, and the operator # sees a validation error rather than the protocol.",
      "exported": true,
      "origin": "ast",
      "body_hash": "44e1672adef4dc77bb4a88968e81f24e7a928973b344051830a24722cfc30fa8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_aspirated_total_is_the_eight_doses_plus_disposal",
      "name": "test_the_aspirated_total_is_the_eight_doses_plus_disposal",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L405-L414",
      "signature": "def test_the_aspirated_total_is_the_eight_doses_plus_disposal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cd60f10839fb0a8d767967d213424c8c1c8e662083611e01e2fc61beb721169",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_defaults_fill_eight_wells_with_fifty_microlitres",
      "name": "test_the_defaults_fill_eight_wells_with_fifty_microlitres",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L397-L403",
      "signature": "def test_the_defaults_fill_eight_wells_with_fifty_microlitres(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f14febf84ec9bce78565d9ddc495e4f245c05af1742012288aa3ce74d48b17be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_dry_run_default_gives_the_one_second_incubation",
      "name": "test_the_dry_run_default_gives_the_one_second_incubation",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L419-L423",
      "signature": "def test_the_dry_run_default_gives_the_one_second_incubation(self) -> None: # The alternative branch waits 60 s; a simulated dry run must not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdd1128a1f146d876f931955bcdacf6ef9e258c176618e5e9df6cf4969db5862",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_sample_ceiling_fits_the_destination_plate",
      "name": "test_the_sample_ceiling_fits_the_destination_plate",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L393-L395",
      "signature": "def test_the_sample_ceiling_fits_the_destination_plate(self) -> None: # A 96-well plate; the ceiling of 12 is one row of a reservoir's worth.",
      "exported": true,
      "origin": "ast",
      "body_hash": "275c80d1d1cf88c4813716df38ece2a9a28610600513ccdc26fba2a05fcb3dd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_three_documented_parameters_are_declared",
      "name": "test_the_three_documented_parameters_are_declared",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L368-L372",
      "signature": "def test_the_three_documented_parameters_are_declared(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c8853835153d539439b7f42bf5f4bdf07817524ba7f88023695e36e120b492f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_volume_ceiling_fits_the_tips_the_template_loads",
      "name": "test_the_volume_ceiling_fits_the_tips_the_template_loads",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L384-L391",
      "signature": "def test_the_volume_ceiling_fits_the_tips_the_template_loads(self) -> None: # 200 uL tips: a maximum above that cannot be aspirated in one go.",
      "exported": true,
      "origin": "ast",
      "body_hash": "07b448eeab62211a850abf9cdf9e746108fb8aca266761c0e2ca807d24c2be66",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RuntimeParameterTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "name": "SerialDilutionTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L426-L478",
      "signature": "class SerialDilutionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6816450027da1e1c61ec8ca6cddba59ed023238751d639a9e87603fe5af2ddd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L433-L434",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbfc815d9b43c4e434fef662700b8fbb6a91a7d494131fde3fb3c369f72e5256",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_every_hundred_microlitre_draw_is_accounted_for",
      "name": "test_every_hundred_microlitre_draw_is_accounted_for",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L446-L449",
      "signature": "def test_every_hundred_microlitre_draw_is_accounted_for(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bfa395b426f6818216b04ac382b3758010110c6ecb0a091e1d0c54d4dee24c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_one_tip_per_dilution_step_plus_the_diluent_and_cleanup_tips",
      "name": "test_one_tip_per_dilution_step_plus_the_diluent_and_cleanup_tips",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L440-L444",
      "signature": "def test_one_tip_per_dilution_step_plus_the_diluent_and_cleanup_tips(self) -> None: # new_tip=\"once\" for the diluent fill, \"always\" across the series, and # one more to remove the final 100 uL: 1 + 11 + 1.",
      "exported": true,
      "origin": "ast",
      "body_hash": "46b522adf999afe9f485a2a15b3ea9e744d2d022a8ccbd8cbba02b4dba8ad31a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_declared_diluent_covers_every_row_of_every_step",
      "name": "test_the_declared_diluent_covers_every_row_of_every_step",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L451-L458",
      "signature": "def test_the_declared_diluent_covers_every_row_of_every_step(self) -> None: # An 8-channel head fills eight wells per command, so the reservoir # needs 8 x 11 x 100 uL = 8800 uL; the template declares 12 mL.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f089fe35d8986409d9575c8f2ab9c14e199ea0571b0f04fc913b2f41514aa83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_documented_number_of_dilution_steps_is_performed",
      "name": "test_the_documented_number_of_dilution_steps_is_performed",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L436-L438",
      "signature": "def test_the_documented_number_of_dilution_steps_is_performed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bcd3f221054ea3f519219ab1a4e8c59f45fc704777fa0557599678800ad3235",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_final_column_is_equalised_into_the_trash",
      "name": "test_the_final_column_is_equalised_into_the_trash",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L460-L467",
      "signature": "def test_the_final_column_is_equalised_into_the_trash(self) -> None: # Without this the last column holds 200 uL and the series is not 1:2.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f782664d2f6b5904070b12552e1e53da1f1765e6cf0746620874f02017420548",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_stock_column_is_never_diluted_from_the_reservoir",
      "name": "test_the_stock_column_is_never_diluted_from_the_reservoir",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L469-L478",
      "signature": "def test_the_stock_column_is_never_diluted_from_the_reservoir(self) -> None: # Diluent goes into columns 2-12 only; column 1 holds the stock.",
      "exported": true,
      "origin": "ast",
      "body_hash": "62a72c2fea30754e6409f71925f5c3185dc4c5fdd9858cdddd8fa1a2f5bde3e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SerialDilutionTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SimulationTests",
      "name": "SimulationTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L292-L315",
      "signature": "class SimulationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "22e40e587fad3507d6e216eaa49abd0f896bf1fb4743bb4235b42e86c859c304",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_every_flex_template_simulates_to_its_closing_comment",
      "name": "test_every_flex_template_simulates_to_its_closing_comment",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L293-L302",
      "signature": "def test_every_flex_template_simulates_to_its_closing_comment(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d99b21392619f2ed9577fd167772697fd51e8958ccb8e24174079ace6cd28d55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_the_flex_package_refuses_the_ot2_template",
      "name": "test_the_flex_package_refuses_the_ot2_template",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L304-L315",
      "signature": "def test_the_flex_package_refuses_the_ot2_template(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b9d5a0adc78c2b9784f29634398f783ff9f9baf27c7626414f632516b687b28c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#slots",
      "name": "slots",
      "kind": "function",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L150-L168",
      "signature": "def slots(name: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5eff01ff9491d4e51cef7eed1e74158f55e985b0e4c69aa77001eb4e9212a0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#TemplateInventoryTests",
      "name": "TemplateInventoryTests",
      "kind": "class",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L188-L193",
      "signature": "class TemplateInventoryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "547790b2e03bbc69f89ff76db46b7519178df3d424599c4c155d233d1f2931ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/opentrons-integration/test_scripts.py#TemplateInventoryTests.test_the_shipped_templates_are_the_ones_under_test",
      "name": "test_the_shipped_templates_are_the_ones_under_test",
      "kind": "method",
      "path": "tests/opentrons-integration/test_scripts.py",
      "span": "L189-L193",
      "signature": "def test_the_shipped_templates_are_the_ones_under_test(self) -> None: # A new template must be added here deliberately, with tests.",
      "exported": true,
      "origin": "ast",
      "body_hash": "71aaf68232c49839e0feea7be036f38ea5613491804247fff4c5e5afbbdbe94c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemplateInventoryTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py",
      "name": "test_run_pacsomatic.py",
      "kind": "file",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L1-L85",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f52dfa582bce8e647970202f2026efafef6a1e26f8938112b4c0dcad91fd0166",
      "chars": 3152,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#_load_module",
      "name": "_load_module",
      "kind": "function",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L13-L19",
      "signature": "def _load_module()",
      "exported": false,
      "origin": "ast",
      "body_hash": "4c7d2f23827a7cdb803c7ad59522182e1b808013ff9ac91ab80a5d573cff5a77",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "name": "RunPacsomaticUnitTests",
      "kind": "class",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L22-L75",
      "signature": "class RunPacsomaticUnitTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "558532e8e6aafac36dfbc54c0c27b816c967b49f5789e2789f0e03db7b3b9600",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L24-L25",
      "signature": "def setUpClass(cls)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f179f0519dd4db48e3edcc341f62039c7c1b4fa2f2822fd6354c87cd3e806462",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_build_generated_params_content_fasta",
      "name": "test_build_generated_params_content_fasta",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L52-L55",
      "signature": "def test_build_generated_params_content_fasta(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "492c85174f14b09c31fac1c4137eb4d564e6e7d5db9da63772a86f5aa8cee19a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_build_generated_params_content_genome",
      "name": "test_build_generated_params_content_genome",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L45-L50",
      "signature": "def test_build_generated_params_content_genome(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3beebb43bc032dd56c4c083af01c3455f5226abe56d193c10d84bc6262d527e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_build_samplesheet_status_values",
      "name": "test_build_samplesheet_status_values",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L57-L75",
      "signature": "def test_build_samplesheet_status_values(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5c3d0607b60beb946a8ad2f607aa581d25453c62e1f8c9ebf01f6a04726a939",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_extract_job_id_lsf",
      "name": "test_extract_job_id_lsf",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L40-L43",
      "signature": "def test_extract_job_id_lsf(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d140a5b047a23f4388eabd8d2948f1e56523e36a1fa1df0610f2060ee6ce48e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_extract_job_id_slurm",
      "name": "test_extract_job_id_slurm",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L35-L38",
      "signature": "def test_extract_job_id_slurm(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9a2e814a31a4a87121421d2c849b0d0eaf0561057349e51abce25f46dfd4d1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_normalize_walltime_hhmm",
      "name": "test_normalize_walltime_hhmm",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L27-L29",
      "signature": "def test_normalize_walltime_hhmm(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2898ef1f706bf8464bb17e28a8633fc4435a6f6628f4844092afd48ea520f3e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_normalize_walltime_hhmmss",
      "name": "test_normalize_walltime_hhmmss",
      "kind": "method",
      "path": "tests/pacsomatic/test_run_pacsomatic.py",
      "span": "L31-L33",
      "signature": "def test_normalize_walltime_hhmmss(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f732d4e066ffe357ffb75d895ae16bfbcca10b400e31ff9a1a5b5bda6c89a524",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RunPacsomaticUnitTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L1-L587",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "58d9265ce91524c951f012c7dafbfdf32c62debb1d474eb076196a33cc36063e",
      "chars": 27416,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "name": "ArxivTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L248-L321",
      "signature": "class ArxivTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "046ec6bc3e1a3c84fd881fefc576654cf6ede6690774f95a84098b8d57d50b92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_absent_arxiv_doi_is_none_not_invented",
      "name": "test_absent_arxiv_doi_is_none_not_invented",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L272-L275",
      "signature": "def test_absent_arxiv_doi_is_none_not_invented(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "25d1f175ec445cbcaa0254b929666360beaf8c9d24be2d707abf0aab6cbaf686",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_empty_feed_is_reported_as_a_genuine_no_match",
      "name": "test_empty_feed_is_reported_as_a_genuine_no_match",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L295-L301",
      "signature": "def test_empty_feed_is_reported_as_a_genuine_no_match(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c70f466edd98a0485a48e53523ff0f95aefe439219dd8cecb4c202d725d46b68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_entry_is_parsed_with_version_split",
      "name": "test_entry_is_parsed_with_version_split",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L249-L256",
      "signature": "def test_entry_is_parsed_with_version_split(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c924702c82d32b989d590452f025c5f2a32e99d7be7bb6108aab08f05c14e4cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_error_feed_exits_3",
      "name": "test_error_feed_exits_3",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L277-L281",
      "signature": "def test_error_feed_exits_3(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a3890be6e5b18771b3fdfd9812a1028af6d62edfcf697720bc49cc1b9490feb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_hard_wrapped_title_and_abstract_are_collapsed",
      "name": "test_hard_wrapped_title_and_abstract_are_collapsed",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L266-L270",
      "signature": "def test_hard_wrapped_title_and_abstract_are_collapsed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "de50903bcb035e5acda8bb6dc0b12d79b3555901f6d0b7dbd6cba3e01acf8fdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_id_from_url_is_scheme_agnostic",
      "name": "test_id_from_url_is_scheme_agnostic",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L319-L321",
      "signature": "def test_id_from_url_is_scheme_agnostic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "196d3a3eee5071111cd5e40ddc086d09af807df40dcddb84c333e00457148399",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_ids_only_strips_versions",
      "name": "test_ids_only_strips_versions",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L309-L311",
      "signature": "def test_ids_only_strips_versions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bec5e73f181c913c1da51d93d644b840206afb0af75f8665d677c383dd561e73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_non_xml_body_reports_what_it_actually_got",
      "name": "test_non_xml_body_reports_what_it_actually_got",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L290-L293",
      "signature": "def test_non_xml_body_reports_what_it_actually_got(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f6ff23aefb5eb0373484ee175f25ed2f7247bb08c7aabaf1248f32e2851dd57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_pdf_link_is_selected_by_rel_not_position",
      "name": "test_pdf_link_is_selected_by_rel_not_position",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L258-L264",
      "signature": "def test_pdf_link_is_selected_by_rel_not_position(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "620a7095f5ec8741d62a84c1c31c489cc6bf8a049525762f371bb0629af3d69b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_query_as_executed_is_reported",
      "name": "test_query_as_executed_is_reported",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L303-L307",
      "signature": "def test_query_as_executed_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "235ecda4f74dd9eb27c794d073eafeff4401697bf4f19aff5a0c2f49475528a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_rate_limited_plain_text_body_exits_5",
      "name": "test_rate_limited_plain_text_body_exits_5",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L283-L288",
      "signature": "def test_rate_limited_plain_text_body_exits_5(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd44c70d86acd7e625740ac9e9824fd3a74903fcc18ffe40a85635646623fd6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ArxivTests.test_split_version_leaves_unversioned_ids_alone",
      "name": "test_split_version_leaves_unversioned_ids_alone",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L313-L317",
      "signature": "def test_split_version_leaves_unversioned_ids_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ada9c92c58b3489864ec642c570477c33ad6d1bedb7c2cce3a57ee64479174dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArxivTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests",
      "name": "CommonTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L64-L88",
      "signature": "class CommonTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "763f180e626856bb04c26df5cae4da4af6c8830ec51160cf9f2ba2720f5d37e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests.test_collapse_ws_flattens_arxiv_hard_wrapping",
      "name": "test_collapse_ws_flattens_arxiv_hard_wrapping",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L65-L69",
      "signature": "def test_collapse_ws_flattens_arxiv_hard_wrapping(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2293fbe6ba0260e9e9857a4f06755f20dfcbb1b8dabb28727246829f3956c07e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests.test_collapse_ws_handles_none",
      "name": "test_collapse_ws_handles_none",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L71-L72",
      "signature": "def test_collapse_ws_handles_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "575c6ac36b816835e7fa11e8a4f0840ae8ef1bce15dbe9a99fcfe1db32f61610",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests.test_load_json_attributes_the_parse_failure_to_the_source",
      "name": "test_load_json_attributes_the_parse_failure_to_the_source",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L85-L88",
      "signature": "def test_load_json_attributes_the_parse_failure_to_the_source(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0bee553e03777fe37d32c0f647a29d99931de1d249dd588c1c4499ab18c9a4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests.test_read_input_rejects_missing_file",
      "name": "test_read_input_rejects_missing_file",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L81-L83",
      "signature": "def test_read_input_rejects_missing_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd66a214d1e976707971b783ef35882ad2746536def86cead2d759673f136e13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests.test_read_input_rejects_oversized_file",
      "name": "test_read_input_rejects_oversized_file",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L77-L79",
      "signature": "def test_read_input_rejects_oversized_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30770505994b8974d18a73c757416ef0678ab2badd0153fedc4b4c5ecee1bdaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#CommonTests.test_strip_control_keeps_tab_and_newline",
      "name": "test_strip_control_keeps_tab_and_newline",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L74-L75",
      "signature": "def test_strip_control_keeps_tab_and_newline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fc1f0d8bbaad64d9d6d5c43cbadff0e3a3a248e229fd85b4013ab3be2e10c39",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#fixture",
      "name": "fixture",
      "kind": "function",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L60-L61",
      "signature": "def fixture(name: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef26b80ae5f2a6369aa974913acd5d0634153a9a11dcf11cdfdc6bff4f0e2e48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests",
      "name": "JatsTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L177-L245",
      "signature": "class JatsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a11491253e187c8d526e8260bd46bf01db0c906a167454dc467bb31da869f0d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_allow_metadata_only_opts_out_of_the_refusal",
      "name": "test_allow_metadata_only_opts_out_of_the_refusal",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L210-L213",
      "signature": "def test_allow_metadata_only_opts_out_of_the_refusal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f359642c2df87435266a739bdc1d49e9a8caabbec636055504d4b9ae913412b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_europepmc_bare_article_wrapper_is_accepted",
      "name": "test_europepmc_bare_article_wrapper_is_accepted",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L215-L219",
      "signature": "def test_europepmc_bare_article_wrapper_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8e733ab780feb5e27ee2f41f2928e3b0c35040dcc4cf7ecb7005a1421f1d891",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_first_article_id_wins_over_nested_sub_article_doi",
      "name": "test_first_article_id_wins_over_nested_sub_article_doi",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L188-L192",
      "signature": "def test_first_article_id_wins_over_nested_sub_article_doi(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fa029c92bc1f730ae5d7f14e9955c6055d5198a9af985a4e73ffc6cd1407bbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_full_text_article_yields_sections",
      "name": "test_full_text_article_yields_sections",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L178-L186",
      "signature": "def test_full_text_article_yields_sections(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8247249e411c42e48e0083419e9ba8437a214068bdba0fb317ac5539081265e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_metadata_still_emitted_when_body_is_missing",
      "name": "test_metadata_still_emitted_when_body_is_missing",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L205-L208",
      "signature": "def test_metadata_still_emitted_when_body_is_missing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd7cf97a35c40a63ece8ff14f106fcd18c748d514efd4040cac8f2fdd451c090",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_missing_body_exits_2_and_surfaces_the_xml_comment",
      "name": "test_missing_body_exits_2_and_surfaces_the_xml_comment",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L194-L203",
      "signature": "def test_missing_body_exits_2_and_surfaces_the_xml_comment(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa3d5896886d0a32cd76e31c1ad3e76722698e38c4436b3457bf15ce1790128f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_non_jats_xml_is_rejected_with_a_useful_message",
      "name": "test_non_jats_xml_is_rejected_with_a_useful_message",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L232-L235",
      "signature": "def test_non_jats_xml_is_rejected_with_a_useful_message(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33e39f7e8cfc7718017e513187ac411fd5db2f1a4b1cb0e535ab9e074cc84474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_section_filter_matches_case_insensitively",
      "name": "test_section_filter_matches_case_insensitively",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L221-L225",
      "signature": "def test_section_filter_matches_case_insensitively(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c2b267d459722f8266d8c088400da02d79f4d1344bfde4b1f10a773205d3e32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_unmatched_section_filter_lists_what_is_available",
      "name": "test_unmatched_section_filter_lists_what_is_available",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L227-L230",
      "signature": "def test_unmatched_section_filter_lists_what_is_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d77cc8550a3fcf1643010a13eebce616ea59b42352684e8c42f65415a1f3e222",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#JatsTests.test_xref_text_is_dropped_but_the_sentence_survives",
      "name": "test_xref_text_is_dropped_but_the_sentence_survives",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L237-L245",
      "signature": "def test_xref_text_is_dropped_but_the_sentence_survives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "db3949c087763ee635c46e0125533d356906c7f7582fc6fadb498abbdc838ec5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "JatsTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "name": "OpenAlexAbstractTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L324-L379",
      "signature": "class OpenAlexAbstractTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2f77dc7757772c0519de1c3e8c362dc4822f1b70fbf001fbb62a869d1825966",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_abstract_is_reconstructed_in_position_order",
      "name": "test_abstract_is_reconstructed_in_position_order",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L325-L330",
      "signature": "def test_abstract_is_reconstructed_in_position_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bba2989b8121cca915557657984efd087ed5ccaae5c24f4df222ac1e3520e0d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_duplicate_positions_keep_both_tokens",
      "name": "test_duplicate_positions_keep_both_tokens",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L332-L338",
      "signature": "def test_duplicate_positions_keep_both_tokens(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4e3e04bbae335c9400b51a356046b7250c74a4cad80698a657704edd3c542ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_empty_index_yields_empty_text",
      "name": "test_empty_index_yields_empty_text",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L349-L350",
      "signature": "def test_empty_index_yields_empty_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52cf1118056bf242a5e9c576f11e0098cf9d2eed835514463f87b25ba5df7fc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_gaps_in_the_index_are_reported",
      "name": "test_gaps_in_the_index_are_reported",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L340-L342",
      "signature": "def test_gaps_in_the_index_are_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a021c7735345557341bb54d2706b6cc40d32fa829555ee1145301512d5f891cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_list_response_payload",
      "name": "test_list_response_payload",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L360-L363",
      "signature": "def test_list_response_payload(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fbf03454641a0be4f7621972a2760504a09e04a32736ad07303413be4d0d387",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_missing_index_distinguishes_no_abstract_from_select_exclusion",
      "name": "test_missing_index_distinguishes_no_abstract_from_select_exclusion",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L365-L370",
      "signature": "def test_missing_index_distinguishes_no_abstract_from_select_exclusion(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e475dba66b51f49e4e896194af71ab7d234f97cc0b3b49e59e1cb1d88fdc412",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_non_integer_positions_are_reported_not_crashed_on",
      "name": "test_non_integer_positions_are_reported_not_crashed_on",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L344-L347",
      "signature": "def test_non_integer_positions_are_reported_not_crashed_on(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71a27341600dbc6feeab6e9c5ab5ae0528d40885085335de53e11e13095f18d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_single_work_payload",
      "name": "test_single_work_payload",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L352-L358",
      "signature": "def test_single_work_payload(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e973004d32ad18eaceeb96ec3eec08c0f5f9fd8a7b68d0b27fd526d721141707",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_text_only_fails_loudly_when_nothing_reconstructs",
      "name": "test_text_only_fails_loudly_when_nothing_reconstructs",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L372-L375",
      "signature": "def test_text_only_fails_loudly_when_nothing_reconstructs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "689559db59e0091228d3477c35738bb77dbda5a90abc1fc0bf3139c648583042",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_works_from_rejects_a_bare_scalar",
      "name": "test_works_from_rejects_a_bare_scalar",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L377-L379",
      "signature": "def test_works_from_rejects_a_bare_scalar(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53284b16d9dd3bf0c24209674c2bffbbb8d22c422ad015638ef9e2d06c73377e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OpenAlexAbstractTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "name": "PaginateAdapterTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L382-L528",
      "signature": "class PaginateAdapterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "16118744ca274fdf8c2192de776cf8b959c2742e9a120506134179f1be3532d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_endpoint_without_counts_reports_no_total",
      "name": "test_biorxiv_endpoint_without_counts_reports_no_total",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L428-L435",
      "signature": "def test_biorxiv_endpoint_without_counts_reports_no_total(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c6e9e711cbea84208524fcb28ed81d8ec50e2124a2fd6a1337f5d8220204759",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_no_articles_found_is_surfaced",
      "name": "test_biorxiv_no_articles_found_is_surfaced",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L419-L426",
      "signature": "def test_biorxiv_no_articles_found_is_surfaced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b8949a39419be8fb13ae6a465dab3954b769efb58c83acf1e4d403138963fd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_pubs_steps_by_100",
      "name": "test_biorxiv_pubs_steps_by_100",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L396-L401",
      "signature": "def test_biorxiv_pubs_steps_by_100(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "08c96160992bef475e279e04709a3ca8223cebaa3121d464835965699cd193bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_reports_the_count_mismatch_it_falls_back_from",
      "name": "test_biorxiv_reports_the_count_mismatch_it_falls_back_from",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L410-L417",
      "signature": "def test_biorxiv_reports_the_count_mismatch_it_falls_back_from(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "699db4017cb9e5580f2688c3eb6c6f60ee4b33e56c5faf561021b7bd3c61d862",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_steps_by_the_reported_count_not_100",
      "name": "test_biorxiv_steps_by_the_reported_count_not_100",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L386-L394",
      "signature": "def test_biorxiv_steps_by_the_reported_count_not_100(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d995572dd287230db1c6eca8f0283245c842d7ea8382fa381cb0d99f1c21f9e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_stops_when_the_next_offset_reaches_total",
      "name": "test_biorxiv_stops_when_the_next_offset_reaches_total",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L403-L408",
      "signature": "def test_biorxiv_stops_when_the_next_offset_reaches_total(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b8289ab961153e9fdbbb734f36893d3cebb1f033efd6ccae9fc8e14ea2eb357",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_url_selects_details_or_pubs",
      "name": "test_biorxiv_url_selects_details_or_pubs",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L437-L440",
      "signature": "def test_biorxiv_url_selects_details_or_pubs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e75e4689096b11fe1f14f032e2934bd1298ee7214271d993d4a8b4da43dbc02",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_crossref_stops_on_an_empty_page",
      "name": "test_crossref_stops_on_an_empty_page",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L491-L496",
      "signature": "def test_crossref_stops_on_an_empty_page(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62c9bd566cbe77588e67113e7209c8f4a87aa1cbcef11a6e3bab5e1aad70ee30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_dry_run_makes_no_request",
      "name": "test_dry_run_makes_no_request",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L504-L510",
      "signature": "def test_dry_run_makes_no_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "68e757fabe85af44975e3ad63cac663834f6570b52e5f5022fbc9e4ec2dd4ed4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_continues_on_a_new_cursor",
      "name": "test_europepmc_continues_on_a_new_cursor",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L455-L459",
      "signature": "def test_europepmc_continues_on_a_new_cursor(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "817ca2d8e11aae74200c4047f098c932e3dcb1e390406cf12787491f37590fe8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_errcode_in_a_200_body_raises",
      "name": "test_europepmc_errcode_in_a_200_body_raises",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L461-L466",
      "signature": "def test_europepmc_errcode_in_a_200_body_raises(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33ed59bd3841b152bf207082b7503a1f22bdac3c3d3990fe6967d77557c3bb5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_reports_the_query_as_parsed",
      "name": "test_europepmc_reports_the_query_as_parsed",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L468-L478",
      "signature": "def test_europepmc_reports_the_query_as_parsed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b195ebd3b870d8b40323342120201e6d2354e93b3a2df47f2f1051ad84beada",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_stops_on_an_echoed_cursor",
      "name": "test_europepmc_stops_on_an_echoed_cursor",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L447-L453",
      "signature": "def test_europepmc_stops_on_an_echoed_cursor(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a71ff44e8351e4d9cd5e265500bea536018e5623a3bad22405629d8d16ec91c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_every_api_declares_a_delay_and_a_query_format",
      "name": "test_every_api_declares_a_delay_and_a_query_format",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L498-L502",
      "signature": "def test_every_api_declares_a_delay_and_a_query_format(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06a5791480259ef4bb71db20dba8ce3bf8ab01f81cdb04aabc78081d8a8f4c01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_list_apis_needs_no_other_argument",
      "name": "test_list_apis_needs_no_other_argument",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L512-L515",
      "signature": "def test_list_apis_needs_no_other_argument(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cc01e130417b35ed239712fb33cfc49c406689c8d54eeae2d864dc496533e74",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_medrxiv_never_uses_the_api_medrxiv_host",
      "name": "test_medrxiv_never_uses_the_api_medrxiv_host",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L442-L445",
      "signature": "def test_medrxiv_never_uses_the_api_medrxiv_host(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0addb90e4bed191548eb4098477a7fdb45d166e50b2d755514761bcd24359a35",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_missing_required_arguments_exit_2",
      "name": "test_missing_required_arguments_exit_2",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L517-L520",
      "signature": "def test_missing_required_arguments_exit_2(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "add9e0753e6cc43f11c1090d3350a46c506be44d472c325f77bdd448dc6439a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_nonpositive_bounds_are_rejected",
      "name": "test_nonpositive_bounds_are_rejected",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L522-L528",
      "signature": "def test_nonpositive_bounds_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f0c054e0d7a676fad3b7a59aa79b4a6a51eda6a855efc7ba96d841d041c4382",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_openalex_stops_on_an_empty_page",
      "name": "test_openalex_stops_on_an_empty_page",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L480-L482",
      "signature": "def test_openalex_stops_on_an_empty_page(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1c4306be7aa7e5b09770985c528c19575c69850ee137309344e87a41c1061e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_openalex_surfaces_the_reported_cost",
      "name": "test_openalex_surfaces_the_reported_cost",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L484-L489",
      "signature": "def test_openalex_surfaces_the_reported_cost(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "da2f95f3e6f85ea76d5fcab9fa727f17d9085866db2062fb2baa40a62cb1a437",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaginateAdapterTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ReconciliationTests",
      "name": "ReconciliationTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L91-L123",
      "signature": "class ReconciliationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8b4f9ca520ffd81764c098105061555869e06ac0bc5b1124b39f94fc94a447b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_absent_total_is_a_documented_state",
      "name": "test_absent_total_is_a_documented_state",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L120-L123",
      "signature": "def test_absent_total_is_a_documented_state(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1a60610e6b68f187931983aeb6bfbe7aa23e7552cca1ddd9b8ee383f309da18",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReconciliationTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_bound_is_explained_not_a_failure",
      "name": "test_bound_is_explained_not_a_failure",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L105-L113",
      "signature": "def test_bound_is_explained_not_a_failure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "55d7a5fca9349bdf1c11ee267ab98653b33494540375f5469a51f5cb74bbb16e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReconciliationTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_complete_walk",
      "name": "test_complete_walk",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L99-L103",
      "signature": "def test_complete_walk(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b639191cd24a7d8fb4987cc5032349f440317e6179dccfe63f8d8874f1e280b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReconciliationTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_unexplained_shortfall_is_not_ok",
      "name": "test_unexplained_shortfall_is_not_ok",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L115-L118",
      "signature": "def test_unexplained_shortfall_is_not_ok(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a624a770307940aca7b07cb5b21bc8285870e725e567cd75576f57cc76e566e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReconciliationTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "name": "RedactionTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L126-L174",
      "signature": "class RedactionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3932440b88c74bc96d9bddf4f8a02326df2c39b8fd73d473fe46c7a9951fc1ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#RedactionTests.test_api_key_value_is_replaced_but_the_parameter_survives",
      "name": "test_api_key_value_is_replaced_but_the_parameter_survives",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L133-L137",
      "signature": "def test_api_key_value_is_replaced_but_the_parameter_survives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46930f9479a6b3f779215094da8acd686f4ddd0181d0d5a0c705fc7578eee4c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedactionTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#RedactionTests.test_contact_details_are_redacted_too",
      "name": "test_contact_details_are_redacted_too",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L139-L143",
      "signature": "def test_contact_details_are_redacted_too(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4106fd27664f24fad0e10041b915be1b506c44b10277e0ddea00b73f0eb6f8fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedactionTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#RedactionTests.test_dry_run_output_carries_no_key",
      "name": "test_dry_run_output_carries_no_key",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L152-L174",
      "signature": "def test_dry_run_output_carries_no_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bea614f8fbbada987be23267601bd4d94806374a21fdc47137946ab9ce48fb06",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedactionTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#RedactionTests.test_redaction_is_case_insensitive_on_the_parameter_name",
      "name": "test_redaction_is_case_insensitive_on_the_parameter_name",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L145-L146",
      "signature": "def test_redaction_is_case_insensitive_on_the_parameter_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a8884cbe03e9577f8bf240b40b273cea9c3b2ecb90a8da8d1fbbcf39024b451",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedactionTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#RedactionTests.test_urls_without_a_query_are_untouched",
      "name": "test_urls_without_a_query_are_untouched",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L148-L150",
      "signature": "def test_urls_without_a_query_are_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a4b514b4f9d1628e54f54e9cb68bdfd70256c8cb902b3ecbd12aac06a49d6fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RedactionTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L50-L57",
      "signature": "def run_script(name: str, *args: str) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd04a15b9dc4959d03474ffd9b5514707cec44a5bd1811f061cf6e21b6875735",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests",
      "name": "StructureTests",
      "kind": "class",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L531-L582",
      "signature": "class StructureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "29d586a07f9a94e40e77482c8292b6210095d63a244317208a9a53962eb9545d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_every_reference_file_is_linked_from_skill_md",
      "name": "test_every_reference_file_is_linked_from_skill_md",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L564-L568",
      "signature": "def test_every_reference_file_is_linked_from_skill_md(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "58fd4c2fbe1e56d5f2096d13f99cd068fdff7922513a16280d95909dbd599b73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_every_script_is_documented_in_skill_md",
      "name": "test_every_script_is_documented_in_skill_md",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L570-L576",
      "signature": "def test_every_script_is_documented_in_skill_md(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5cb060ad7d95589e2fde9e382c4521e0a92f5b5679e3b2b70b4b4cd9d69a496",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_frontmatter_conforms",
      "name": "test_frontmatter_conforms",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L534-L535",
      "signature": "def test_frontmatter_conforms(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "74fb3fcee98a0084cb85189b8ad0c22bd4a8165caa7adfda75a24110d3ddf285",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_bytecode_shipped",
      "name": "test_no_bytecode_shipped",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L543-L545",
      "signature": "def test_no_bytecode_shipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fda7cc1229a6802843025a055756143d5ceaa1313425af8ea3cc7d508237d098",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_dynamic_execution",
      "name": "test_no_dynamic_execution",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L553-L554",
      "signature": "def test_no_dynamic_execution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "393efd61cbae52962b5dd7f6609b57d7ae11a7eaa665bc33fc5bc9dd0a41c1fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_leftover_tool_call_markup",
      "name": "test_no_leftover_tool_call_markup",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L556-L562",
      "signature": "def test_no_leftover_tool_call_markup(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "417d3c258d77019a3bd154bcdd598889582d0e6305d26e7f6d0665c47b3ceaf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_stray_tests_under_the_skill",
      "name": "test_no_stray_tests_under_the_skill",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L540-L541",
      "signature": "def test_no_stray_tests_under_the_skill(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2088e1a8c25e4c6d6af05aea9b07eaa4364030865a9fad22ad2400c7e9f62150",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_paginate_covers_every_api_it_advertises",
      "name": "test_paginate_covers_every_api_it_advertises",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L578-L582",
      "signature": "def test_paginate_covers_every_api_it_advertises(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b62954ff06388079b1c6c44345c2d95377a236aabc2f20dc698360d076fc03c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_referenced_paths_exist",
      "name": "test_referenced_paths_exist",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L547-L548",
      "signature": "def test_referenced_paths_exist(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f80706c550b7674ceb45253104a3d8818dbe88aa6f00a0774a6620127326d13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_scripts_compile",
      "name": "test_scripts_compile",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L550-L551",
      "signature": "def test_scripts_compile(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca1922afb38da54b799b7accf8c7ead8c3ffb04261c4a39ae811eac0ec097e38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/paper-lookup/test_scripts.py#StructureTests.test_skill_md_is_within_the_line_budget",
      "name": "test_skill_md_is_within_the_line_budget",
      "kind": "method",
      "path": "tests/paper-lookup/test_scripts.py",
      "span": "L537-L538",
      "signature": "def test_skill_md_is_within_the_line_budget(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "17c485bf9c6fa7e3bf49295f8160b277eb412dca5a2456d4e88da86ef9a40f74",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureTests"
    },
    {
      "id": "tests/pathml/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pathml/test_scripts.py",
      "span": "L1-L442",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a597f43020cd10b12581d21f4eac969ed4beb4c87cfe0d89034a623018178aa4",
      "chars": 16358,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathml/test_scripts.py#ManifestTests",
      "name": "ManifestTests",
      "kind": "class",
      "path": "tests/pathml/test_scripts.py",
      "span": "L167-L229",
      "signature": "class ManifestTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce5135a437711464fcd2c878e8c5f76e146d3e547a02ecaba1cc1552f13208d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathml/test_scripts.py#ManifestTests.test_manifest_detects_patient_split_leakage",
      "name": "test_manifest_detects_patient_split_leakage",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L207-L229",
      "signature": "def test_manifest_detects_patient_split_leakage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "af68d6ba33004e253c42a139b63e0e58226c9a9256306e7e95ad724766f5216c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#ManifestTests.test_manifest_validation_and_redacted_inspection",
      "name": "test_manifest_validation_and_redacted_inspection",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L168-L205",
      "signature": "def test_manifest_validation_and_redacted_inspection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "14e0519adb16fe19a556bea6ef2c6cf2d5798e8a1345f3f75bc314389c1d4043",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#PlannerAndImageTests",
      "name": "PlannerAndImageTests",
      "kind": "class",
      "path": "tests/pathml/test_scripts.py",
      "span": "L232-L350",
      "signature": "class PlannerAndImageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f503eb5523ebb7a07de0cc3300be8208c25d36f9cead5b43f023aa461575352",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_inference_planner_uses_json_only",
      "name": "test_inference_planner_uses_json_only",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L303-L350",
      "signature": "def test_inference_planner_uses_json_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "707308387c2f46ca4f0c2313208cbb541eddba0ba33bedc088de071141f2e264",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerAndImageTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_pipeline_planner_counts_tiles_and_rejects_unknown_transform",
      "name": "test_pipeline_planner_counts_tiles_and_rejects_unknown_transform",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L233-L263",
      "signature": "def test_pipeline_planner_counts_tiles_and_rejects_unknown_transform(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "63e72d5d6daa4829d48db198c8121ededc120ddf4c4df44662f176ef437570e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerAndImageTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_synthetic_and_binary_ppm_qc",
      "name": "test_synthetic_and_binary_ppm_qc",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L265-L301",
      "signature": "def test_synthetic_and_binary_ppm_qc(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dccf7de38e85fb0db375472425db927e7c2b370b8b5674d00348fb2e9a39bab4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerAndImageTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/pathml/test_scripts.py",
      "span": "L30-L37",
      "signature": "def run_script(name: str, *arguments: str, cwd: Path | None = None) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "39ba66b195e9db31303fcbb79cc0f10b92a0c691f0983fe489a12aa85bf407d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests",
      "name": "SafetyTests",
      "kind": "class",
      "path": "tests/pathml/test_scripts.py",
      "span": "L40-L164",
      "signature": "class SafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2c4aefc0874ae7fc897eaf8aaa39e45089869e9b003bcdcf9060ebb71a8b31f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests.test_build_parsers_are_dependency_free",
      "name": "test_build_parsers_are_dependency_free",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L92-L104",
      "signature": "def test_build_parsers_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd7706d332844c565982d5d616eb284f74ac00d8601121744f858b30c9c7d445",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests.test_every_cli_help_works_without_site_packages",
      "name": "test_every_cli_help_works_without_site_packages",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L82-L90",
      "signature": "def test_every_cli_help_works_without_site_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7efc538710ec2909786643a4a44b804241cf04c656a9f450eeb3b9d9f30adc01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests.test_private_atomic_json_refuses_overwrite",
      "name": "test_private_atomic_json_refuses_overwrite",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L139-L147",
      "signature": "def test_private_atomic_json_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "da3f230855bdd8fd0503afb196bb9c3ad5d436bb671064ef27273c52fdce3e37",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests.test_scripts_parse_without_dynamic_execution_or_network_imports",
      "name": "test_scripts_parse_without_dynamic_execution_or_network_imports",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L41-L80",
      "signature": "def test_scripts_parse_without_dynamic_execution_or_network_imports(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9573849f7190d1c4612a9a9219e98cb311c89da636f30622df48406084b1f95c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests.test_skill_version_and_progressive_disclosure",
      "name": "test_skill_version_and_progressive_disclosure",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L149-L164",
      "signature": "def test_skill_version_and_progressive_disclosure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d552120f2b4e7e9fa9d58704f84c0081162c0253d28a9af4d221eb547fac3088",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SafetyTests.test_strict_local_io_rejects_url_symlink_duplicates_and_nan",
      "name": "test_strict_local_io_rejects_url_symlink_duplicates_and_nan",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L106-L137",
      "signature": "def test_strict_local_io_rejects_url_symlink_duplicates_and_nan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c93426a5f23b03bd15bfc130e84c34a622d6caef9fa82da14f0820e8dc16a21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SpatialSchemaTests",
      "name": "SpatialSchemaTests",
      "kind": "class",
      "path": "tests/pathml/test_scripts.py",
      "span": "L353-L437",
      "signature": "class SpatialSchemaTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a79aa670709212e198375f91ad0e7c54c788934f9e80c30fc646c637f36b699d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathml/test_scripts.py#SpatialSchemaTests.test_graph_schema",
      "name": "test_graph_schema",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L354-L395",
      "signature": "def test_graph_schema(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35332ea4ea44628a2a480a3fa221d4a01c5a5de50df1f77ba3ec0ff38da4c81c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpatialSchemaTests"
    },
    {
      "id": "tests/pathml/test_scripts.py#SpatialSchemaTests.test_multiplex_schema_and_patient_split",
      "name": "test_multiplex_schema_and_patient_split",
      "kind": "method",
      "path": "tests/pathml/test_scripts.py",
      "span": "L397-L437",
      "signature": "def test_multiplex_schema_and_patient_split(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3678a9aa0b6d336ad2e0612e19bc172e5a94abe816272a7b2a2311a445ad2ada",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpatialSchemaTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L1-L966",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3c6d8ef891becdd7e849d37d2668f5883b5c8de9709c08e3b2f3a0b0fb165d8d",
      "chars": 40931,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#_load_script",
      "name": "_load_script",
      "kind": "function",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L30-L39",
      "signature": "def _load_script(name: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "3ac5f4bdf5f8c4d1c2a2f649c9720e589e2f8bac37db7ddccbf9969c50e893e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#_sxx",
      "name": "_sxx",
      "kind": "function",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L212-L220",
      "signature": "def _sxx(points) -> float",
      "exported": false,
      "origin": "ast",
      "body_hash": "db4c369cdd914ce65c951f3bb0a658e8f075778c9dc58dbcd2fb67149e069c87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests",
      "name": "ChildrenMapTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L430-L449",
      "signature": "class ChildrenMapTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdf5fd820ba8ad2acf8fb32d64eff7602871b1c6ac77bc93972bc5217989df7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests.test_map_inverts_the_definition",
      "name": "test_map_inverts_the_definition",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L438-L442",
      "signature": "def test_map_inverts_the_definition(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "92891cd6f13f68c21102b623dc25475530767cac65df7bd77259b916b459f826",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChildrenMapTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests.test_prebuilt_map_gives_the_same_answer",
      "name": "test_prebuilt_map_gives_the_same_answer",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L444-L449",
      "signature": "def test_prebuilt_map_gives_the_same_answer(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e07d2ebd3087efcd0265985472d63d135f3cee4593d926d533530249b7cdfe39",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ChildrenMapTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests",
      "name": "CohortCurveTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L590-L642",
      "signature": "class CohortCurveTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c06c42aa03740ab6378e6610a2372757c21dc5695ebea1be2c1f646638c9060e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_cumulative_fractions_are_monotonic",
      "name": "test_cumulative_fractions_are_monotonic",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L591-L608",
      "signature": "def test_cumulative_fractions_are_monotonic(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3637bd4def9adef1227f57b1852c1223e15451ebb44d8f43e5f25a52ea7d6675",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CohortCurveTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_empty_cohort_returns_none",
      "name": "test_empty_cohort_returns_none",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L619-L625",
      "signature": "def test_empty_cohort_returns_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "be98734a6b9c2cdc7b5fa34ddc690e84191e5c4127a1ddd1607114ec5420e495",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CohortCurveTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_submission_before_cohort_end_clamps_to_zero_lag",
      "name": "test_submission_before_cohort_end_clamps_to_zero_lag",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L610-L617",
      "signature": "def test_submission_before_cohort_end_clamps_to_zero_lag(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "75e6cbd10a6ac71141f97afa8395e7483107604fd449e63f6ea83b72bb1c9995",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CohortCurveTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_undated_rows_leave_the_denominator_and_are_counted",
      "name": "test_undated_rows_leave_the_denominator_and_are_counted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L627-L642",
      "signature": "def test_undated_rows_leave_the_denominator_and_are_counted(self): # Excluding them is right -- they cannot be placed in any lag bucket -- # but the count has to surface so the caller can report it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "274c405457db1c936be947c81aea6f5b8411bcdc64d387f2e119f0f3b1fabb9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CohortCurveTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests",
      "name": "CoverageFlagTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L316-L332",
      "signature": "class CoverageFlagTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c7b9d844f682d5620b0d6c1fc46765141796d97067f0eac279a1d7ec8efc9d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests.test_empty_input",
      "name": "test_empty_input",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L331-L332",
      "signature": "def test_empty_input(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a89cabb38be2a1a36013c5315b34ff955489ecd3b7d8c9dda11e34de60732a58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageFlagTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests.test_recent_thin_weeks_are_flagged",
      "name": "test_recent_thin_weeks_are_flagged",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L317-L325",
      "signature": "def test_recent_thin_weeks_are_flagged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb18a45ba65c62f25311dcaf50b7d5847ae2c97c41bd55aedcfe26a4fb6766a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageFlagTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests.test_steady_series_flags_nothing",
      "name": "test_steady_series_flags_nothing",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L327-L329",
      "signature": "def test_steady_series_flags_nothing(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "851f152522d75f644ad2036d1fb3858398a8c014ba1e9aa7d14bbe6540b5950c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoverageFlagTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "name": "ErrorSurfacingTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L502-L526",
      "signature": "class ErrorSurfacingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "044638a498391d0421da9a3e1b8196a7f5fbde744e35df60ac5c38df5352aad1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_bare_rfc7807_detail_extracted",
      "name": "test_bare_rfc7807_detail_extracted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L510-L512",
      "signature": "def test_bare_rfc7807_detail_extracted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad8eaae083111f6a56319e708a0bdab5910edeb627be91c84d7825323eec82c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorSurfacingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_base_url_overrides_the_registry",
      "name": "test_base_url_overrides_the_registry",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L522-L526",
      "signature": "def test_base_url_overrides_the_registry(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "270985ddcc0206cdf60302b5aae8c8bd47e4a46bf16508ce79fc4e026e8d9851",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorSurfacingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_non_json_body_does_not_raise",
      "name": "test_non_json_body_does_not_raise",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L514-L515",
      "signature": "def test_non_json_body_does_not_raise(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "26b95f7c9db1e1e3f27788d61513bd674b9f504175f927c1b630c97ee3edb11d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorSurfacingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_unknown_instance_lists_the_known_ones",
      "name": "test_unknown_instance_lists_the_known_ones",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L517-L520",
      "signature": "def test_unknown_instance_lists_the_known_ones(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "75ad7e11bd3738a5c3e98edcd9072a3114a2df596ea242be5a41d7bd51cd5fbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorSurfacingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_wrapped_envelope_detail_extracted",
      "name": "test_wrapped_envelope_detail_extracted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L503-L508",
      "signature": "def test_wrapped_envelope_detail_extracted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e326f1a798134a0b1b3e7eb04db26051241346d79cedb06261cd3040ea92af41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ErrorSurfacingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "name": "FieldResolutionTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L93-L127",
      "signature": "class FieldResolutionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a847eb7e3e8870a24ca56d9963307e12ec95368cd70564ae317fbc10ba58cf26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_collection_date_differs_between_instances",
      "name": "test_collection_date_differs_between_instances",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L96-L101",
      "signature": "def test_collection_date_differs_between_instances(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a04ca37c92f8805181a7daff1caae65a486f827bfadab2b20c04e8ecdff80dbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldResolutionTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_missing_date_field_raises_with_the_alternatives",
      "name": "test_missing_date_field_raises_with_the_alternatives",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L116-L119",
      "signature": "def test_missing_date_field_raises_with_the_alternatives(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bcff028b22b9d3b9efb328c0057600cc03973d265ce3f9eae738a5428387e49b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldResolutionTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_range_keys",
      "name": "test_range_keys",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L126-L127",
      "signature": "def test_range_keys(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "534cd2c69703d08dd411bc9724452279c85cbfd07f3a2b26b475ea6eca041c67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldResolutionTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_string_typed_date_is_rejected_not_guessed",
      "name": "test_string_typed_date_is_rejected_not_guessed",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L103-L108",
      "signature": "def test_string_typed_date_is_rejected_not_guessed(self): # H5N1 types sampleCollectionDate as a string, so LAPIS offers no range # filter for it at all. Silently substituting one would be worse.",
      "exported": true,
      "origin": "ast",
      "body_hash": "84f32832d0e57505cc77a190972d1c52e69592ebf174e61e604cb539528cb715",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldResolutionTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_submission_date_differs_between_instances",
      "name": "test_submission_date_differs_between_instances",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L110-L114",
      "signature": "def test_submission_date_differs_between_instances(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3168547eea9eb1e9cb8cc6bbb53a1f5b13bc1cdaddff4cbd9831e6b2fd4513d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldResolutionTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_supports_range_follows_declared_type",
      "name": "test_supports_range_follows_declared_type",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L121-L124",
      "signature": "def test_supports_range_follows_declared_type(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6f55e4c5d720f73a41608cbe0c559affd6389d2802f807e005276f1aa993b0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldResolutionTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "name": "LineageFieldTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L130-L157",
      "signature": "class LineageFieldTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d42f1eae63051ca4e695dc770bbbd473d61ff9ac0d290c8c3e0f3ca01ee7b369",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_ha_clade_outranks_na_clade",
      "name": "test_ha_clade_outranks_na_clade",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L148-L153",
      "signature": "def test_ha_clade_outranks_na_clade(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d27fd7a018a34d40affcca6a6d8cc96a6f1e5995248b4826727ac2456bfbc12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFieldTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_indexed_column_preferred",
      "name": "test_indexed_column_preferred",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L131-L132",
      "signature": "def test_indexed_column_preferred(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8885c35f81c09ee63b17c905e2c7ec8e0034baf675833c95d4ede69170bfd7f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFieldTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_no_lineage_column_raises",
      "name": "test_no_lineage_column_raises",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L155-L157",
      "signature": "def test_no_lineage_column_raises(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "754d1d71e58cd47d06fbabcb472cea42ada93c13d2962ee48daeaa1ca983d8dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFieldTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_per_segment_columns_excluded",
      "name": "test_per_segment_columns_excluded",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L143-L146",
      "signature": "def test_per_segment_columns_excluded(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb6d9d8e36591505408a8cf6f7441291a46041efbcded263c59ba828d41d012e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFieldTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_qc_columns_are_not_lineage_columns",
      "name": "test_qc_columns_are_not_lineage_columns",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L137-L141",
      "signature": "def test_qc_columns_are_not_lineage_columns(self): # \"nextcladeQcOverallScore\" contains \"clade\" and must not be offered.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ec6a1cabd76e7254b35d49d8e50a5b4daa9214dc068e7df0ee37116c6332bd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFieldTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_unindexed_instance_reports_no_index",
      "name": "test_unindexed_instance_reports_no_index",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L134-L135",
      "signature": "def test_unindexed_instance_reports_no_index(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f6728d5753c60ab644a64f0678564be5e2d9ce329dd0e5d18c657f7e1b22438",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFieldTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "name": "LineageFilterTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L160-L182",
      "signature": "class LineageFilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "374a472debdb8b6bb0c79be0468ef0a1c8be9dbdbf28962178529b52718bdf44",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_bare_name_stays_exact",
      "name": "test_bare_name_stays_exact",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L163-L164",
      "signature": "def test_bare_name_stays_exact(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6fb50897e5ac622ccbef94d7acedf187724719f2b2a2ba6c32bbc8edbc21277",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFilterTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_exact_query_still_allowed_without_an_index",
      "name": "test_exact_query_still_allowed_without_an_index",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L181-L182",
      "signature": "def test_exact_query_still_allowed_without_an_index(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99007cb52cd3886f4d45baa443c2fe8b5682df107e788b09f11cd2be94f0a925",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFilterTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_sublineages_expand_on_an_indexed_column",
      "name": "test_sublineages_expand_on_an_indexed_column",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L166-L168",
      "signature": "def test_sublineages_expand_on_an_indexed_column(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "988dc5a040edf18ede3175fd8f012a90ef7920534a253029d6a44203cb701371",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFilterTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_sublineages_refused_without_an_index",
      "name": "test_sublineages_refused_without_an_index",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L170-L175",
      "signature": "def test_sublineages_refused_without_an_index(self): # On H5N1 'clade=2.3.4.4b*' returns 0 rather than an error, so building # the query at all is the bug.",
      "exported": true,
      "origin": "ast",
      "body_hash": "135a9e8596f0ed3eec1a1e28c3701d089e64e86202d8b1d9d8edd0b3113e381a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFilterTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_trailing_star_refused_without_an_index",
      "name": "test_trailing_star_refused_without_an_index",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L177-L179",
      "signature": "def test_trailing_star_refused_without_an_index(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04c02a3ee50bab181f51958e7cdc1a2db0d445719c2b638f9233de02fcab49d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageFilterTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests",
      "name": "LineageNotesTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L452-L480",
      "signature": "class LineageNotesTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6800e9ea277bc66eee17a8d9ea78c7b9ed3d8ed96d4def5b9c2b5084f3e65a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_header_and_blank_lines_ignored",
      "name": "test_header_and_blank_lines_ignored",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L469-L472",
      "signature": "def test_header_and_blank_lines_ignored(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e887d3b79eccb30abbff133f1a80fa44786037dc15576bd4b29bfae11cdca81",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNotesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_parses_status_and_strips_the_marker",
      "name": "test_parses_status_and_strips_the_marker",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L461-L467",
      "signature": "def test_parses_status_and_strips_the_marker(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "75037e26d8871ea224a062b8623950240a04590a3fdba741800c718f40ce9d38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNotesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_redesignation_target_is_extracted",
      "name": "test_redesignation_target_is_extracted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L474-L477",
      "signature": "def test_redesignation_target_is_extracted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f519cc2a74d4452466a31faa22a0b4631517cb87e78c2d161439d42c6c2ecbef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNotesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_withdrawal_without_a_successor",
      "name": "test_withdrawal_without_a_successor",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L479-L480",
      "signature": "def test_withdrawal_without_a_successor(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32eeccf0ca9c777773e0cb77bb02127a7a5e8dee773211faed3ec411a6715584",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNotesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "name": "LineageTreeTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L371-L399",
      "signature": "class LineageTreeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca59102e55c92f313835170c47bed3d9cb489456b8f70a1ff6ae51e0e06d07da",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_cycle_does_not_hang",
      "name": "test_cycle_does_not_hang",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L397-L399",
      "signature": "def test_cycle_does_not_hang(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f816e8b2e80d069308e038c1f9697308dd16dbe629a393bf7562c5a6ac5912f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageTreeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_descendants_are_transitive",
      "name": "test_descendants_are_transitive",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L388-L392",
      "signature": "def test_descendants_are_transitive(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "464beca0ccf1e978c2362b0e8700bbdc45fcaeed41231a1a4468cf882874af31",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageTreeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_leaf_has_no_descendants",
      "name": "test_leaf_has_no_descendants",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L394-L395",
      "signature": "def test_leaf_has_no_descendants(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "75d9ccef02e31fbab358b85362f1c7042f7dd355bf51642d9cbb62106961d4ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageTreeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_parent_chain_walks_to_the_root",
      "name": "test_parent_chain_walks_to_the_root",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L380-L383",
      "signature": "def test_parent_chain_walks_to_the_root(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "54b43973dabc6e6b0c9a2c51cb43620709a9866f32b7bc2265673277c28404ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageTreeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_root_has_no_parents",
      "name": "test_root_has_no_parents",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L385-L386",
      "signature": "def test_root_has_no_parents(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fe003da2d7e69a9582fa83927b63a327e2a2c6f10a68a0831c8f2442a39ebb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageTreeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "name": "LiveApiTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L909-L956",
      "signature": "class LiveApiTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c7394f6e60d28ecd82e10090b684e1b307b8ae38e7b3f00b38313c9ac06f713",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_alias_key_carries_recombinant_parents",
      "name": "test_alias_key_carries_recombinant_parents",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L940-L942",
      "signature": "def test_alias_key_carries_recombinant_parents(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0faf70df627fc2ba449e3c306580682b23cae8b5050396bfb977ffaf337f16ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_every_registered_instance_answers",
      "name": "test_every_registered_instance_answers",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L953-L956",
      "signature": "def test_every_registered_instance_answers(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4be82851ab0d0a1b4b7341ca22d6ab3707c4cce09e4e1a11c14c014c9ea18c1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_lapis_roots_recombinants",
      "name": "test_lapis_roots_recombinants",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L935-L938",
      "signature": "def test_lapis_roots_recombinants(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "beea0aa94b8eb78818a4909f27156cac5359a3b9ef58770e5e4c24a49920190b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_sars_date_filter_is_a_400_on_h5n1",
      "name": "test_sars_date_filter_is_a_400_on_h5n1",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L925-L928",
      "signature": "def test_sars_date_filter_is_a_400_on_h5n1(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "715e41e8cf31549f97f7471b2b57ca32c142ff533419a8b8075a399f7cd0977e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_schemas_declare_different_date_fields",
      "name": "test_schemas_declare_different_date_fields",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L944-L951",
      "signature": "def test_schemas_declare_different_date_fields(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "12f3647a0bc6c1d60e09ad6aa048d38659abd0ee8f543feb7a2ad0d00dd3cea7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_sublineage_wildcard_expands_on_an_indexed_column",
      "name": "test_sublineage_wildcard_expands_on_an_indexed_column",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L915-L918",
      "signature": "def test_sublineage_wildcard_expands_on_an_indexed_column(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5240efa2d6b37c2442e77e349fcfe5c2d0b4d37c40d9408830c72fd3ff7daa8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_unknown_lineage_rejected_on_an_indexed_column",
      "name": "test_unknown_lineage_rejected_on_an_indexed_column",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L930-L933",
      "signature": "def test_unknown_lineage_rejected_on_an_indexed_column(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "042732ba7e1f9b2e1e3b9d3785d85d833bdbeecd9dfef54bd21ffb0da709c50b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_wildcard_matches_nothing_without_an_index",
      "name": "test_wildcard_matches_nothing_without_an_index",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L920-L923",
      "signature": "def test_wildcard_matches_nothing_without_an_index(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "20914f60fec99476ad634a1abbcf5e0d0e59ceb72c7d02cafdbd52a757eb2bc1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LiveApiTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "name": "LogitSlopeTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L223-L285",
      "signature": "class LogitSlopeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fef8954417de338cc3d190a6b2a63b7730352376a9e705e5fba999ca23c4f61",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_all_zero_observations_returns_no_fit",
      "name": "test_all_zero_observations_returns_no_fit",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L243-L248",
      "signature": "def test_all_zero_observations_returns_no_fit(self): # Regression: with only the continuity correction, a shrinking # denominator manufactured a tight positive slope (+0.105/week, CI # excluding zero) for a lineage observed zero times in every week.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2a2e485fb4e28f06159c0a2bd7360c71810c5cce4420567c9507693e9d78ab5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_dispersion_never_shrinks_the_interval_below_binomial",
      "name": "test_dispersion_never_shrinks_the_interval_below_binomial",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L261-L269",
      "signature": "def test_dispersion_never_shrinks_the_interval_below_binomial(self): # A short, near-perfect series estimates dispersion < 1. Letting that # through would report a CI narrower than binomial sampling allows.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5f5c0f64469f73ed83863cd9778b1f7de07fb68aa849bcec1ab43eb684e26a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_empty_weeks_are_dropped_not_counted",
      "name": "test_empty_weeks_are_dropped_not_counted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L280-L285",
      "signature": "def test_empty_weeks_are_dropped_not_counted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9043aaf64c1e8a5ac6b0c1cd9564f5b9fa90a61f2719d7aada33b4fae3abccda",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_falling_series_has_negative_slope",
      "name": "test_falling_series_has_negative_slope",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L231-L235",
      "signature": "def test_falling_series_has_negative_slope(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7173162745fd2ac3f417a9156861092cff25ed57286df714aa45543879210b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_flat_series_slope_near_zero",
      "name": "test_flat_series_slope_near_zero",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L237-L241",
      "signature": "def test_flat_series_slope_near_zero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "57e88a92408551f09cabf8ae1066475d2df88e829e9c5f600d616392554c482b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_overdispersion_widens_the_interval",
      "name": "test_overdispersion_widens_the_interval",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L271-L278",
      "signature": "def test_overdispersion_widens_the_interval(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e0861531dbb214f74dd7faa0bfc45f373fef192d11e48d3cbe4581efa572018",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_rising_series_has_positive_slope",
      "name": "test_rising_series_has_positive_slope",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L224-L229",
      "signature": "def test_rising_series_has_positive_slope(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "55de7763207c68467746d6c2e81cb0dad4f6fa7e8f71e8569936f6fa0c6d03cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_too_few_nonzero_weeks_returns_no_fit",
      "name": "test_too_few_nonzero_weeks_returns_no_fit",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L254-L256",
      "signature": "def test_too_few_nonzero_weeks_returns_no_fit(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c869d562e2714e75c7e6d9b4dbd8a739c3669f6dca44b327890bb252af3d5014",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_too_few_points_returns_no_fit",
      "name": "test_too_few_points_returns_no_fit",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L258-L259",
      "signature": "def test_too_few_points_returns_no_fit(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8d9db1045ebff6c3d347da6ae354ed0a3bd2f11820238e658816650aab7af3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_too_few_successes_returns_no_fit",
      "name": "test_too_few_successes_returns_no_fit",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L250-L252",
      "signature": "def test_too_few_successes_returns_no_fit(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed482a8b460d0813b5ec19b3c4cb9b8ea55dbe44deb517c281419d53d1231767",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LogitSlopeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests",
      "name": "MonthWindowTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L561-L587",
      "signature": "class MonthWindowTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f5085b10e5042541727f2de23d4a766324195f428cfafaff1e265e56412f117",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_december_end_computed_correctly",
      "name": "test_december_end_computed_correctly",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L577-L580",
      "signature": "def test_december_end_computed_correctly(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "91df01535f127b0ab9c9246892b63d87ce5753e9fd21b9db90a2852116d6d986",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonthWindowTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_leap_february",
      "name": "test_leap_february",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L582-L587",
      "signature": "def test_leap_february(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b4db49540cd1e7cb5a642efcae6ebf5e72689df188c6273ef7e0a90619c03cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonthWindowTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_previous_month",
      "name": "test_previous_month",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L562-L567",
      "signature": "def test_previous_month(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ede1e19243d505cf12241a9479b77a5908112e03dfd5c994a7e2be2cd283c077",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonthWindowTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_year_boundary",
      "name": "test_year_boundary",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L569-L575",
      "signature": "def test_year_boundary(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f30c60494c3ef1177eb1af3095f0cc4b1a0f04161b534088c5dbea2f5f8d214",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonthWindowTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests",
      "name": "MutationProfileTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L645-L665",
      "signature": "class MutationProfileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e3ce5fb7fa14a3c91663093b11982c591e777d9263593203e516b2e08af93f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests.test_gene_filter_is_case_insensitive",
      "name": "test_gene_filter_is_case_insensitive",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L653-L658",
      "signature": "def test_gene_filter_is_case_insensitive(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0156ffaa0c145753135c1dc86332eb654e921a7376e0dc2e00af67f0c71c52d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MutationProfileTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests.test_no_gene_filter_keeps_everything",
      "name": "test_no_gene_filter_keeps_everything",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L660-L665",
      "signature": "def test_no_gene_filter_keeps_everything(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "430eb8221572eb6ab3da115ad28eb363eb6c8cdc22583136115896b86232dbfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MutationProfileTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests",
      "name": "OutputFormatTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L708-L726",
      "signature": "class OutputFormatTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e6f11ee77e28f4d07fc60f67e687bc4fb72fa108ce8283443db200c939a9fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_empty_rows_still_emit_a_header",
      "name": "test_empty_rows_still_emit_a_header",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L725-L726",
      "signature": "def test_empty_rows_still_emit_a_header(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95a3144c3dca3da8c6b1cdd2937aa681660ec79e28a72dec4e1c5b9809211dd7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputFormatTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_json_round_trips",
      "name": "test_json_round_trips",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L716-L719",
      "signature": "def test_json_round_trips(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d04e0d70543a63328415862a383a9282deef6cbdf918bc80fd31405e47a7010",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputFormatTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_table_columns_align",
      "name": "test_table_columns_align",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L721-L723",
      "signature": "def test_table_columns_align(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73a42add23990fa26d9a2fb326dbe2e9e8af05399b65d1e761a29c5f6915ad97",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputFormatTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_tsv_has_a_header_and_blank_for_none",
      "name": "test_tsv_has_a_header_and_blank_for_none",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L711-L714",
      "signature": "def test_tsv_has_a_header_and_blank_for_none(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24a3c16d3436d989ccb20c8f1ade00892423c99162961256292ac35f4214f13c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputFormatTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "name": "PangoHelperTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L335-L368",
      "signature": "class PangoHelperTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf3d00fd74bf7b15e8f06a7ee4c333e94c879636359a0c3da13aae6ff5788089",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_ordinary_lineage_has_no_recombinant_parents",
      "name": "test_ordinary_lineage_has_no_recombinant_parents",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L364-L365",
      "signature": "def test_ordinary_lineage_has_no_recombinant_parents(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d5c436fface011937ed6e1c6c026acc8b1b1444fee1cf1461b849ed35926b60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_recombinant_parents_deduplicated",
      "name": "test_recombinant_parents_deduplicated",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L359-L362",
      "signature": "def test_recombinant_parents_deduplicated(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "083243e81a9d0e107a88e0abba53761c87e4df3f4cb3fa3ebce21189d5609fe0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_expands_one_level",
      "name": "test_unalias_expands_one_level",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L346-L347",
      "signature": "def test_unalias_expands_one_level(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e46474ddb98da97a5ee3ef2912992af6f4688218920063e262b908054defb5ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_full_walks_to_a_fixed_point",
      "name": "test_unalias_full_walks_to_a_fixed_point",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L349-L350",
      "signature": "def test_unalias_full_walks_to_a_fixed_point(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3216fc8cab8f7172be06a7ddb5ebefc88e52f55a9d20eb14427a748800925226",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_leaves_root_lineages_alone",
      "name": "test_unalias_leaves_root_lineages_alone",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L356-L357",
      "signature": "def test_unalias_leaves_root_lineages_alone(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c5ca1aee552b0474d5fe7ce66981a72f1e926fb0f877f4747fc8ecb94f6de36",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_stops_at_a_recombinant",
      "name": "test_unalias_stops_at_a_recombinant",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L352-L354",
      "signature": "def test_unalias_stops_at_a_recombinant(self): # A recombinant's alias entry is a list of parents, not a path.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1abd6b3d6e474d742219559c2b7f671627ceea9c9c278edb02daa255ea2e74ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unknown_prefix_is_returned_unchanged",
      "name": "test_unknown_prefix_is_returned_unchanged",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L367-L368",
      "signature": "def test_unknown_prefix_is_returned_unchanged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b53372b8f9dacacf7a28502955dc760a7d12f499c085deae171bea9b718654aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoHelperTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests",
      "name": "PangoProvenanceTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L483-L499",
      "signature": "class PangoProvenanceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "678893e66d15775349c67e3a7ce10113600fe07fbd80cef9d6d0b448729cdcd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests.test_blob_hashes_reported_per_file",
      "name": "test_blob_hashes_reported_per_file",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L484-L495",
      "signature": "def test_blob_hashes_reported_per_file(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b64364efc8bd30634336ad28c9d43653fa7e6a64552e68d1eff2fdab49db1a70",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoProvenanceTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests.test_no_fetch_yields_empty_provenance",
      "name": "test_no_fetch_yields_empty_provenance",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L497-L499",
      "signature": "def test_no_fetch_yields_empty_provenance(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfd68deb5491503eb4a2e41922362144480c0f2a71823535ae49a7f4aaa1e1ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PangoProvenanceTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "name": "PrevalenceCliTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L729-L868",
      "signature": "class PrevalenceCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e13245c6c35272f36148c979142f874fe3455ccdbaf80e4852fd79a24ed5554",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L732-L754",
      "signature": "def _run(self, argv, *, lineage_rows=None, date_rows=None, counts=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "067ecdc59386620a84debe5e16467ae1bca56b5e018379a572d41fc416e9a3c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run.fake_aggregated",
      "name": "fake_aggregated",
      "kind": "function",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L736-L742",
      "signature": "def fake_aggregated(base_url, filters, fields=())",
      "exported": true,
      "origin": "ast",
      "body_hash": "83adfaf10d8b57300583eb1102e974064ca6cb77031fc8efc3dae0b6851abc91",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run.fake_count",
      "name": "fake_count",
      "kind": "function",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L744-L745",
      "signature": "def fake_count(base_url, filters)",
      "exported": true,
      "origin": "ast",
      "body_hash": "af741bd45cef6849fa5806956d4495e29f27168ba326748b6968674bf6697d50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_aligned_window_is_not_reported_as_widened",
      "name": "test_aligned_window_is_not_reported_as_widened",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L773-L778",
      "signature": "def test_aligned_window_is_not_reported_as_widened(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2665f857f4c79b988524b2692d27dc4f0d5539fc66210c8e2d8afc190573a9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_discovery_mode_picks_the_commonest_lineages",
      "name": "test_discovery_mode_picks_the_commonest_lineages",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L780-L799",
      "signature": "def test_discovery_mode_picks_the_commonest_lineages(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b53cec888d3d68f6eaab9f483fbed9665f496428a4fc396d7c71ff56bc9ae62d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_empty_window_in_discovery_mode_exits_nonzero",
      "name": "test_empty_window_in_discovery_mode_exits_nonzero",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L834-L841",
      "signature": "def test_empty_window_in_discovery_mode_exits_nonzero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bf1c662483a4a66786493f7122c3e3020c18001d01173afab7ca04ef3347a10",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_named_lineages_survive_alongside_top",
      "name": "test_named_lineages_survive_alongside_top",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L819-L832",
      "signature": "def test_named_lineages_survive_alongside_top(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ac26d0d1ea2a2bf23b9fb4ea6e0884b98d836e6e98288ce02279e299f5edad6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_no_names_defaults_to_discovery",
      "name": "test_no_names_defaults_to_discovery",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L801-L812",
      "signature": "def test_no_names_defaults_to_discovery(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9352b961ac5b991885b4e2628eb5ae447daee57d8d0f808b73286ceab5419abd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_real_descendants_still_produce_the_note",
      "name": "test_real_descendants_still_produce_the_note",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L859-L868",
      "signature": "def test_real_descendants_still_produce_the_note(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df3259d3dfa262def0f087921ed76144dedfb03c3079faa49ce99dfb7915e653",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_top_below_one_is_rejected",
      "name": "test_top_below_one_is_rejected",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L814-L817",
      "signature": "def test_top_below_one_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab59a5a2cbfaf8ba528854f6a5984d2eec9a176c73e4879372c866151c4a17b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_undated_sequences_do_not_fake_a_descendant_note",
      "name": "test_undated_sequences_do_not_fake_a_descendant_note",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L843-L857",
      "signature": "def test_undated_sequences_do_not_fake_a_descendant_note(self): # Regression: the note used to compare a count() total against the sum # of the weekly bins. Sequences with no collection date are absent from # the bins, so any lineage that had some looked as though it had # descendants it does not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f44864fe2923b298d2696c3d12bf736d255f3a506613905ed64c78fb8588ca9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_window_snaps_to_whole_iso_weeks",
      "name": "test_window_snaps_to_whole_iso_weeks",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L756-L771",
      "signature": "def test_window_snaps_to_whole_iso_weeks(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b7b4afb83d0725a70a0ea17967c2be5747f480670aafc7332cfda7be75b34e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrevalenceCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests",
      "name": "QueryEncodingTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L529-L539",
      "signature": "class QueryEncodingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f6d80806e9661825abb0edcb7f89e255384df31a4a372b6014b01d585395986",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests.test_empty_string_preserved",
      "name": "test_empty_string_preserved",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L537-L539",
      "signature": "def test_empty_string_preserved(self): # An empty value is a real filter -- it selects null lineage calls.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fed46726964a0627d7cd3e83ec0b449f55ae6ab1074537f823afca266b5af546",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueryEncodingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests.test_list_values_repeat_the_key",
      "name": "test_list_values_repeat_the_key",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L530-L532",
      "signature": "def test_list_values_repeat_the_key(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed76aca8f1ef6b2b7718226c52ed3bfbaab8012977278b1a1b88ef91355d07cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueryEncodingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests.test_none_values_dropped",
      "name": "test_none_values_dropped",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L534-L535",
      "signature": "def test_none_values_dropped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ffe18b230f59dfb02a4bf2a3dd771654e91f7ff23cd528f4b111907e4c20b9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueryEncodingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests",
      "name": "ResolveLineageCliTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L871-L905",
      "signature": "class ResolveLineageCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab4e09abe91d771ee74f2e5fdfab5eb6dff8c5ccabfef08851751fad84d5aa06",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L872-L876",
      "signature": "def _run(self, argv)",
      "exported": false,
      "origin": "ast",
      "body_hash": "81f2c951c3ef3ce10b86a0aef686a19a0f4fcd2e22f84a37c5da5f5c4dd85314",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveLineageCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_current_name_exits_zero",
      "name": "test_current_name_exits_zero",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L891-L901",
      "signature": "def test_current_name_exits_zero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "363735578e9dd32346a570ae84b62e92404e3a4480d7f85162721daf265c591a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveLineageCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_lowercase_input_is_normalised",
      "name": "test_lowercase_input_is_normalised",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L903-L905",
      "signature": "def test_lowercase_input_is_normalised(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad06f41e70b44b2e749f7a59dab4653b8e4980ab97254a3947f1799f85723db9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveLineageCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_withdrawn_name_exits_nonzero",
      "name": "test_withdrawn_name_exits_nonzero",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L878-L889",
      "signature": "def test_withdrawn_name_exits_nonzero(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2405fd998d2108e7b2490d8b2aaa9a49eabed59eba4a7e826feb8326a23072ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResolveLineageCliTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "name": "SanitizeTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L668-L705",
      "signature": "class SanitizeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8b6a13b5a50623035cb8a55dfef21b18a9029fd520f6867ffb40fee352d590b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_control_characters_stripped",
      "name": "test_control_characters_stripped",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L681-L682",
      "signature": "def test_control_characters_stripped(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "10fccf755c72ba83bec9897dfaa120ee54d52956402dee2d93ab2b9788adab79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_error_detail_is_flattened",
      "name": "test_error_detail_is_flattened",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L701-L705",
      "signature": "def test_error_detail_is_flattened(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "469b4c0507ed5fd4b84a9d0cf0585be737b3b3635508679a1a95286eb5f8b84d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_json_output_stays_faithful",
      "name": "test_json_output_stays_faithful",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L695-L699",
      "signature": "def test_json_output_stays_faithful(self): # The encoder escapes control characters, so JSON consumers get the # exact value rather than a flattened one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e0d712ee526eb0263e1c705e2046c71cf47391c346a9f1a830ebb25200ae6c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_long_values_truncated",
      "name": "test_long_values_truncated",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L684-L686",
      "signature": "def test_long_values_truncated(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5d4399659d908481f53d021e866d040faaa2510f5a131d345d6208c28d71507",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_newline_cannot_forge_a_row",
      "name": "test_newline_cannot_forge_a_row",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L676-L679",
      "signature": "def test_newline_cannot_forge_a_row(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c4a6f27b1cf6eba953dd7c90a6b3d84d533dc3e5db4d1bc18317711ef2d6090",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_none_becomes_empty",
      "name": "test_none_becomes_empty",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L692-L693",
      "signature": "def test_none_becomes_empty(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f6d18d242a9b733f1154b1d83273c44c12ddda3b9b6b0587228dab60bee9b2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_ordinary_values_unchanged",
      "name": "test_ordinary_values_unchanged",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L688-L690",
      "signature": "def test_ordinary_values_unchanged(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f7cae9a1fadb492f8acc39c25fb3ee1902c1da8c62716d17c322d5028aedfc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_tab_in_a_label_cannot_break_tsv_columns",
      "name": "test_tab_in_a_label_cannot_break_tsv_columns",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L671-L674",
      "signature": "def test_tab_in_a_label_cannot_break_tsv_columns(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "159cd3c7e6c989ca34d41b89a3bc5ed43ff3ff061360ea6a212a4f96caac819b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SanitizeTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "name": "schema",
      "kind": "function",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L49-L69",
      "signature": "def schema(**overrides) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5db83609f2c645f503eb453b3d5a19125cca2ccdcbabb6782bcb7bbfa95cd81",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests",
      "name": "TopValuesTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L402-L427",
      "signature": "class TopValuesTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "919a759db5bea8c6ace15e8488814696effd9f76e74949526a9be047ccc4cecc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_empty_input",
      "name": "test_empty_input",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L426-L427",
      "signature": "def test_empty_input(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d5fadff70f2b9ab3ee14156bfa2086a6e9751d20918a50932c80c3564cc7e89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopValuesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_limit_respected",
      "name": "test_limit_respected",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L423-L424",
      "signature": "def test_limit_respected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a10c2d86d6f5c0ba6555324b525765f688e2f7c0b21d883380efe1965a8a51de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopValuesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_null_and_empty_calls_excluded",
      "name": "test_null_and_empty_calls_excluded",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L417-L421",
      "signature": "def test_null_and_empty_calls_excluded(self): # An unassigned lineage is the most common \"value\" in some windows and # is never the answer to \"what is circulating\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "687463de0b735e5165c7407afb916eb8c4a0dac52297d5fc098da8da05d7172e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopValuesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_ranked_by_count",
      "name": "test_ranked_by_count",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L411-L415",
      "signature": "def test_ranked_by_count(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce7ee081e13f3c5050041f0a3e7b841a879c4ce35fc8e913f873ec98dcb5079f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TopValuesTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests",
      "name": "WeekBinningTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L288-L313",
      "signature": "class WeekBinningTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f768ef02aeddfb5abeb8ce2955af1f0538f59658f5bed8862a8ee60765ad5a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_iso_week_start_is_monday",
      "name": "test_iso_week_start_is_monday",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L289-L292",
      "signature": "def test_iso_week_start_is_monday(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3804530158167c6d48f7eddf84d632e18373b4e9824260ef0096499cf8b86a88",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WeekBinningTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_partial_and_null_dates_are_unparseable",
      "name": "test_partial_and_null_dates_are_unparseable",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L294-L296",
      "signature": "def test_partial_and_null_dates_are_unparseable(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4370c1bae8a83deb296e9d5b8e35ee40ff6d17de592c0890312d7441c6b0bea1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WeekBinningTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_undated_rows_are_counted_separately",
      "name": "test_undated_rows_are_counted_separately",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L298-L307",
      "signature": "def test_undated_rows_are_counted_separately(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "466c00fcbb2fd8d79d143716dc5a66d8d6d138a5bf5ddd89f4df2c185cfcb1e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WeekBinningTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_week_range_is_inclusive_and_gapless",
      "name": "test_week_range_is_inclusive_and_gapless",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L309-L313",
      "signature": "def test_week_range_is_inclusive_and_gapless(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a93e611330f59ea0c8311d08b8db224a4d6cb7a90540de05c4be8b30173ecf90",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WeekBinningTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests",
      "name": "WhereParsingTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L542-L558",
      "signature": "class WhereParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "164e26a55e728f8a774624562321d80c2c5d3b8bb25da3966a53535f9f27a128",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_missing_equals_rejected",
      "name": "test_missing_equals_rejected",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L556-L558",
      "signature": "def test_missing_equals_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "be217271b51c83c1bdb33254c094b2a005d5823ff75461dfda822387c862f148",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WhereParsingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_range_suffix_accepted",
      "name": "test_range_suffix_accepted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L548-L549",
      "signature": "def test_range_suffix_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1ff674518438dcba7937762b2c88360ad4de9f3ab2a1bcc1882daf143940d42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WhereParsingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_unknown_field_suggests_alternatives",
      "name": "test_unknown_field_suggests_alternatives",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L551-L554",
      "signature": "def test_unknown_field_suggests_alternatives(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "72df84f7071868c5e3e39f4e4b9f12b2dfdd360d4e1d25ab09e1e15d12110cdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WhereParsingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_valid_field_accepted",
      "name": "test_valid_field_accepted",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L543-L546",
      "signature": "def test_valid_field_accepted(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b48298cc9e09ecfc1a6ebf4de211ec889d2c57bc0c4fe60934a7779556940e60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WhereParsingTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "name": "WilsonIntervalTests",
      "kind": "class",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L185-L209",
      "signature": "class WilsonIntervalTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e6e04343cb99751b2b10cacf667897f9473dc74468ec442338b6486c75ca837",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_empty_denominator_is_maximally_uncertain",
      "name": "test_empty_denominator_is_maximally_uncertain",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L208-L209",
      "signature": "def test_empty_denominator_is_maximally_uncertain(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "357ac9a0b24eb1b290ced7388d500c4193660e354ab1668538b2d2f0a75c9f32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WilsonIntervalTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_interval_brackets_the_estimate",
      "name": "test_interval_brackets_the_estimate",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L198-L201",
      "signature": "def test_interval_brackets_the_estimate(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e7c03f8a3635a6cd15257ccc21922e15ca0f7de2f1259aa0b182d8a49a7293f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WilsonIntervalTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_interval_narrows_with_n",
      "name": "test_interval_narrows_with_n",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L203-L206",
      "signature": "def test_interval_narrows_with_n(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2aef209ef22fff97c0ba730ac58e48c4505354610e614bb17fd66a8a9f2998de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WilsonIntervalTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_interval_stays_inside_the_unit_interval",
      "name": "test_interval_stays_inside_the_unit_interval",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L192-L196",
      "signature": "def test_interval_stays_inside_the_unit_interval(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c07a203a2f014b38d6ef83a6ca987608ca38a8c517c79141388136fb00ca3ed8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WilsonIntervalTests"
    },
    {
      "id": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_zero_successes_has_nonzero_upper_bound",
      "name": "test_zero_successes_has_nonzero_upper_bound",
      "kind": "method",
      "path": "tests/pathogen-variant-surveillance/test_scripts.py",
      "span": "L186-L190",
      "signature": "def test_zero_successes_has_nonzero_upper_bound(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a09b6c3d45e483cf9a0ab02fd9f25b879a75ec263003567a1a65df5eb3e5103",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WilsonIntervalTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L1-L233",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1f5c6e2916fd6882f8c1049289037a6e488e4f846fb2a23773a799d9978c1dc8",
      "chars": 9721,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests",
      "name": "GeneListReadingTests",
      "kind": "class",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L79-L100",
      "signature": "class GeneListReadingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c7e7c526d355a2bde86944539a969a88ac19f2bc386316dbfb80966752b5798",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L80-L83",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.test_a_csv_uses_its_first_column",
      "name": "test_a_csv_uses_its_first_column",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L92-L95",
      "signature": "def test_a_csv_uses_its_first_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71a15225c4261721eb755cf4343e38b14b942915ff3c374c3f44cca8d6b737ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.test_a_plain_text_list_is_read_one_gene_per_line",
      "name": "test_a_plain_text_list_is_read_one_gene_per_line",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L85-L90",
      "signature": "def test_a_plain_text_list_is_read_one_gene_per_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "80b93c615fe3ddd57fdb6a5940a71ce98e488326f5eaa81249d6305a3ed671f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.test_a_tsv_is_split_on_tabs_not_commas",
      "name": "test_a_tsv_is_split_on_tabs_not_commas",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L97-L100",
      "signature": "def test_a_tsv_is_split_on_tabs_not_commas(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39b9fa4fb3f3c8a6dc94073863adf96447e04e8a101171344b68f6c714a4d807",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GeneListReadingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#LibraryTests",
      "name": "LibraryTests",
      "kind": "class",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L213-L228",
      "signature": "class LibraryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "81b38ad709f651d50f8c362bb1f5aa0cba7c72bcc3fe2ffaf5dc607ce9d802ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#LibraryTests.test_the_default_libraries_are_named_and_versioned",
      "name": "test_the_default_libraries_are_named_and_versioned",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L214-L222",
      "signature": "def test_the_default_libraries_are_named_and_versioned(self) -> None: # Enrichr library names carry a year; an unversioned name silently # resolves to whatever is current and makes results irreproducible.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1a8e51f30958fa91f2868f3bdad546328f74b4d4c00666571c936f4c0afc78b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LibraryTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#LibraryTests.test_the_default_set_is_free_of_duplicates",
      "name": "test_the_default_set_is_free_of_duplicates",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L224-L228",
      "signature": "def test_the_default_set_is_free_of_duplicates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31301b6ebe4facbf82a8c8111ed6ddcae689a955b8388b926abe7ed4a530b440",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LibraryTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "name": "RankedFileTests",
      "kind": "class",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L173-L210",
      "signature": "class RankedFileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6ebd15bf7ce0fe88f279fa93c6cc0dfeaaf578857e90986e2b0f9e3326c2925",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "name": "_rnk",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L179-L182",
      "signature": "def _rnk(self, text: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "b9fbfdb4fb5aa3e15abd98b0df4604039d811bd0a0f037bb274cb1be99846c09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L174-L177",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_header_row_is_detected_and_dropped",
      "name": "test_a_header_row_is_detected_and_dropped",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L189-L193",
      "signature": "def test_a_header_row_is_detected_and_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f5f318967495daf1248096a08d9837b6557118167aeb7392f952523cbfb68b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_headerless_two_column_file_is_read_directly",
      "name": "test_a_headerless_two_column_file_is_read_directly",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L184-L187",
      "signature": "def test_a_headerless_two_column_file_is_read_directly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ab007a10bd73eb0e22cc40911abda8b357997bc6e3dc75d8cb9602db7b7e33a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_single_column_file_is_refused",
      "name": "test_a_single_column_file_is_refused",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L195-L198",
      "signature": "def test_a_single_column_file_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b11724db99f5081f8cf5abbb342dddac8666485f6d2728dd77a3fcf38334fdb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_rows_with_unparseable_scores_are_dropped",
      "name": "test_rows_with_unparseable_scores_are_dropped",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L204-L206",
      "signature": "def test_rows_with_unparseable_scores_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ab6ccc95c96fc61c09235eeb8df4b86254f76de82fc7cb5fed7485647efe8a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_symbols_are_normalised_for_the_organism",
      "name": "test_symbols_are_normalised_for_the_organism",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L200-L202",
      "signature": "def test_symbols_are_normalised_for_the_organism(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e8eaedaf28fb3986e799cc95ccd2e499fb9d79b0cb27b4112375a356afcbd90",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_the_result_is_sorted_descending",
      "name": "test_the_result_is_sorted_descending",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L208-L210",
      "signature": "def test_the_result_is_sorted_descending(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54e78c39a8ef3eab3d29a6ed329cbc09c2d10a25c31e3f5a2861c8f005886676",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankedFileTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "name": "RankingTests",
      "kind": "class",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L103-L170",
      "signature": "class RankingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6df1ea32c8ea85b9e475c3534f1cdf8af1868f41dcf71e14618fa7ddf0ec325a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "name": "_deseq2",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L109-L112",
      "signature": "def _deseq2(self, text: str) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "e874a735f60536f568a170b03a7502a95fe79035dcd4e2a1e4ea920d43464bf9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L104-L107",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_a_table_with_neither_metric_exits_naming_its_columns",
      "name": "test_a_table_with_neither_metric_exits_naming_its_columns",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L145-L149",
      "signature": "def test_a_table_with_neither_metric_exits_naming_its_columns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d093c4a80e85effe5d91f3508fbac7844c30b3f5208ce1fe9093b4751337932d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_a_zero_pvalue_is_clipped_rather_than_becoming_infinite",
      "name": "test_a_zero_pvalue_is_clipped_rather_than_becoming_infinite",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L139-L143",
      "signature": "def test_a_zero_pvalue_is_clipped_rather_than_becoming_infinite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61237682a7b2a7ce8cd9e370ffafc0ce1d5669524e4afa9083981943a257a018",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_column_names_are_matched_case_insensitively",
      "name": "test_column_names_are_matched_case_insensitively",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L151-L154",
      "signature": "def test_column_names_are_matched_case_insensitively(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c83d22cc9c58cc39a67566952d11ae0587537b461bfde112bb06fbb692a7997",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_duplicate_symbols_keep_their_first_occurrence",
      "name": "test_duplicate_symbols_keep_their_first_occurrence",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L161-L165",
      "signature": "def test_duplicate_symbols_keep_their_first_occurrence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38d70d567f78f2b4f7ad0168920d2b0d68b8beee398600e2a7c0b3b918444b68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_rows_with_missing_statistics_are_dropped",
      "name": "test_rows_with_missing_statistics_are_dropped",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L156-L159",
      "signature": "def test_rows_with_missing_statistics_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18220523a2351e2195efb8e6656843f8a0765fcb85659aeccf563fe1d4530779",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_fallback_metric_keeps_the_direction_of_the_fold_change",
      "name": "test_the_fallback_metric_keeps_the_direction_of_the_fold_change",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L125-L137",
      "signature": "def test_the_fallback_metric_keeps_the_direction_of_the_fold_change(self) -> None: # sign(log2FC) * -log10(p): a strongly down-regulated gene must land at # the bottom of the ranking, not the top.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b9a8ba66a33975516bbe3d28a23f8fca76b8b177ff6736fe0c07b07170a18f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_ranking_is_returned_in_descending_order",
      "name": "test_the_ranking_is_returned_in_descending_order",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L167-L170",
      "signature": "def test_the_ranking_is_returned_in_descending_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7bbe06cdee744515dda260637a06bd3f3ef0b0acc6d76acc133196f6f6b39ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_wald_statistic_is_preferred_when_present",
      "name": "test_the_wald_statistic_is_preferred_when_present",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L114-L123",
      "signature": "def test_the_wald_statistic_is_preferred_when_present(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8986b8e25af462e1c47628cbe047b5039c2ee3f93fb5daba8db89cf9d5d23125",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RankingTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "name": "SymbolCleaningTests",
      "kind": "class",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L35-L76",
      "signature": "class SymbolCleaningTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f7266ae4f62faef9ff46fce79fbda7705aeaf9f0a15b5f0dee1dc0ad5ac947d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_an_unknown_organism_leaves_case_alone",
      "name": "test_an_unknown_organism_leaves_case_alone",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L50-L53",
      "signature": "def test_an_unknown_organism_leaves_case_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ee04a76d923e806161faab2b75103060ee526f179beb4f8c2686f96b65159fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_blank_and_placeholder_entries_are_dropped",
      "name": "test_blank_and_placeholder_entries_are_dropped",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L55-L61",
      "signature": "def test_blank_and_placeholder_entries_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f14e5ac97aa63efeaa68b79c9f989e162ec8cb1c69012409e1b8961b46a8beb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_duplicates_are_removed_after_normalisation",
      "name": "test_duplicates_are_removed_after_normalisation",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L63-L67",
      "signature": "def test_duplicates_are_removed_after_normalisation(self) -> None: # \"tp53\" and \"TP53\" are the same gene once case is normalised.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6a06ddb1e8fbda4318a7b6d05cbdd8ff39942fc35c6cae8c475a549c2604f72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_human_symbols_are_upper_cased",
      "name": "test_human_symbols_are_upper_cased",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L36-L40",
      "signature": "def test_human_symbols_are_upper_cased(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e56d03a5e2c1ff1dbb6812e68b82eb1b2a30a24db56a72364246f9071645a8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_input_order_is_preserved",
      "name": "test_input_order_is_preserved",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L69-L73",
      "signature": "def test_input_order_is_preserved(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e5303509ce9b1ba109d62a4fb23e1e4d8c5dd33b59ea965f39a48b8d1d53f5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_mouse_symbols_are_title_cased",
      "name": "test_mouse_symbols_are_title_cased",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L42-L48",
      "signature": "def test_mouse_symbols_are_title_cased(self) -> None: # Mouse libraries key on Trp53, not TRP53 -- getting this wrong returns # an empty enrichment with no error.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a547b04811a18878bf4cdb9eb640bbbf50c48532f10c0c1f1070113a57d1b1ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_surrounding_whitespace_is_stripped",
      "name": "test_surrounding_whitespace_is_stripped",
      "kind": "method",
      "path": "tests/pathway-enrichment/test_scripts.py",
      "span": "L75-L76",
      "signature": "def test_surrounding_whitespace_is_stripped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f476d7a75b7b30a8a51b3b1f6e19efa3f886b34603ecf4890c5f4220e1f2c559",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SymbolCleaningTests"
    },
    {
      "id": "tests/pdf/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pdf/test_scripts.py",
      "span": "L1-L288",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "992dcc21d5c881dcb5741e2fac8ca9b905a08d80ca6d935842fc0540072d1c7c",
      "chars": 11343,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "name": "BoundingBoxCheckTests",
      "kind": "class",
      "path": "tests/pdf/test_scripts.py",
      "span": "L122-L190",
      "signature": "class BoundingBoxCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8cbf20f0ef9e778b0cb876f171aa31ff2aa042225cce329380e4b4dcae13f06d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "name": "_failures",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L132-L133",
      "signature": "def _failures(self, *fields) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "f27f830fddf95d9566dab22902f4fee632b0ec00c358402d5d12ad9b47faba4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._messages",
      "name": "_messages",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L125-L130",
      "signature": "def _messages(self, *fields) -> list[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "aabe56dc0b61c2a04ff900e4275f7e1c2506e47d3a6605ba6110d41a12dc515f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_clean_layout_reports_only_the_field_count",
      "name": "test_a_clean_layout_reports_only_the_field_count",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L135-L142",
      "signature": "def test_a_clean_layout_reports_only_the_field_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dea371046a0f5cab999c53941275b4b1ebf4bcaec9bee135307000cdd8554901",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_label_overlapping_its_own_entry_is_reported",
      "name": "test_a_label_overlapping_its_own_entry_is_reported",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L149-L155",
      "signature": "def test_a_label_overlapping_its_own_entry_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53a8ac6103f616dd59983f2fd18704b8e1a32e53d85f6157a3de1045bd439e2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_an_empty_form_reports_zero_fields",
      "name": "test_an_empty_form_reports_zero_fields",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L144-L147",
      "signature": "def test_an_empty_form_reports_zero_fields(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61242ca0091c1f3271550f28735302ab73146cc254a0254065ef6eee47568d79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_on_different_pages_never_collide",
      "name": "test_boxes_on_different_pages_never_collide",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L167-L174",
      "signature": "def test_boxes_on_different_pages_never_collide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "21e5d44f0d9c164d157509dec4cf3bb24c1bfefb3a0e1031029399466d8de453",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_that_merely_touch_do_not_count_as_intersecting",
      "name": "test_boxes_that_merely_touch_do_not_count_as_intersecting",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L176-L180",
      "signature": "def test_boxes_that_merely_touch_do_not_count_as_intersecting(self) -> None: # Edge-sharing is how adjacent fields are normally laid out.",
      "exported": true,
      "origin": "ast",
      "body_hash": "102a8ca432ddca88ab151d91e74a4177faf061ab9ae58d39f584e5b92fcf0396",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_the_report_stops_after_twenty_messages",
      "name": "test_the_report_stops_after_twenty_messages",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L182-L190",
      "signature": "def test_the_report_stops_after_twenty_messages(self) -> None: # A form where everything overlaps would otherwise produce thousands.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfa67dcdad68d4c0fa2ca05800d99d013271b6e09cb9a2079aeeddbca28eb83b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_two_fields_overlapping_each_other_are_reported",
      "name": "test_two_fields_overlapping_each_other_are_reported",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L157-L165",
      "signature": "def test_two_fields_overlapping_each_other_are_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "69fea18f1e70a1db143789224881665c32c4bf7d231328af748eb2dfe037b92b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BoundingBoxCheckTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#coords",
      "name": "coords",
      "kind": "function",
      "path": "tests/pdf/test_scripts.py",
      "span": "L35-L39",
      "signature": "def coords()",
      "exported": true,
      "origin": "ast",
      "body_hash": "33b2e8133c700bf906e00440ddb2859172b51e2509b592636b9f79252d007d97",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#field",
      "name": "field",
      "kind": "function",
      "path": "tests/pdf/test_scripts.py",
      "span": "L113-L119",
      "signature": "def field(description: str, label: list, entry: list, page: int = 1) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "241e46e15a6e7e8725485303aeec435ebbd8570e91b12828b79753232ea803d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "name": "FieldDescriptorTests",
      "kind": "class",
      "path": "tests/pdf/test_scripts.py",
      "span": "L193-L234",
      "signature": "class FieldDescriptorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba7cdec99bb5be51891b4b24b77faeb8c159801feb0f0d6f8a0edb893d6d86ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "name": "_descriptor",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L196-L200",
      "signature": "def _descriptor(self, raw: dict, field_id: str = \"full_name\") -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "1631648f20c8ac9d03c1794f217a95b1c70fc55e1eb8db57e8a986028c138c76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldDescriptorTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_checkbox_learns_its_checked_and_unchecked_values",
      "name": "test_a_checkbox_learns_its_checked_and_unchecked_values",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L207-L213",
      "signature": "def test_a_checkbox_learns_its_checked_and_unchecked_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fc16a5a4b559e7ff41cfa6eeb41c91fd967752b1f28221b973ddbf4f256aff2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldDescriptorTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_choice_field_carries_its_options",
      "name": "test_a_choice_field_carries_its_options",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L221-L229",
      "signature": "def test_a_choice_field_carries_its_options(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4e63984e233ce6997576a974de74ab4006ae3dac0e49b0401912fcf63e75d8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldDescriptorTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_text_field_is_typed_as_text",
      "name": "test_a_text_field_is_typed_as_text",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L202-L205",
      "signature": "def test_a_text_field_is_typed_as_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "00eab95f5c80442b1a9fac5d538a5c793531998b71dc65e6cb80a92e62535567",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldDescriptorTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_an_unrecognised_field_type_is_labelled_rather_than_dropped",
      "name": "test_an_unrecognised_field_type_is_labelled_rather_than_dropped",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L231-L234",
      "signature": "def test_an_unrecognised_field_type_is_labelled_rather_than_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6dadb3510974ac8c41a022face38cb67c46bd203d880bf19fed4e5c00b4ca55a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldDescriptorTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_the_state_order_does_not_decide_which_value_means_checked",
      "name": "test_the_state_order_does_not_decide_which_value_means_checked",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L215-L219",
      "signature": "def test_the_state_order_does_not_decide_which_value_means_checked(self) -> None: # \"/Off\" is the unchecked state wherever it appears in the list.",
      "exported": true,
      "origin": "ast",
      "body_hash": "540a7a55a887b543e3c3ef324ec7613607b48aa8f59350471ebbf4d0b05ebf44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FieldDescriptorTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "name": "ImageToPdfTransformTests",
      "kind": "class",
      "path": "tests/pdf/test_scripts.py",
      "span": "L42-L87",
      "signature": "class ImageToPdfTransformTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f707a4b97f40a264f5cc11b07cdc7d5a347618005a4370b2d1eaec8ba46d9307",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_a_box_at_the_image_bottom_lands_at_the_pdf_origin",
      "name": "test_a_box_at_the_image_bottom_lands_at_the_pdf_origin",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L57-L63",
      "signature": "def test_a_box_at_the_image_bottom_lands_at_the_pdf_origin(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ae9b0ba536c620aedde8c44c7e9fafa95cc6c44374b345a86f955a2849f8fcb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageToPdfTransformTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_a_box_at_the_image_origin_lands_at_the_pdf_top",
      "name": "test_a_box_at_the_image_origin_lands_at_the_pdf_top",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L45-L55",
      "signature": "def test_a_box_at_the_image_origin_lands_at_the_pdf_top(self) -> None: # Image (0,0)-(100,50) on a 1000x500 image over a 200x100 page: # x scales by 0.2, y flips -> top of the page.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0755d8fed513fe126c239603fe57ba33a85222d24992e0f57c8010ccb7157ef8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageToPdfTransformTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_identity_scaling_only_flips_the_y_axis",
      "name": "test_identity_scaling_only_flips_the_y_axis",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L65-L73",
      "signature": "def test_identity_scaling_only_flips_the_y_axis(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "57101fb39dc28a023a3b1b33d5a570a9aa3e2e0393c72a43d7190918c4880459",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageToPdfTransformTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_the_box_keeps_its_size_under_a_pure_flip",
      "name": "test_the_box_keeps_its_size_under_a_pure_flip",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L75-L80",
      "signature": "def test_the_box_keeps_its_size_under_a_pure_flip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f72d8f019ae378e055392f089d90a7d44feeeaf07ba3e32cf56c98522109ca1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageToPdfTransformTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_the_transform_is_invertible_within_rounding",
      "name": "test_the_transform_is_invertible_within_rounding",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L82-L87",
      "signature": "def test_the_transform_is_invertible_within_rounding(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4c679be2fec0e73831775557950a5323e7f3f6965f8e0e834b1aa411707179e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageToPdfTransformTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#PdfCoordinateTests",
      "name": "PdfCoordinateTests",
      "kind": "class",
      "path": "tests/pdf/test_scripts.py",
      "span": "L90-L110",
      "signature": "class PdfCoordinateTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1beb2790b9025e9dfe321387fc2d117758de0cb1929b025ad006d1a7e335b57a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_a_box_spanning_the_full_page_is_unchanged_vertically",
      "name": "test_a_box_spanning_the_full_page_is_unchanged_vertically",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L107-L110",
      "signature": "def test_a_box_spanning_the_full_page_is_unchanged_vertically(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c4a41ddb7c2a595853f5cd37495cf4beaecaa2c9a3b941618f731727999abc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfCoordinateTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_flipping_twice_returns_the_original",
      "name": "test_flipping_twice_returns_the_original",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L100-L105",
      "signature": "def test_flipping_twice_returns_the_original(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ae772de9617c08a238ed53eeb10812e1c11ae30c4e00a3e5ad9dddff2301ac6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfCoordinateTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_the_y_axis_is_flipped_about_the_page_height",
      "name": "test_the_y_axis_is_flipped_about_the_page_height",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L91-L98",
      "signature": "def test_the_y_axis_is_flipped_about_the_page_height(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7fc27a4027f31c0f10d5d70934dd02be7d708d523b6d9721189def5ec9330b39",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfCoordinateTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ValueValidationTests",
      "name": "ValueValidationTests",
      "kind": "class",
      "path": "tests/pdf/test_scripts.py",
      "span": "L237-L283",
      "signature": "class ValueValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ccc2690acb4b9d40b3f955987cc7aa78f40fbae341459ffd96ec53b31d7b76b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pdf/test_scripts.py#ValueValidationTests._error",
      "name": "_error",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L238-L242",
      "signature": "def _error(self, field_info, value)",
      "exported": false,
      "origin": "ast",
      "body_hash": "8451e7ba0b251849cee1da831cfa023008770b69642fda29356f24bbb1477b91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValueValidationTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_checkbox_accepts_only_its_two_declared_states",
      "name": "test_a_checkbox_accepts_only_its_two_declared_states",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L251-L258",
      "signature": "def test_a_checkbox_accepts_only_its_two_declared_states(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "74b3a71f057faaffbf65ea0ea3aab9b95f649ae7751eb6939c94f1e630a5f361",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValueValidationTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_choice_field_accepts_only_its_option_values",
      "name": "test_a_choice_field_accepts_only_its_option_values",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L260-L268",
      "signature": "def test_a_choice_field_accepts_only_its_option_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "500aef1b1babb53e59137b8bd2ee46b099a3fb6f90543eb06a10877abccc8726",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValueValidationTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_radio_group_accepts_only_its_option_values",
      "name": "test_a_radio_group_accepts_only_its_option_values",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L270-L277",
      "signature": "def test_a_radio_group_accepts_only_its_option_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e81f77bf69b7757aeef0fe370e00c498015046ae1b0e4c1f596cbac785a81e97",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValueValidationTests"
    },
    {
      "id": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_text_field_accepts_any_string",
      "name": "test_a_text_field_accepts_any_string",
      "kind": "method",
      "path": "tests/pdf/test_scripts.py",
      "span": "L279-L283",
      "signature": "def test_a_text_field_accepts_any_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "78b75c283d2f742cd7c61cc9d4621896a6be496e5464d5b4c2243de9982f351d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValueValidationTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L1-L397",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ddac2356a8a91e2d1d6766466eb4fd1becd808b86b51c90f656694294415cab7",
      "chars": 16992,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#CitationTests",
      "name": "CitationTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L192-L224",
      "signature": "class CitationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "245a1d4f90b3c7a924b914d5f4bd025d6891347d194f722bb4f9b59529576c02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#CitationTests._write_references",
      "name": "_write_references",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L193-L201",
      "signature": "def _write_references(self, root: Path) -> Path",
      "exported": false,
      "origin": "ast",
      "body_hash": "ee89b3c689335253f280a062ce69736aa16d920437c9ada637f79098b7352a48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#CitationTests.test_matching_citation_is_valid_without_prose_echo",
      "name": "test_matching_citation_is_valid_without_prose_echo",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L203-L211",
      "signature": "def test_matching_citation_is_valid_without_prose_echo(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8fea50a8d034b849c070867536d9062a0a980ab0183f13215fb8f629634ff13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#CitationTests.test_missing_reference_reports_only_identifier_and_line",
      "name": "test_missing_reference_reports_only_identifier_and_line",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L213-L224",
      "signature": "def test_missing_reference_reports_only_identifier_and_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ff818efd58ec748060392fade9c849c39efc8614b857ffda753817275f60320",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CitationTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ClaimEvidenceTests",
      "name": "ClaimEvidenceTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L137-L157",
      "signature": "class ClaimEvidenceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cf808f5a24f324a2b91d3cc04806af43223039c4f6bd7cacae95022f43b8b57",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#ClaimEvidenceTests.test_supported_claim_without_evidence_is_invalid",
      "name": "test_supported_claim_without_evidence_is_invalid",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L149-L157",
      "signature": "def test_supported_claim_without_evidence_is_invalid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d58540f945160f11c6e885c7179b1c8d8eec2df13dd5f96a9e95ecb06ee068e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaimEvidenceTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ClaimEvidenceTests.test_template_matrix_is_structurally_valid_with_gaps",
      "name": "test_template_matrix_is_structurally_valid_with_gaps",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L138-L147",
      "signature": "def test_template_matrix_is_structurally_valid_with_gaps(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20a710611c5a1e609f0cbdd94d73e13b54cb92aee281d74df454d81501c838cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClaimEvidenceTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "name": "FileSafetyAndStaticTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L289-L387",
      "signature": "class FileSafetyAndStaticTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "70a00fcaa3662bfd8448c492388d3a00e8e6ca6b3a1f68b648326bcd2b21420a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_assets_parse_and_source_ledger_is_dated",
      "name": "test_assets_parse_and_source_ledger_is_dated",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L362-L371",
      "signature": "def test_assets_parse_and_source_ledger_is_dated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "050cb7666900ca018dcb851566e236795acb1522caafd006be6671bbf7c1e8f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_no_bytecode_or_removed_schematic_scripts",
      "name": "test_no_bytecode_or_removed_schematic_scripts",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L384-L387",
      "signature": "def test_no_bytecode_or_removed_schematic_scripts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a00528593c83334fc0cbf6c7b754f9cbeb4ca85c9b062421a747a04ab9b469c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_oversized_json_is_rejected_before_parsing",
      "name": "test_oversized_json_is_rejected_before_parsing",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L300-L305",
      "signature": "def test_oversized_json_is_rejected_before_parsing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "68ea375f26cec6f2a5d5cf84d5f01b7f8aa3f805639b45e302e38fce59c5fd55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_private_output_refuses_implicit_overwrite",
      "name": "test_private_output_refuses_implicit_overwrite",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L290-L298",
      "signature": "def test_private_output_refuses_implicit_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e092e2fc675c20789afc6d335ca9c29030636e394c1c685a0d2f336c6097efff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_scripts_have_no_network_dynamic_execution_or_secret_access",
      "name": "test_scripts_have_no_network_dynamic_execution_or_secret_access",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L320-L360",
      "signature": "def test_scripts_have_no_network_dynamic_execution_or_secret_access(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca657b2c7bfcb150e63103b48946ea1b5f404921613aeff33b43344d0e9437f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_skill_frontmatter_and_progressive_disclosure",
      "name": "test_skill_frontmatter_and_progressive_disclosure",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L373-L382",
      "signature": "def test_skill_frontmatter_and_progressive_disclosure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71e62526d4604dc5839a63ddc7a4648037b79259c46aed09067709d41491ed0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_symlink_input_is_rejected",
      "name": "test_symlink_input_is_rejected",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L307-L318",
      "signature": "def test_symlink_input_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "908ac41bbebd2d42db47fc1b260b410a15245944ff25edbe6dd279b993d01279",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileSafetyAndStaticTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#IntakeTests",
      "name": "IntakeTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L68-L92",
      "signature": "class IntakeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "88ec2ba03f9d88e2a2068b4f5e52c84164082b9f6a8ae985b9ad3195787d7de3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#IntakeTests.test_completed_local_intake_is_ready",
      "name": "test_completed_local_intake_is_ready",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L77-L83",
      "signature": "def test_completed_local_intake_is_ready(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "57e4c532391a1f252aff0bb8f7990cfb178b3dbd20b1dc17c69391c4e24716c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntakeTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#IntakeTests.test_external_service_and_reuse_are_blocked",
      "name": "test_external_service_and_reuse_are_blocked",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L85-L92",
      "signature": "def test_external_service_and_reuse_are_blocked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d8f7b9bc338683ef6643d6b0493dcdeab423438ab0a610492713f4bbe9085d80",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntakeTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#IntakeTests.test_template_is_safely_blocked",
      "name": "test_template_is_safely_blocked",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L69-L75",
      "signature": "def test_template_is_safely_blocked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9afbdac7b5346edc462019892ef1aad2fb63b48a6a44a49588b9a52f2508a6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IntakeTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#load_asset_json",
      "name": "load_asset_json",
      "kind": "function",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L50-L51",
      "signature": "def load_asset_json(name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "fde4c05ea2f623155b0eec8a9583c4114cd022946d6a1b25036b28f6191d1d72",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#ready_intake",
      "name": "ready_intake",
      "kind": "function",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L54-L65",
      "signature": "def ready_intake() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "29b8e2e59c5f0b8832000c1a409c3e284636bb3a44acb1e66d949852f4ce8565",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#ReportingGuidelineTests",
      "name": "ReportingGuidelineTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L95-L134",
      "signature": "class ReportingGuidelineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "da14c9d13623a88c18fb184c45f5af960a0dc61889388f7dc16d20b253558bf8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_ai_rct_adds_extension",
      "name": "test_ai_rct_adds_extension",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L103-L108",
      "signature": "def test_ai_rct_adds_extension(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7654dd37ea535157d1fe977300182b22c435c58cb1456c9a2f13a45201502ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportingGuidelineTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_coverage_is_complete_record_but_not_quality_score",
      "name": "test_coverage_is_complete_record_but_not_quality_score",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L110-L123",
      "signature": "def test_coverage_is_complete_record_but_not_quality_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b26fa3b921d367b13d1d1ded90db42158918ff7a9022ebdd1cad166ea1cd48ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportingGuidelineTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_rct_profile_selects_current_consort",
      "name": "test_rct_profile_selects_current_consort",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L96-L101",
      "signature": "def test_rct_profile_selects_current_consort(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e30692c5d02b4182c307146fb2848832f6d14d0b5d2f8ccccc295dfea5741afa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportingGuidelineTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_reported_item_without_location_is_invalid",
      "name": "test_reported_item_without_location_is_invalid",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L125-L134",
      "signature": "def test_reported_item_without_location_is_invalid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "94044a94991c3d5d24883b0c70b5d1094fc712b4ad6722cfa54d64ebc3cdb58d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportingGuidelineTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests",
      "name": "ScaffoldAndLintTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L227-L286",
      "signature": "class ScaffoldAndLintTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe26d42a3a3a05dc42350fcb99cf79b2fc9a9f1e2d67d3ef55003e677c57a5bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_abuse_decision_and_missing_action_are_flagged_without_echo",
      "name": "test_abuse_decision_and_missing_action_are_flagged_without_echo",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L267-L286",
      "signature": "def test_abuse_decision_and_missing_action_are_flagged_without_echo(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e0d7409a133075935e6bb6d1518410be06b9fa9075f33caa4ccf7830422a043",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldAndLintTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_complete_structured_review_passes_lint",
      "name": "test_complete_structured_review_passes_lint",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L242-L265",
      "signature": "def test_complete_structured_review_passes_lint(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f28923391952a704696f20399585ba206eac479973e92040fa0b4eaa1ddb9ca2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldAndLintTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_has_separate_channels_and_no_manuscript_prose",
      "name": "test_scaffold_has_separate_channels_and_no_manuscript_prose",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L232-L240",
      "signature": "def test_scaffold_has_separate_channels_and_no_manuscript_prose(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8113d3eb11086e060228e0971607cdadaacc56bd6f25bc6e71c9bf554c9095dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldAndLintTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_requires_ready_intake",
      "name": "test_scaffold_requires_ready_intake",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L228-L230",
      "signature": "def test_scaffold_requires_ready_intake(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "48fecfb4910e5fdead5b1db8954ce8bbae9b2692f6784e1a911c061874747302",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldAndLintTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests",
      "name": "StatisticsReproducibilityTests",
      "kind": "class",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L160-L189",
      "signature": "class StatisticsReproducibilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "64bac5460905752fdfd0c1a6b7b72fe0c9355e452a45b0e4b39036e6b55d9ed0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_missing_core_item_is_invalid",
      "name": "test_missing_core_item_is_invalid",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L172-L179",
      "signature": "def test_missing_core_item_is_invalid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd90e8fa0042264289099ba879adbfbaf34ba4cd2e5f5b21d8144efbe9e5f4d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsReproducibilityTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_template_is_valid_without_becoming_a_score",
      "name": "test_template_is_valid_without_becoming_a_score",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L161-L170",
      "signature": "def test_template_is_valid_without_becoming_a_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fbc0efb884435487e03abe61e0b533799232dac071ae5cc94e40f7efdf1bbeb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsReproducibilityTests"
    },
    {
      "id": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_verified_item_requires_evidence_location",
      "name": "test_verified_item_requires_evidence_location",
      "kind": "method",
      "path": "tests/peer-review/test_scripts.py",
      "span": "L181-L189",
      "signature": "def test_verified_item_requires_evidence_location(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "049a0ee43d0906e6b08df08f2f2111adacf25f381075639d0d163efd690dfbf2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StatisticsReproducibilityTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L1-L508",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "572dc2e4bf6dc48b29807f34682c75631a98376bce2721a9ff074d288d4c0827",
      "chars": 22901,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#DependencyCheckTests",
      "name": "DependencyCheckTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L319-L349",
      "signature": "class DependencyCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e18af4433865995653cca8bd6f8238a4b1ea712d999ec1e41b9e420244b475f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_complete_toolchain_reports_success_and_returns",
      "name": "test_a_complete_toolchain_reports_success_and_returns",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L320-L329",
      "signature": "def test_a_complete_toolchain_reports_success_and_returns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a85f57950d8845c4fb01c9328b9fbf841dae0ccde07fcba1a323c7633229043",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyCheckTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_missing_tool_exits_with_its_install_command",
      "name": "test_a_missing_tool_exits_with_its_install_command",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L331-L342",
      "signature": "def test_a_missing_tool_exits_with_its_install_command(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7218aacb4776ef5988f73afbb96eae9a0950b2a771320eeadd0d3914f1e30e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyCheckTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_every_tool_is_probed_by_name_on_the_path",
      "name": "test_every_tool_is_probed_by_name_on_the_path",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L344-L349",
      "signature": "def test_every_tool_is_probed_by_name_on_the_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc9e8ac60320162106d671dc822c46aac43f6feafb8eb9fbf7f159bb8661447f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyCheckTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "name": "FastTreeCommandTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L268-L316",
      "signature": "class FastTreeCommandTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b893684b6662eab03b27dcd8a377ed84165c107f028f6ada69b4aa6562008369",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "name": "build",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L269-L277",
      "signature": "def build(self, seq_type: str) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dc5aa9bfe8dec293d35fb9a7e86dee3ac8eaf3232c202791229c800edacc3f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_a_fasttree_failure_is_raised",
      "name": "test_a_fasttree_failure_is_raised",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L310-L316",
      "signature": "def test_a_fasttree_failure_is_raised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ec0a3ebebfe63abea26490ebd8423a86af4b35531d4fa5fe66f8a631d1a592b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_amino_acids_get_a_protein_model_and_no_nucleotide_flag",
      "name": "test_amino_acids_get_a_protein_model_and_no_nucleotide_flag",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L285-L291",
      "signature": "def test_amino_acids_get_a_protein_model_and_no_nucleotide_flag(self) -> None: # Passing -nt on protein data makes FastTree read every residue as an # ambiguous base, so the flag must be absent here.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a4e065682563088a25dff825bae98ded9a3ef5c96a9c9d4c6cf7f541cfb9333",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_nucleotides_get_the_nucleotide_model",
      "name": "test_nucleotides_get_the_nucleotide_model",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L279-L283",
      "signature": "def test_nucleotides_get_the_nucleotide_model(self) -> None: # -nt switches FastTree out of its protein default, and GTR is only # defined for nucleotides.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f787e55b6c6dacb24210f9c386cc109adde4212b9d3e4dee27b63acdd226470",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_alignment_is_the_final_argument",
      "name": "test_the_alignment_is_the_final_argument",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L293-L298",
      "signature": "def test_the_alignment_is_the_final_argument(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40c90fb3bec5d0d406ce4fe6c0373f4a9947d498118fcf0fa6bf0bddb0fdcc7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_tree_path_is_returned_and_created",
      "name": "test_the_tree_path_is_returned_and_created",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L300-L308",
      "signature": "def test_the_tree_path_is_returned_and_created(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "44f8ce4770689c61922ef73b0916891d2be371cd5136769ac6dfbd32f87a282b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FastTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "name": "IqTreeCommandTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L200-L265",
      "signature": "class IqTreeCommandTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d00b294ef649a7cf350691df6927d674df744c4e4bfc2168b91e05df5bb8e0ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "name": "build",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L201-L209",
      "signature": "def build(self, **kwargs) -> tuple[list[str], str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a202d37fbdf3222700257ea3be33a6cb32cb5a37f54404766d585c06fe72a156",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_a_missing_log_is_not_an_error",
      "name": "test_a_missing_log_is_not_an_error",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L254-L257",
      "signature": "def test_a_missing_log_is_not_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be629483c814a1bf9f0f77ee4ef49f1e96ab1b37ae82457d6bfc82039d45a8e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_iqtree_failure_is_raised",
      "name": "test_an_iqtree_failure_is_raised",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L259-L265",
      "signature": "def test_an_iqtree_failure_is_raised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5218623cab8ee550eba4d3545fce11309b0fd4332081513bc6628ec982185734",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_outgroup_is_passed_only_when_one_is_given",
      "name": "test_an_outgroup_is_passed_only_when_one_is_given",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L234-L238",
      "signature": "def test_an_outgroup_is_passed_only_when_one_is_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f5f518b6055085a382cdcb2008006462e3e0cd06ac3de729dae440c906eab2e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_bootstrap_and_thread_counts_are_not_hardcoded",
      "name": "test_the_bootstrap_and_thread_counts_are_not_hardcoded",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L229-L232",
      "signature": "def test_the_bootstrap_and_thread_counts_are_not_hardcoded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "605a7324a3ec5d234f41985ba8d9825e6fa0476e41ee66c9eecb79d89d0125b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_command_carries_the_documented_flags",
      "name": "test_the_command_carries_the_documented_flags",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L211-L227",
      "signature": "def test_the_command_carries_the_documented_flags(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ebac28400d92a6b54a562fd561f0508745851edceba2eff29e049f8dbe1f6eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_returned_path_is_iqtrees_treefile",
      "name": "test_the_returned_path_is_iqtrees_treefile",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L240-L242",
      "signature": "def test_the_returned_path_is_iqtrees_treefile(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d083a045e795e8536ba59c69eb098dd6c10a9b02439ade85cd5cc2c7498dc17a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_selected_model_is_echoed_from_the_log",
      "name": "test_the_selected_model_is_echoed_from_the_log",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L244-L252",
      "signature": "def test_the_selected_model_is_echoed_from_the_log(self) -> None: # The chosen model is the one result a reader needs to report, and it # only exists in IQ-TREE's log file.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5312d617f34bab7abbc0b18c3e0575d1fd87dbec1660464130c503a196039351",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IqTreeCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "name": "MafftCommandTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L129-L197",
      "signature": "class MafftCommandTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "de977c35e62341459f4764dd273f2439b5964cfbed3d1378750b9772a643cd0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "name": "align",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L132-L139",
      "signature": "def align(self, sequences: int, **kwargs) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "3db75d30f52381ea76ae346431f3d48cca10906e0765da8c71a2e32b90d0e36a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_a_mafft_failure_is_raised_not_swallowed",
      "name": "test_a_mafft_failure_is_raised_not_swallowed",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L189-L197",
      "signature": "def test_a_mafft_failure_is_raised_not_swallowed(self) -> None: # Continuing with a truncated alignment would produce a tree from # nothing, so a non-zero exit has to stop the pipeline.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf14af64e69138c022e40f68b945a32a05d683312c44b49987d6950ee97eed54",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_an_explicit_method_overrides_the_size_bands",
      "name": "test_an_explicit_method_overrides_the_size_bands",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L160-L163",
      "signature": "def test_an_explicit_method_overrides_the_size_bands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bbab4337ddb1814a72b0bca661801953ac940de55a490cf2d85330887b106d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_small_datasets_get_the_accurate_pairwise_strategy",
      "name": "test_small_datasets_get_the_accurate_pairwise_strategy",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L141-L145",
      "signature": "def test_small_datasets_get_the_accurate_pairwise_strategy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "123aa5a5d365c0dcaee292de670088a2ca24a4cc0ac724dd707fcbcd5ea15e5b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_alignment_is_written_to_the_requested_path",
      "name": "test_the_alignment_is_written_to_the_requested_path",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L181-L187",
      "signature": "def test_the_alignment_is_written_to_the_requested_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9c502edb4b5bc269d2844d7cccde2a0085fc5ce942c2741e6cdd371cc877ce4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_input_order_is_preserved_and_the_file_comes_last",
      "name": "test_the_input_order_is_preserved_and_the_file_comes_last",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L171-L179",
      "signature": "def test_the_input_order_is_preserved_and_the_file_comes_last(self) -> None: # Without --inputorder MAFFT reorders the alignment, which silently # breaks any downstream code that pairs it with a metadata table.",
      "exported": true,
      "origin": "ast",
      "body_hash": "00b130a138787827c5bd8e1f501253ae5552dfd92852ad34462d64362f2579fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_thousand_sequence_boundary_is_inclusive",
      "name": "test_the_thousand_sequence_boundary_is_inclusive",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L153-L158",
      "signature": "def test_the_thousand_sequence_boundary_is_inclusive(self) -> None: # `n_seqs <= 1000` -- above it MAFFT must drop to the FFT-NS heuristic, # because --auto on a large alignment can run for days.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac7ef530f98882aa7d3a0ae6013924f1a4ed490fa6bfbdbaa76a200642db0005",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_thread_count_reaches_mafft_as_a_string",
      "name": "test_the_thread_count_reaches_mafft_as_a_string",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L165-L169",
      "signature": "def test_the_thread_count_reaches_mafft_as_a_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b261ab8f837ff9bba93ff938c6180c0b20bfda3a302fb0072ecd6be879f3550",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_two_hundred_sequence_boundary_is_inclusive",
      "name": "test_the_two_hundred_sequence_boundary_is_inclusive",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L147-L151",
      "signature": "def test_the_two_hundred_sequence_boundary_is_inclusive(self) -> None: # `n_seqs <= 200` -- 200 still gets --localpair, 201 drops to --auto.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5bd64fd91f727a235f4547037bb111ec9a6abf511352ae77ff0ca613809ddd4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MafftCommandTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "name": "PipelineWiringTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L420-L503",
      "signature": "class PipelineWiringTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "960749df0745a6cd3bae0bc66c867c88a9003e12c395ca5a448c2a6283e43f02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "name": "run_pipeline",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L423-L442",
      "signature": "def run_pipeline(self, extra: list[str] | None = None) -> tuple[Recorder, mock.Mock]",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca1791753f02e5079d75935b0fc58a9667ad01a507ca54b8bd430f903764df3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_mafft_method_is_refused",
      "name": "test_an_unsupported_mafft_method_is_refused",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L487-L503",
      "signature": "def test_an_unsupported_mafft_method_is_refused(self) -> None: # An unknown method would otherwise be interpolated straight into # `--{method}` and reach MAFFT as an invalid flag.",
      "exported": true,
      "origin": "ast",
      "body_hash": "79154be1b24fe1b6bb90644c7fda9ed77c1cce838924a965a5098de1b2b7fdfb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_sequence_type_is_refused_before_any_tool_runs",
      "name": "test_an_unsupported_sequence_type_is_refused_before_any_tool_runs",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L475-L485",
      "signature": "def test_an_unsupported_sequence_type_is_refused_before_any_tool_runs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "193064da3e7e3bf2380a08dd34e87a440c70f7c816fff12fbd9dcfcc9e40c539",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_fasttree_replaces_iqtree_rather_than_running_alongside_it",
      "name": "test_fasttree_replaces_iqtree_rather_than_running_alongside_it",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L460-L462",
      "signature": "def test_fasttree_replaces_iqtree_rather_than_running_alongside_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "632e38420e1d083df03d9db301834db414a17e120b0eaf5dbf6c9d503fd07857",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_default_run_is_align_then_iqtree",
      "name": "test_the_default_run_is_align_then_iqtree",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L444-L458",
      "signature": "def test_the_default_run_is_align_then_iqtree(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "05a2a19d1e56bcc24e0d9b13e725ce843e7faa7dcc932834c58eaf92513b54b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_outgroup_reaches_both_iqtree_and_the_visualisation",
      "name": "test_the_outgroup_reaches_both_iqtree_and_the_visualisation",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L469-L473",
      "signature": "def test_the_outgroup_reaches_both_iqtree_and_the_visualisation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62903117d3f652b45901fee906fad222d96cef80d188aa674c2e7ede82ee63f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_sequence_type_reaches_fasttrees_model_choice",
      "name": "test_the_sequence_type_reaches_fasttrees_model_choice",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L464-L467",
      "signature": "def test_the_sequence_type_reaches_fasttrees_model_choice(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "97e9ff3b0f50987800fd6e4d7c108d6b338f84dfebd6645051f6eb29a82a1b0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineWiringTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#recorded",
      "name": "recorded",
      "kind": "function",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L78-L80",
      "signature": "def recorded(recorder: Recorder)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ba41f06da418f025ea7221f22c5e671bd36883c5288603579e6e263af467626",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#Recorder",
      "name": "Recorder",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L49-L74",
      "signature": "class Recorder",
      "exported": true,
      "origin": "ast",
      "body_hash": "4acee58bba14b650ed828530f9cf8265a6ead80f56910f6a794395048fe6b0c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#Recorder.__call__",
      "name": "__call__",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L58-L65",
      "signature": "def __call__(self, command, **kwargs) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "2f66003e42ba73516f013c6f6de9455e24cb3d8c313bc012eea2834a016a1772",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#Recorder.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L52-L56",
      "signature": "def __init__(self, returncode: int = 0, stderr: str = \"\", failing: str | None = None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "930ed1c700276a51f2e244a6c06185137df34d2d504e8f9e884bddc9160db29f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#Recorder.assert_called",
      "name": "assert_called",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L72-L74",
      "signature": "def assert_called(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce9a22ac06c3d59462de6e6490b933dcce57eba4547b3b051824b4cef06494a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#Recorder.command",
      "name": "command",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L68-L70",
      "signature": "def command(self) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f6ca38d83aaa7a3a6ed61e60b96107cc71bfd0b966dc7d5183b46720963d010",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Recorder"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "name": "ScratchCase",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L83-L100",
      "signature": "class ScratchCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "546016304864f0f3f58486544d529330d03022233c6731be358803fc5761c5ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "name": "fasta",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L89-L95",
      "signature": "def fasta(self, count: int, name: str | None = None) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "fadd691b6445e971ad5145e8ee266b25035ef955e910bb650d85f934accaae55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScratchCase"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#ScratchCase.newick",
      "name": "newick",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L97-L100",
      "signature": "def newick(self, text: str = FOUR_TAXA, name: str = \"tree.nwk\") -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b88af1734b026b9c5537bc56889109fccb0587564e1aa85bdaf77f53b984179",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScratchCase"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#ScratchCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L84-L87",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScratchCase"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "name": "SequenceCountTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L103-L126",
      "signature": "class SequenceCountTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fddd2ad7b463af55b00dbdb71966e651b71a208ec04e75e3f2f1710851b5deee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_a_missing_file_raises_rather_than_reporting_zero",
      "name": "test_a_missing_file_raises_rather_than_reporting_zero",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L124-L126",
      "signature": "def test_a_missing_file_raises_rather_than_reporting_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5b08e8b5f4eb68edd9f4d339898694514da244ba4188909ef57a41719043dce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceCountTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_a_wrapped_sequence_counts_once",
      "name": "test_a_wrapped_sequence_counts_once",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L112-L115",
      "signature": "def test_a_wrapped_sequence_counts_once(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cad8e1cbe040e991a266dc85d5f6d37fe889152cc0b8e9db3e4415567a392cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceCountTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_an_angle_bracket_that_does_not_start_a_line_is_not_a_header",
      "name": "test_an_angle_bracket_that_does_not_start_a_line_is_not_a_header",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L117-L122",
      "signature": "def test_an_angle_bracket_that_does_not_start_a_line_is_not_a_header(self) -> None: # Indented or mid-line \">\" appears in quality lines and comments; only a # line-initial one opens a FASTA record.",
      "exported": true,
      "origin": "ast",
      "body_hash": "11d73f71c782643459f6a970004b567f4f716b09a2f3e4c3228d59e8c7342e56",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceCountTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_an_empty_file_has_no_sequences",
      "name": "test_an_empty_file_has_no_sequences",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L107-L110",
      "signature": "def test_an_empty_file_has_no_sequences(self) -> None: # 0 must come back as 0 rather than raise: run_mafft divides the world # into size bands on this number.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea5cef93b1ae54ee358f496c33d947293501a84fdc455cec98d22b90d695f572",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceCountTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_headers_are_counted_not_lines",
      "name": "test_headers_are_counted_not_lines",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L104-L105",
      "signature": "def test_headers_are_counted_not_lines(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f91fa20d30c119fc89041d9d2dba3fc8bbc49571dbe6566cfec7d9ad25ad9b67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceCountTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "name": "TreeSummaryTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L352-L385",
      "signature": "class TreeSummaryTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "836fb1126e8bab854b23b8da0dc6b64a053f5094b5f7803ebf328be85ee3574c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_an_unreadable_tree_returns_an_empty_summary",
      "name": "test_an_unreadable_tree_returns_an_empty_summary",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L373-L379",
      "signature": "def test_an_unreadable_tree_returns_an_empty_summary(self) -> None: # tree_summary is called for its report, so a bad tree file must not # abort a pipeline that has already produced its outputs.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d900fffd7dcac9cc4f5af26c2ce538b28a8b7bf3e7829a4af51f6e223022f33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeSummaryTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_malformed_newick_returns_an_empty_summary",
      "name": "test_malformed_newick_returns_an_empty_summary",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L381-L385",
      "signature": "def test_malformed_newick_returns_an_empty_summary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea1d4d315669a9d851d13d295e9e477cd8c01ebbef2ea4b60cf9b6e50ca0e000",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeSummaryTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_the_mean_is_consistent_with_the_total",
      "name": "test_the_mean_is_consistent_with_the_total",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L365-L371",
      "signature": "def test_the_mean_is_consistent_with_the_total(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d758477f985e9c1d039fd456c1b42a7267bff095ef9c51452f3fe4a9a12be7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeSummaryTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_the_summary_matches_the_newick_string",
      "name": "test_the_summary_matches_the_newick_string",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L353-L363",
      "signature": "def test_the_summary_matches_the_newick_string(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10d15e3307c4f26e7af208a5ddabe34a190e2aa5b974ba3a715d90124ccdd3a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TreeSummaryTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#VisualisationTests",
      "name": "VisualisationTests",
      "kind": "class",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L388-L417",
      "signature": "class VisualisationTests(ScratchCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "425d98181076627c78d6254ea228cd2346b8f82012e5d25ca81eb678e9173cfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#VisualisationTests.test_a_missing_qt_backend_names_the_package_it_needs",
      "name": "test_a_missing_qt_backend_names_the_package_it_needs",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L404-L417",
      "signature": "def test_a_missing_qt_backend_names_the_package_it_needs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dab144c8786d254745348ee2f82c2d13f8ea8856809577a9142b1233724ab127",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VisualisationTests"
    },
    {
      "id": "tests/phylogenetics/test_scripts.py#VisualisationTests.test_the_rooting_choice_is_reported",
      "name": "test_the_rooting_choice_is_reported",
      "kind": "method",
      "path": "tests/phylogenetics/test_scripts.py",
      "span": "L389-L402",
      "signature": "def test_the_rooting_choice_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d96421c41ad052f7c9ee058df17628c2498167c2ce0ec792cc5fed03e7e8c0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VisualisationTests"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L1-L868",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "046eb2968780e8f28a9abe498e12e738af4fa5fbfc1001e0c34bf22aecabd105",
      "chars": 42920,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#analytical_oral_profile",
      "name": "analytical_oral_profile",
      "kind": "function",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L256-L261",
      "signature": "def analytical_oral_profile(tmp: Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf71133581704a89f2603d679a218066a81fcc287c9922794c98e389ee678184",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L57-L64",
      "signature": "def run_script(name: str, *args: str) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "5df4ab78dff6e99d89decf3570cc0ce8cc7af54d05e0b04a46177d6be91fc481",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "name": "TestAllometryAndFIH",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L517-L561",
      "signature": "class TestAllometryAndFIH(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea8be6bfdf25ddf46c314e0fd3a36ad9ae7056b73e5dc8896bbdead7c7d52b35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_allometric_scaling",
      "name": "test_allometric_scaling",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L538-L539",
      "signature": "def test_allometric_scaling(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8eb8029f786c7d0388dc48c2541d9f180de49cae1e5a601e98d23352603cbac4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_exponent_regression_recovers_a_known_slope",
      "name": "test_exponent_regression_recovers_a_known_slope",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L546-L552",
      "signature": "def test_exponent_regression_recovers_a_known_slope(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6cb5890669dbdb3379d2eae9abf440480531bb09c2d19dcfa4196ddba596b43",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_fda_conversion_factors",
      "name": "test_fda_conversion_factors",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L518-L523",
      "signature": "def test_fda_conversion_factors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "98db779e9be322020ed7aea9205459924520c85e19892546a19b89749d40026d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_maturation_is_monotone_and_bounded",
      "name": "test_maturation_is_monotone_and_bounded",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L531-L536",
      "signature": "def test_maturation_is_monotone_and_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f2bb760918aa52648f89cb2ddc13039ac3ec5d91c177c477ef050c020505e78",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_mrsd_uses_the_most_sensitive_species",
      "name": "test_mrsd_uses_the_most_sensitive_species",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L525-L529",
      "signature": "def test_mrsd_uses_the_most_sensitive_species(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "55d71ee3c09b7ea4d0404ae8f7f9d509ef3c59d473f9f0179e71d6ef05e1d0fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_neonate_without_maturation_raises_a_finding",
      "name": "test_neonate_without_maturation_raises_a_finding",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L541-L544",
      "signature": "def test_neonate_without_maturation_raises_a_finding(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e56c764d8f7a04eaa9d5d89a4b748b135e92704cd7a416366822643fe1348aa6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_rule_of_exponents_bands",
      "name": "test_rule_of_exponents_bands",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L554-L557",
      "signature": "def test_rule_of_exponents_bands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0a95a5c56b0e891be0e59d4dabd64fd62140403ba36cb3414e9fdc9bc91c5da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_unknown_species_rejected",
      "name": "test_unknown_species_rejected",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L559-L561",
      "signature": "def test_unknown_species_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e6ee3643e3ad2fb9e6b1a7ddbc5a9d992d937501055be9648031b95c82715ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestAllometryAndFIH"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "name": "TestBioequivalence",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L429-L511",
      "signature": "class TestBioequivalence(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38cdeb89e85136dea4d538dd759fe10836d891d2409da953d56712683c9d1663",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_abel_cap_is_exact",
      "name": "test_abel_cap_is_exact",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L442-L447",
      "signature": "def test_abel_cap_is_exact(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "02dc7552e83403178054eb31ca2dc7d7dbca8b2fb725e4170ab9e85c75fc355e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_abel_does_not_widen_below_30_percent",
      "name": "test_abel_does_not_widen_below_30_percent",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L449-L453",
      "signature": "def test_abel_does_not_widen_below_30_percent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "097725e27549f21f69cfc73083166cb9eee3453dbcbfdcac09b095c215236ac4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_crossover_removes_the_period_effect",
      "name": "test_crossover_removes_the_period_effect",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L459-L479",
      "signature": "def test_crossover_removes_the_period_effect(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d668e44c9d83308b4d88bf7bb92446d5221e812352080670ec14bcf40663a267",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_cv_roundtrip",
      "name": "test_cv_roundtrip",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L455-L457",
      "signature": "def test_cv_roundtrip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d857bea7a508647a12e16e0f45c358a0338402840f5572ae280870413f004048",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_nti_limits_applied",
      "name": "test_nti_limits_applied",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L504-L511",
      "signature": "def test_nti_limits_applied(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b23ae1426dd064825fbd8369da5c02c8684e54b20afbb5484cdffc4fdc4d3e9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_power_is_monotone_in_sample_size",
      "name": "test_power_is_monotone_in_sample_size",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L438-L440",
      "signature": "def test_power_is_monotone_in_sample_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c781b1f7177a993194e54bb37decbfe872f4ac25ca060eae3bc9d917152386b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_reference_variability_needs_replicated_reference",
      "name": "test_reference_variability_needs_replicated_reference",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L489-L495",
      "signature": "def test_reference_variability_needs_replicated_reference(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8d3b3ff9cdc111227d24537847b8cd1d2dc6948d868a0788dab94b8b1ca96b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_rsabe_bound_passes_when_difference_is_small_and_cvwr_high",
      "name": "test_rsabe_bound_passes_when_difference_is_small_and_cvwr_high",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L497-L502",
      "signature": "def test_rsabe_bound_passes_when_difference_is_small_and_cvwr_high(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "576c6322f8f718e067d8fd02b065744d27b111659922ae939f3a577e9b852b27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_sample_size_matches_published_table",
      "name": "test_sample_size_matches_published_table",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L430-L436",
      "signature": "def test_sample_size_matches_published_table(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "102a045bd5f788b2664322a70fcba4cf7ea41dfb28d791ae8152f39090cfadbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_scaling_refused_without_a_replicate_design",
      "name": "test_scaling_refused_without_a_replicate_design",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L481-L487",
      "signature": "def test_scaling_refused_without_a_replicate_design(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "337caa3b2818fb6e1b9b9b734fd65f12d8d2717e245b96e546d888bd4a679d14",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestBioequivalence"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "name": "TestCLIContract",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L805-L863",
      "signature": "class TestCLIContract(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecfd29b12f60ae1b8382fe06eb54db0561133505253c86154829dde3dc0aad00",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_column_names_are_case_insensitive",
      "name": "test_column_names_are_case_insensitive",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L851-L856",
      "signature": "def test_column_names_are_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f5abb6017033373319af7d68c4be22fee1bd58640b4d74f3cc11ec463473f5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_comment_lines_and_blank_lines_skipped",
      "name": "test_comment_lines_and_blank_lines_skipped",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L836-L842",
      "signature": "def test_comment_lines_and_blank_lines_skipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "02e824dc588f468013b5a5b30de1847a485613d21d271a99ca03e55b62867a08",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_duplicate_columns_rejected",
      "name": "test_duplicate_columns_rejected",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L829-L834",
      "signature": "def test_duplicate_columns_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f09973cc8b114fd33b0c2dee4db93bb34b91b9dbceea597fc60550e3cf7c1f3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_json_output_is_parseable_and_self_contained",
      "name": "test_json_output_is_parseable_and_self_contained",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L808-L815",
      "signature": "def test_json_output_is_parseable_and_self_contained(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "79d332b9cdf6049bbaf0bb7ae2b991cfbfb0ba8b90673d0d8cd70f37888dc0ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_missing_input_file_exits_two",
      "name": "test_missing_input_file_exits_two",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L824-L827",
      "signature": "def test_missing_input_file_exits_two(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "120a9177cbd82ef403e24d61a53c73f46f267bb74e68dec321643227248c995f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_report_exit_codes",
      "name": "test_report_exit_codes",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L858-L863",
      "signature": "def test_report_exit_codes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5681c384384ac9e7b7bb04a389cc1c251ca9fed1561280f78daf7be0eef237e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_tsv_is_detected",
      "name": "test_tsv_is_detected",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L844-L849",
      "signature": "def test_tsv_is_detected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd4beddcd7768c2561a19fde9a5068db20cc9651e0a3116d2d5914b01e45c71b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_tsv_output_has_no_notes",
      "name": "test_tsv_output_has_no_notes",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L817-L822",
      "signature": "def test_tsv_output_has_no_notes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71634265a275bca099cb95fd348551b5b081a7d76eee585320ec72de5a04921d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCLIContract"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "name": "TestCompartmentalFitting",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L368-L423",
      "signature": "class TestCompartmentalFitting(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cafa4c92c092ff1e9411253105bb6c9ed3b62b25d91454771df561e9213bb89",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_f_test_rejects_the_third_compartment_and_accepts_the_second",
      "name": "test_f_test_rejects_the_third_compartment_and_accepts_the_second",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L402-L415",
      "signature": "def test_f_test_rejects_the_third_compartment_and_accepts_the_second(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab3927d44e4b7bf923d0f85ad438675599fa0c54344408fcce78bb4f89fe531b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompartmentalFitting"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_structural_misspecification_via_runs_test",
      "name": "test_flags_structural_misspecification_via_runs_test",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L417-L423",
      "signature": "def test_flags_structural_misspecification_via_runs_test(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b8f3f50561a93f99ead32adde8260806e5a3bb13ee084464650685ff34fd0bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompartmentalFitting"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_unidentifiable_third_compartment",
      "name": "test_flags_unidentifiable_third_compartment",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L392-L400",
      "signature": "def test_flags_unidentifiable_third_compartment(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7245fb05a464ecaa23754d975bf762845b7fee018eadc48c410de37bbcc61a95",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompartmentalFitting"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_recovers_two_compartment_parameters",
      "name": "test_recovers_two_compartment_parameters",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L377-L390",
      "signature": "def test_recovers_two_compartment_parameters(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5bced912e170add24008d72f4c32dc8f30ec0a13ec4a99745fdcaab6f132b47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompartmentalFitting"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "name": "two_compartment_data",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L370-L375",
      "signature": "def two_compartment_data(tmp: Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "09b45e624be129cff162fd334889b954d9e25e0eecdd74e8173973ccbd1707f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestCompartmentalFitting"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "name": "TestDDIStatic",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L567-L602",
      "signature": "class TestDDIStatic(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "afaa083d0f60517081980815a0a906d2a7a422bc93f7f5cb63a45de88a8b8fe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_auc_ratio_cannot_exceed_the_fm_ceiling",
      "name": "test_auc_ratio_cannot_exceed_the_fm_ceiling",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L587-L591",
      "signature": "def test_auc_ratio_cannot_exceed_the_fm_ceiling(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c930ca3f6737e5d8a10b70042f73c1ecc5694099a74a49869b6ea8b8f4e6ac0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_basic_reversible_ratio",
      "name": "test_basic_reversible_ratio",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L568-L569",
      "signature": "def test_basic_reversible_ratio(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6177c372444a916def0db1a5621176fcacb6c74ec8b64fdbccfdb941d42e32f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_classification_bands",
      "name": "test_classification_bands",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L597-L602",
      "signature": "def test_classification_bands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "652d6dc3de323eeded34c220a512f3af845e276111f12cd4fa51a6de188f7c32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_induction_ratio_below_one",
      "name": "test_induction_ratio_below_one",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L574-L577",
      "signature": "def test_induction_ratio_below_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33e21b9f6d81b1f872e4de60935b0edbc05093b92aacbc540761b991e84d0993",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_mechanistic_static_model_matches_hand_calculation",
      "name": "test_mechanistic_static_model_matches_hand_calculation",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L579-L585",
      "signature": "def test_mechanistic_static_model_matches_hand_calculation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "08f3aad5469db83abcdf2941a0822b842afb170ad3524bfdf63c14dc1302287e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_no_perpetrator_gives_unity",
      "name": "test_no_perpetrator_gives_unity",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L593-L595",
      "signature": "def test_no_perpetrator_gives_unity(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b6c585a003042bddef127f6ffbb4e9acfc005173391ef5403c813b4c5a9c5bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_tdi_ratio_reduces_to_one_without_inactivation",
      "name": "test_tdi_ratio_reduces_to_one_without_inactivation",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L571-L572",
      "signature": "def test_tdi_ratio_reduces_to_one_without_inactivation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6360e4339f515b5f5cff40e9cbfdc9f014e48b5848d5d3e428f0c69ed4ee5b2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDDIStatic"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "name": "TestDispositionIdentities",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L121-L250",
      "signature": "class TestDispositionIdentities(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d73287c42d2242e6477d314ea2558f6e69ee6c3390ca290c5f2f65644965b2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_absorption_singularity_uses_the_limit",
      "name": "test_absorption_singularity_uses_the_limit",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L152-L160",
      "signature": "def test_absorption_singularity_uses_the_limit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62b1e93867e27607e061c4c006fe0e4dfcf00edff3a3bb13f204708524bebdb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_auc_equals_dose_over_clearance",
      "name": "test_auc_equals_dose_over_clearance",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L129-L133",
      "signature": "def test_auc_equals_dose_over_clearance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8de9574111b9253ab1d314bd31b70cf0c707b7a07ea886ca8d60f377bdc93623",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_disposition_rejects_mismatched_peripherals",
      "name": "test_disposition_rejects_mismatched_peripherals",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L248-L250",
      "signature": "def test_disposition_rejects_mismatched_peripherals(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbc3fc7eca83c25eb5e5e49da11d17a206b52dac5b837f11bf553a746e5d1c46",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_effect_compartment_equilibrates_to_constant_input",
      "name": "test_effect_compartment_equilibrates_to_constant_input",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L201-L204",
      "signature": "def test_effect_compartment_equilibrates_to_constant_input(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca24203806adf7f2701e7681755392cc3afb99704c65d4556f05aefad8fcb383",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_effect_compartment_matches_analytical_solution",
      "name": "test_effect_compartment_matches_analytical_solution",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L194-L199",
      "signature": "def test_effect_compartment_matches_analytical_solution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6be1ff07edcdeb4673132c28785424197b0cfde42783dc1f3005cd4ecdb05d07",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_indirect_response_starts_at_baseline",
      "name": "test_indirect_response_starts_at_baseline",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L206-L216",
      "signature": "def test_indirect_response_starts_at_baseline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9513211aa660144e6a00cb03e61da51ce0bbe04dc45a5cec685c58b4896f4291",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_indirect_response_starts_at_baseline.conc",
      "name": "conc",
      "kind": "function",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L210-L211",
      "signature": "def conc(time: float) -> float",
      "exported": true,
      "origin": "ast",
      "body_hash": "55d377af02f3926a2277f311516fefc727e54bd5466848511ff774e637ae4e63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_infusion_reaches_rate_over_clearance",
      "name": "test_infusion_reaches_rate_over_clearance",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L162-L165",
      "signature": "def test_infusion_reaches_rate_over_clearance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d701bca9a78d1f8ee3a16f3f047b37ee8cf1525b42f5c1f89e0f21500fbe08cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_initial_concentration_is_dose_over_v1",
      "name": "test_initial_concentration_is_dose_over_v1",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L140-L142",
      "signature": "def test_initial_concentration_is_dose_over_v1(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ee13fcbc7c8ed2a829c59ec601250a73a0120547520a4dcb306c69218205d49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_michaelis_menten_is_not_dose_proportional",
      "name": "test_michaelis_menten_is_not_dose_proportional",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L186-L192",
      "signature": "def test_michaelis_menten_is_not_dose_proportional(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a63b1fbb7c2b53fe4b790e1af0cbcc703336dfcf243a0f3860a79834f8a6140",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_michaelis_menten_reduces_to_linear_at_high_km",
      "name": "test_michaelis_menten_reduces_to_linear_at_high_km",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L178-L184",
      "signature": "def test_michaelis_menten_reduces_to_linear_at_high_km(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f02b3a72bd84798c4bd822e04dd681573a9a51cd70b6af4cc750b896362d04c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_one_compartment_matches_closed_form",
      "name": "test_one_compartment_matches_closed_form",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L124-L127",
      "signature": "def test_one_compartment_matches_closed_form(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35503a159adf6f605ccabcd560f5b31406422219305124a34cbd320eb7c71422",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_oral_matches_bateman",
      "name": "test_oral_matches_bateman",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L144-L150",
      "signature": "def test_oral_matches_bateman(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a0391f335c0582a4136184bd9db6eba30210336880d2f90e4b11261413032c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_steady_state_metrics_match_brute_force_superposition",
      "name": "test_steady_state_metrics_match_brute_force_superposition",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L167-L176",
      "signature": "def test_steady_state_metrics_match_brute_force_superposition(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d22388a5cfbebe57ab3232e9ee191d347e4cf986e6ca9f5ff31842724b0651f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_tmdd_target_is_suppressed_by_drug_and_recovers",
      "name": "test_tmdd_target_is_suppressed_by_drug_and_recovers",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L218-L237",
      "signature": "def test_tmdd_target_is_suppressed_by_drug_and_recovers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "878fc21300ec7e2631bcfd98bea97718454732765d042322caff4ecf9ba04680",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_tmdd_without_drug_sits_at_the_target_baseline",
      "name": "test_tmdd_without_drug_sits_at_the_target_baseline",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L239-L246",
      "signature": "def test_tmdd_without_drug_sits_at_the_target_baseline(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "15b98737cd51c615142588b4a41386ca2346fdfd05951f7984bbefce76597c8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_vss_and_mrt",
      "name": "test_vss_and_mrt",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L135-L138",
      "signature": "def test_vss_and_mrt(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4792557ecd9e30bbdffbdfbe8ec890c99fd489815a9c16318b4c7ddd75bdf2e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestDispositionIdentities"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "name": "TestExposureResponse",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L608-L668",
      "signature": "class TestExposureResponse(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8478b9b7812e0fcd935ab809a2118092e6ac8580f409810d34afbca9bf00cdbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_cqtc_flags_extrapolation_and_the_10ms_threshold",
      "name": "test_cqtc_flags_extrapolation_and_the_10ms_threshold",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L642-L647",
      "signature": "def test_cqtc_flags_extrapolation_and_the_10ms_threshold(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb7896245846d43b8f1a9ff8b2a479ebb83d5202ae78cc766ff35419d9595626",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_cqtc_matches_ordinary_least_squares",
      "name": "test_cqtc_matches_ordinary_least_squares",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L634-L640",
      "signature": "def test_cqtc_matches_ordinary_least_squares(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6944f0c859854782ba71a903533aebcc3e216986ae028274501e9b8d41a0a18",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_emax_recovers_known_parameters",
      "name": "test_emax_recovers_known_parameters",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L609-L615",
      "signature": "def test_emax_recovers_known_parameters(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e72f15acf6404a40e0aebdf8d98c149651096910842b0247cf52f32f87088fa4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_flags_a_plateau_outside_the_data",
      "name": "test_flags_a_plateau_outside_the_data",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L624-L632",
      "signature": "def test_flags_a_plateau_outside_the_data(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31e7fe086dd3cfa1c46934e496d4c1634a2872143f9ee9c6bc25540608f029a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_logistic_rejects_non_binary",
      "name": "test_logistic_rejects_non_binary",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L657-L659",
      "signature": "def test_logistic_rejects_non_binary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3b84da7100c3bf086b7cfd0dae44e5558eecd2907167bece5249a860fd883d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_logistic_slope_sign",
      "name": "test_logistic_slope_sign",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L649-L655",
      "signature": "def test_logistic_slope_sign(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "79fc977378881c98d7a99a6895671501a280d10bfa82afc46aed8a350508fe1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_quartile_summary_is_ordered",
      "name": "test_quartile_summary_is_ordered",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L661-L668",
      "signature": "def test_quartile_summary_is_ordered(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "81f0cbadec3e542fea0a9d485c936c05cbe321de41ac03ef8b24764e1e08abc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_sigmoid_emax_recovers_the_hill_coefficient",
      "name": "test_sigmoid_emax_recovers_the_hill_coefficient",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L617-L622",
      "signature": "def test_sigmoid_emax_recovers_the_hill_coefficient(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c71d5b7c7a771b80b7a61831731aefbb96bed458fde68a78647938e24bb5d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestExposureResponse"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "name": "TestNCA",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L264-L362",
      "signature": "class TestNCA(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b09717afcbff66d1695e2e5a14d60461bd0b74c09d45ab38bbc4b50546613b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_aumc_log_down_matches_the_analytical_integral",
      "name": "test_aumc_log_down_matches_the_analytical_integral",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L305-L312",
      "signature": "def test_aumc_log_down_matches_the_analytical_integral(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae3538c20fe0b83784ea29b9ec8260614fe9b7d9f259a3f4dca7d5bd376b4999",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_blq_rules_change_the_result_as_documented",
      "name": "test_blq_rules_change_the_result_as_documented",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L320-L330",
      "signature": "def test_blq_rules_change_the_result_as_documented(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "82de826d1c28df1f5faa13074180043b1adb3dc10cab8d8c5c7b757de8265fbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_flags_excessive_extrapolation",
      "name": "test_flags_excessive_extrapolation",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L332-L341",
      "signature": "def test_flags_excessive_extrapolation(self) -> None: # Truncated profile: a large fraction of AUCinf comes from the tail.",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfc181eb63ea2a4887bf15f38949a83be8d32cfb4fd4a4264da3afb4b1fb1945",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_lambda_z_excludes_tmax",
      "name": "test_lambda_z_excludes_tmax",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L281-L287",
      "signature": "def test_lambda_z_excludes_tmax(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b8c0835f7b5cd46487fe4503f5525d929f885a7c5700b908aba2d745c65791b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_lambda_z_refuses_with_too_few_points",
      "name": "test_lambda_z_refuses_with_too_few_points",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L289-L294",
      "signature": "def test_lambda_z_refuses_with_too_few_points(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7457e1998cafdba4c51a5a105fb184ae6aea58b5af2237a4ce3f3a4cee0780b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_log_down_trapezoid_is_below_linear_on_a_declining_curve",
      "name": "test_log_down_trapezoid_is_below_linear_on_a_declining_curve",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L296-L303",
      "signature": "def test_log_down_trapezoid_is_below_linear_on_a_declining_curve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a07d3579a0b5dc7c2f89a6314fbf3e2942ea42215db1957310e51076e0eb646",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_partial_auc_matches_full_auc_over_the_whole_range",
      "name": "test_partial_auc_matches_full_auc_over_the_whole_range",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L314-L318",
      "signature": "def test_partial_auc_matches_full_auc_over_the_whole_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d94a573ab67a2a1e044a704e7816d34f379f147e40342fe29b17a03ec1e20c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_recovers_known_parameters",
      "name": "test_recovers_known_parameters",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L265-L279",
      "signature": "def test_recovers_known_parameters(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cd19715d09c898c2c3b46d0d6629e3183b7b602911f353007db9e8013e9204d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_rejects_missing_dose",
      "name": "test_rejects_missing_dose",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L358-L362",
      "signature": "def test_rejects_missing_dose(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "de6f65b484e61d6902cf5cf1cd864fba9cc996c4a1be4de5b1a5eb27a92d1ccb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_steady_state_parameters",
      "name": "test_steady_state_parameters",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L343-L356",
      "signature": "def test_steady_state_parameters(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0196ba042b070582ccc8b3547e3c61d50f6fda7d834882e5da84434837e66b4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestNCA"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck",
      "name": "TestPopPKDatasetCheck",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L674-L708",
      "signature": "class TestPopPKDatasetCheck(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c286bf21e1a4a2782132f97e12787e27813e8bd73bf8b1e33037f26b2cf35f48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_addl_without_ii_is_an_error",
      "name": "test_addl_without_ii_is_an_error",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L694-L704",
      "signature": "def test_addl_without_ii_is_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "db50cfb67ba6bbd2d479ce9bd16acbfc57f16499a02f0d5855079fb9a0b9f8cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPopPKDatasetCheck"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_catches_planted_defects",
      "name": "test_catches_planted_defects",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L675-L687",
      "signature": "def test_catches_planted_defects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcb3fff16ad737c468f86849ac771d497a89ee77ed73502b53b919e9d6e2fa8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPopPKDatasetCheck"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_clean_dataset_passes",
      "name": "test_clean_dataset_passes",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L689-L692",
      "signature": "def test_clean_dataset_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "01f99d568906ecd7ea1109efe105dd1821331d6ff4cbee0af332cd9e06a3fe57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPopPKDatasetCheck"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_strict_mode_fails_on_warnings",
      "name": "test_strict_mode_fails_on_warnings",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L706-L708",
      "signature": "def test_strict_mode_fails_on_warnings(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9da11414a3584b5bfb934324927559cc0b21df036f55800bef21fa8605aede8b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestPopPKDatasetCheck"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "name": "TestSkillStructure",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L77-L115",
      "signature": "class TestSkillStructure(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bff098faa67d277db25f73048188da61b8bc22679b29f4d3e788debcce65e1f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_every_referenced_file_exists",
      "name": "test_every_referenced_file_exists",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L96-L106",
      "signature": "def test_every_referenced_file_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "92a1b0098225867da8026213b1f46325a385889e6cbbc0ac24b0c04c1d69daf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_every_script_is_documented",
      "name": "test_every_script_is_documented",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L108-L115",
      "signature": "def test_every_script_is_documented(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d8f55e938b5b69dfcef6ff53c127f62e7e135b5bb05f5b1edfb91a67bade641",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_frontmatter",
      "name": "test_frontmatter",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L78-L79",
      "signature": "def test_frontmatter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "770a41ab71fa8ca29e8f44b294cde3d02fc546a3a439d491024cd4265e9d74fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_internal_links_resolve",
      "name": "test_internal_links_resolve",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L93-L94",
      "signature": "def test_internal_links_resolve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "795bbdb8c550d524db8a4f7ca44fc54c2ac3b7ef853395525dcb5d9e0eec14eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_length",
      "name": "test_length",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L81-L82",
      "signature": "def test_length(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "77cbc76bde86757f20589c3dcf1153bcb3464b72ef15f1bbaac3be01c29dd0be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_no_bytecode",
      "name": "test_no_bytecode",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L87-L88",
      "signature": "def test_no_bytecode(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "87ee264924d0a754a3b51b37d9068112acdef197b3d186c624985d8b4688c3bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_no_stray_tests",
      "name": "test_no_stray_tests",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L84-L85",
      "signature": "def test_no_stray_tests(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c953b450249247cb57953bc983c985b339666a9610caf1dbb8fa74216b1545f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_scripts_compile",
      "name": "test_scripts_compile",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L90-L91",
      "signature": "def test_scripts_compile(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca1922afb38da54b799b7accf8c7ead8c3ffb04261c4a39ae811eac0ec097e38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestSkillStructure"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "name": "TestTDMAndSimulation",
      "kind": "class",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L714-L799",
      "signature": "class TestTDMAndSimulation(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "275cf4ac554eb8a0ab672fc1418e63cf4b64347fe191eebb9853c79f781c2fb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_accumulation_ratio_is_consistent_across_metrics",
      "name": "test_accumulation_ratio_is_consistent_across_metrics",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L763-L774",
      "signature": "def test_accumulation_ratio_is_consistent_across_metrics(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f78603cb9a62248422aec3d7785bb99e0a1ffd0175165419bd16d09093a80b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_level_beyond_the_interval_rejected",
      "name": "test_level_beyond_the_interval_rejected",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L743-L748",
      "signature": "def test_level_beyond_the_interval_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a34c50aa8e552769c024c6043dedb4caa137154336f3ca0ac8a210d0bec9a8b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_map_recovers_a_known_individual",
      "name": "test_map_recovers_a_known_individual",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L715-L733",
      "signature": "def test_map_recovers_a_known_individual(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e99cc483c1d29420baf746dc3d3c0b32ca8bbf803e3b7b30b8bc890efa3c553e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_mismatched_peripheral_arguments_rejected",
      "name": "test_mismatched_peripheral_arguments_rejected",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L797-L799",
      "signature": "def test_mismatched_peripheral_arguments_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cc0fc12cf92dfa366abf43c818bcd2349d3b20ae136acf1441b175de53510eb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_monte_carlo_attainment_is_a_fraction",
      "name": "test_monte_carlo_attainment_is_a_fraction",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L776-L787",
      "signature": "def test_monte_carlo_attainment_is_a_fraction(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4269285938875dba28243c95d2ef2154b8daebb04215a37d84fd44b835af32c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_regimen_comparison_preserves_cavg_for_equal_daily_dose",
      "name": "test_regimen_comparison_preserves_cavg_for_equal_daily_dose",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L789-L795",
      "signature": "def test_regimen_comparison_preserves_cavg_for_equal_daily_dose(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "15048764669f44be6612f2caa2ee155bc686c978721cb4921510fd14594e2189",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_simulate_regimen_matches_closed_form_steady_state",
      "name": "test_simulate_regimen_matches_closed_form_steady_state",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L750-L761",
      "signature": "def test_simulate_regimen_matches_closed_form_steady_state(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b6dfe0d21a30d3661ea57063efac5a3f058638c8978487d8e504dd4c28239bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_single_level_raises_a_finding",
      "name": "test_single_level_raises_a_finding",
      "kind": "method",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L735-L741",
      "signature": "def test_single_level_raises_a_finding(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df74ed0eab000ec4748437c9c66590977659fcad44a74daf14cd0dc34dbc8042",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TestTDMAndSimulation"
    },
    {
      "id": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "name": "write_csv",
      "kind": "function",
      "path": "tests/pkpd-modeling/test_scripts.py",
      "span": "L67-L71",
      "signature": "def write_csv(directory: Path, name: str, header: str, rows) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "2edd8cc442687c35dd4a773f0aace35496e8b5e39268775805f0778f51e41afd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/synthetic_posters.py",
      "name": "synthetic_posters.py",
      "kind": "file",
      "path": "tests/pptx-posters/synthetic_posters.py",
      "span": "L1-L212",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b95c63be983de17e5d625bffd6f254d707d5f625553a1588c0a1c54774a781db",
      "chars": 7120,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "name": "build_manifest",
      "kind": "function",
      "path": "tests/pptx-posters/synthetic_posters.py",
      "span": "L8-L211",
      "signature": "def build_manifest( manifest_content_hash: Any, *, include_image: bool = False, image_sha256: str = \"0\" * 64, image_path: str = \"synthetic.png\", printer_color_mode: str = \"RGB\", ) -> dict[str, Any]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ff13c753443ca9601aadc4ad712e983c2d44532efb8d7b9656be920fcf83715",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_generation_smoke.py",
      "name": "test_generation_smoke.py",
      "kind": "file",
      "path": "tests/pptx-posters/test_generation_smoke.py",
      "span": "L1-L205",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "09480da3c042a6a171c91b899800fa9fca5a7e72f82190b359c7166abe367dd4",
      "chars": 7508,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_generation_smoke.py#exact_dependencies_available",
      "name": "exact_dependencies_available",
      "kind": "function",
      "path": "tests/pptx-posters/test_generation_smoke.py",
      "span": "L37-L41",
      "signature": "def exact_dependencies_available() -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "53e1f1f4a8ede1dfecc3170cb7c2dd34a67d78e82502b0d8448c3adef71c6cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests",
      "name": "GenerationSmokeTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_generation_smoke.py",
      "span": "L48-L200",
      "signature": "class GenerationSmokeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "98a9ec91cb1f5e2d3ffad876a7d4728cf35d4a4c5a662a5c56d8e8e525c6c2b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "name": "test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "kind": "method",
      "path": "tests/pptx-posters/test_generation_smoke.py",
      "span": "L84-L200",
      "signature": "def test_generate_inspect_layout_inventory_alt_text_and_no_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9641a7026ef0a39afd91c219bfb73a9e7b21fd8496e83d9c157e80b53e472180",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GenerationSmokeTests"
    },
    {
      "id": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_hidden_image_metadata_is_a_release_blocker",
      "name": "test_hidden_image_metadata_is_a_release_blocker",
      "kind": "method",
      "path": "tests/pptx-posters/test_generation_smoke.py",
      "span": "L49-L82",
      "signature": "def test_hidden_image_metadata_is_a_release_blocker(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52426b2b8b657ceb7f0e21774c6aee15bad8505b5be2ce73ab1fbe19e0c5a7c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GenerationSmokeTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L1-L670",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a8953a32403793cd7a8847fe55b10d0d2dbc3ba7eb53ca7c02f7512e9e2429e9",
      "chars": 28494,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "name": "ManifestTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L94-L391",
      "signature": "class ManifestTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5fb74e3e59388dbb011ca23073de19a7a15587dd89272b40dcbf89e0cda0784c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_asset_requires_explicit_provenance",
      "name": "test_asset_requires_explicit_provenance",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L145-L157",
      "signature": "def test_asset_requires_explicit_provenance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30ff35ac3b5d92c29249e262d012b76639bed76dbe72754721144dd3bf101e17",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_contrast_can_be_reported_by_palette_audit",
      "name": "test_bad_contrast_can_be_reported_by_palette_audit",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L313-L326",
      "signature": "def test_bad_contrast_can_be_reported_by_palette_audit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b799d3f452d10345e4c2f7935efa8a346b9a9139fe4400f14daa3d3870b908de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_declared_contrast_is_rejected",
      "name": "test_bad_declared_contrast_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L302-L311",
      "signature": "def test_bad_declared_contrast_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b78445dd62335d818e6511c672ccacb1d4951a62cdb1e632c4cf1d10e85d137",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_complete_synthetic_manifest_passes",
      "name": "test_complete_synthetic_manifest_passes",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L95-L107",
      "signature": "def test_complete_synthetic_manifest_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bfa370a3ceb8dd03f76e8ee8c5b9420dfd78b473789e97ed34057a3245516c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_content_change_invalidates_author_approval",
      "name": "test_content_change_invalidates_author_approval",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L211-L220",
      "signature": "def test_content_change_invalidates_author_approval(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "527eb17aa730e18c9537f033097093a8ca3c233cd9c9803e036b91259deb3648",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_control_characters_are_rejected_before_generation",
      "name": "test_control_characters_are_rejected_before_generation",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L222-L232",
      "signature": "def test_control_characters_are_rejected_before_generation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "abccad1c5af7c8ef95c1456c4a2c803f8b2c1537f10f6755d4a31b7fdca22276",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_duplicate_json_key_is_rejected",
      "name": "test_duplicate_json_key_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L386-L391",
      "signature": "def test_duplicate_json_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c03748929a1f93a7dbf3f32892c7d67e97979ebbdad0512491b2972507e9a6de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_long_description_is_source_bound_and_follows_image",
      "name": "test_long_description_is_source_bound_and_follows_image",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L159-L209",
      "signature": "def test_long_description_is_source_bound_and_follows_image(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "01d43c1ef4b9072bdda01feefa42959e46ef21287c626ad9389883bd2bed5c92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_nonuniform_physical_scaling_is_rejected",
      "name": "test_nonuniform_physical_scaling_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L368-L384",
      "signature": "def test_nonuniform_physical_scaling_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "460489997001d183ae47e3d433123fc07c0d10140d86a1284a4df2a8ef55c001",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_palette_cli_uses_finding_exit_code",
      "name": "test_palette_cli_uses_finding_exit_code",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L328-L337",
      "signature": "def test_palette_cli_uses_finding_exit_code(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f6fdcfae389a9305d46c1978f22c96122fc680860faf7815278decd8494e65f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_placeholder_fails_closed",
      "name": "test_placeholder_fails_closed",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L109-L118",
      "signature": "def test_placeholder_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d01b293ff954a140dd97549349185678405729fac7582f4829d04c94d895c23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_qr_requires_exact_visible_fallback_url",
      "name": "test_qr_requires_exact_visible_fallback_url",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L248-L300",
      "signature": "def test_qr_requires_exact_visible_fallback_url(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b861090224525c33b50c246193207251bcaed39b51ccfb0f18e0a0ca14b1d9d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_remote_asset_path_is_rejected",
      "name": "test_remote_asset_path_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L234-L246",
      "signature": "def test_remote_asset_path_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "193b40b4130a5f04d4c0d250044b1f1fdb3a98fcfae5c678bbee377a55f42b3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_template_is_not_valid_content",
      "name": "test_template_is_not_valid_content",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L339-L348",
      "signature": "def test_template_is_not_valid_content(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b0939f8963220b3af9e8f07f690698dc7aff5e5a6da429649e22754751b1c32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_title_must_be_first_in_reading_order",
      "name": "test_title_must_be_first_in_reading_order",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L131-L143",
      "signature": "def test_title_must_be_first_in_reading_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2caa7e2b6b112a521d52bc4d6bdab375f0b55785f96b3d032c19bd404597df3b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_uniform_physical_scaling_is_explicit",
      "name": "test_uniform_physical_scaling_is_explicit",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L350-L366",
      "signature": "def test_uniform_physical_scaling_is_explicit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b770f6a61f56f0cfbc89658e846f7682579403f33e3b2fbc263505abc668eae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#ManifestTests.test_unknown_exact_source_id_is_rejected",
      "name": "test_unknown_exact_source_id_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L120-L129",
      "signature": "def test_unknown_exact_source_id_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "682620bbbfe77086c3fce215b646ea9d9ffa0e81f68f9a60c570ff894a7b59f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManifestTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#OutputSafetyTests",
      "name": "OutputSafetyTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L394-L401",
      "signature": "class OutputSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3549ef575209ffdf5dd2c642a09f68ff9cb7308e0771767f9a178e2c65763126",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#OutputSafetyTests.test_output_never_overwrites",
      "name": "test_output_never_overwrites",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L395-L401",
      "signature": "def test_output_never_overwrites(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "409332413fe368befb1b7c290a352a2331d541951f319be9404c4fbd67fa7329",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSafetyTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests",
      "name": "PaletteAndPlanTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L404-L432",
      "signature": "class PaletteAndPlanTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a67e99126b09025d392c2eefb690975d0d369cab543059c7d59fbfd0f5a3dfc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_cmyk_requirement_blocks_readiness",
      "name": "test_cmyk_requirement_blocks_readiness",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L414-L432",
      "signature": "def test_cmyk_requirement_blocks_readiness(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d94c6bca40bf6e7a1e8c5157ea88b90fc8875b5ce8310e8fe84b9debc8732be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaletteAndPlanTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_palette_reports_reference_contrast",
      "name": "test_palette_reports_reference_contrast",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L405-L412",
      "signature": "def test_palette_reports_reference_contrast(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9facb9199c062d3f5ae36f5c1f60671c6df7b0979972bcc1a4487e2bc83d2eae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaletteAndPlanTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "name": "PptxSecurityTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L435-L665",
      "signature": "class PptxSecurityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "869d28cf40cee5ba0285c3b510f8d83f5c501f892cfec59f953d12a0193d91d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_declared_member_count_is_bounded_before_materialization",
      "name": "test_declared_member_count_is_bounded_before_materialization",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L652-L665",
      "signature": "def test_declared_member_count_is_bounded_before_materialization(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7757d9ca0062eee7c08fc767183938ee02acec79c4ef0943eeb546dd84085d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_embedded_binary_is_rejected",
      "name": "test_embedded_binary_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L625-L636",
      "signature": "def test_embedded_binary_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1942d11d4f45ae8f940920c2b4f12f24999e4f872bdaf644e96bcdf8235e0127",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_excessive_compression_ratio_is_rejected",
      "name": "test_excessive_compression_ratio_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L638-L650",
      "signature": "def test_excessive_compression_ratio_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eab378cced6b65027012b8ae8040b834dbf161edce0147aa3d65b33a4effec5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_external_relationship_is_rejected",
      "name": "test_external_relationship_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L457-L475",
      "signature": "def test_external_relationship_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be599d827087f3d03eb7d28df8849d9a9d43e1108b2b15b3c6fecfbf39e892b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_image_signature_must_match_suffix",
      "name": "test_image_signature_must_match_suffix",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L611-L623",
      "signature": "def test_image_signature_must_match_suffix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "80e4e8a2464c5e733a30e7a1038890deda71f0426cc14f5c1f27d0ae5d4a186f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_invalid_relationship_target_mode_is_rejected",
      "name": "test_invalid_relationship_target_mode_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L477-L495",
      "signature": "def test_invalid_relationship_target_mode_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5c2d43b070be5980842978b587b4d570f67c12fba7b50fb62db644c04c43d55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_macro_content_hidden_in_pptx_is_rejected",
      "name": "test_macro_content_hidden_in_pptx_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L517-L534",
      "signature": "def test_macro_content_hidden_in_pptx_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e92e94003a3bbb0b1ed951d3d02843aefadbaa3a22268422d355c3ded224dc95",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_minimal_macro_free_package_passes",
      "name": "test_minimal_macro_free_package_passes",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L436-L447",
      "signature": "def test_minimal_macro_free_package_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a67e9f06903b7072052aa40f50c972dac960c41f23eb49fb5799e08b43f7759a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_non_utf8_entity_bearing_xml_is_rejected",
      "name": "test_non_utf8_entity_bearing_xml_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L555-L573",
      "signature": "def test_non_utf8_entity_bearing_xml_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20344ae6052a2087c47927200f14b215ea74976bfc2d52ca67e4676647d83d4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_ole_markup_without_payload_is_rejected",
      "name": "test_ole_markup_without_payload_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L536-L553",
      "signature": "def test_ole_markup_without_payload_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a83263daf4ddea4d58d74a79c4876e504a79c499a746c8a6d75ecdefd77d49c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_pptm_extension_is_rejected_without_opening",
      "name": "test_pptm_extension_is_rejected_without_opening",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L449-L455",
      "signature": "def test_pptm_extension_is_rejected_without_opening(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4cf121cc4c8d1c7c661b3cf750bb449599e7f5546cb0c654d9a18161ab791af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_remote_linked_image_is_rejected",
      "name": "test_remote_linked_image_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L497-L515",
      "signature": "def test_remote_linked_image_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fa12137eea5f17026ed77cabd15eb8d82e6a4f9ddd55176f7a57d31aafb5c34",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_strict_profile_requires_exactly_one_slide",
      "name": "test_strict_profile_requires_exactly_one_slide",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L597-L609",
      "signature": "def test_strict_profile_requires_exactly_one_slide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "28ecce70bda60277537064c161ae973850629ddd4cd3d8effd539bf0ec6a509a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_traversal_member_is_rejected",
      "name": "test_traversal_member_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L575-L584",
      "signature": "def test_traversal_member_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4aad868efd1affcc50f0b1b90ffd75939b2dfdf5dd7302b737fc764307424e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_unknown_package_part_is_rejected",
      "name": "test_unknown_package_part_is_rejected",
      "kind": "method",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L586-L595",
      "signature": "def test_unknown_package_part_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d35462ec547e73ea33f47970270f369f6425d459125a8c1c92d45a243c74306",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PptxSecurityTests"
    },
    {
      "id": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "name": "write_minimal_pptx",
      "kind": "function",
      "path": "tests/pptx-posters/test_scripts.py",
      "span": "L72-L91",
      "signature": "def write_minimal_pptx( path: Path, *, content_types: str = CONTENT_TYPES, root_relationships: str = ROOT_RELS, extras: dict[str, bytes] | None = None, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcd93e41be60a1fdfd1a48cd9203784d0c0659ffd194d49973b302545e0c4c29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L1-L215",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7009e3628fbbbe5cd69e0c1bf702a0d82c4f18dd4136a53facc0cfc734b87f7a",
      "chars": 7919,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_static.py#DocumentationPolicyTests",
      "name": "DocumentationPolicyTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L172-L211",
      "signature": "class DocumentationPolicyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "25a1841a8cd5c12dc0ae8d0021fc093337014ab0f3384a5ea992484b6d17dbc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_static.py#DocumentationPolicyTests.test_no_retired_service_or_script_names",
      "name": "test_no_retired_service_or_script_names",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L173-L188",
      "signature": "def test_no_retired_service_or_script_names(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a08d1cc6071f557f93e8f766f3d1a6e547b49e834c2255421220ab5fbfe147a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationPolicyTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#DocumentationPolicyTests.test_source_ledger_is_dated_and_covers_required_authorities",
      "name": "test_source_ledger_is_dated_and_covers_required_authorities",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L190-L211",
      "signature": "def test_source_ledger_is_dated_and_covers_required_authorities(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb6b54f750ff4582c722d74f37f0080f1c8726025b3857601840afc68bf0d1ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationPolicyTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "name": "FrontmatterTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L49-L112",
      "signature": "class FrontmatterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "41d1c488b0ba82d3fb95d68782ad18bb8f67b6c92acb9cec7fad6259b39f1124",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_static.py#FrontmatterTests.test_exact_generation_pins",
      "name": "test_exact_generation_pins",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L76-L91",
      "signature": "def test_exact_generation_pins(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ad6b0fba74c7ffa02534f8d9f560e425105c9d47dc3f2ba3978899696b2bb1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FrontmatterTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#FrontmatterTests.test_expected_files_and_deletions",
      "name": "test_expected_files_and_deletions",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L62-L74",
      "signature": "def test_expected_files_and_deletions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "066a7de25d73d198270a95f5b3c7ce3bfb61ad4e1e90b6fc697bfaaa87f855ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FrontmatterTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#FrontmatterTests.test_skill_version_license_compatibility_and_length",
      "name": "test_skill_version_license_compatibility_and_length",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L50-L60",
      "signature": "def test_skill_version_license_compatibility_and_length(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f6c5910df48ee07443a7eede2b85fc0769e52c87e4145f42966cc88d3bb2afb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FrontmatterTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#FrontmatterTests.test_template_is_deliberately_fail_closed",
      "name": "test_template_is_deliberately_fail_closed",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L93-L101",
      "signature": "def test_template_is_deliberately_fail_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "588c711c520b757825807fab46c138bd91412c9bb0d3c112e331330d52f20628",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FrontmatterTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#FrontmatterTests.test_text_files_have_clean_line_endings",
      "name": "test_text_files_have_clean_line_endings",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L103-L112",
      "signature": "def test_text_files_have_clean_line_endings(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fe73f29c8cf6c8a20566de96210c677821bd1acb078d73cdf83e3060c87e7fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FrontmatterTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#PythonPolicyTests",
      "name": "PythonPolicyTests",
      "kind": "class",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L115-L170",
      "signature": "class PythonPolicyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a02e7fcd8c6a678af02fa8d78ede76c3814d91f8371bef3ed5c6ee523af0268",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx-posters/test_static.py#PythonPolicyTests._trees",
      "name": "_trees",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L116-L125",
      "signature": "def _trees(self) -> list[tuple[Path, ast.Module]]",
      "exported": false,
      "origin": "ast",
      "body_hash": "653a16600ae8db41f95578294ccf08198f95b038b5b382c6835fa742a73a9303",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonPolicyTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_cli_help_is_dependency_free",
      "name": "test_cli_help_is_dependency_free",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L162-L170",
      "signature": "def test_cli_help_is_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc9e02b0bcc1a580d750b82a4298a48ea5abf74c313901643168fd18343c14b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonPolicyTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_optional_generation_imports_are_lazy",
      "name": "test_optional_generation_imports_are_lazy",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L148-L160",
      "signature": "def test_optional_generation_imports_are_lazy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "354620d38b819d3f313a2f2d5b32681ee674dae752db66832dec84d1f6c9e008",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonPolicyTests"
    },
    {
      "id": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_scripts_parse_and_avoid_network_shell_dynamic_code_and_objects",
      "name": "test_scripts_parse_and_avoid_network_shell_dynamic_code_and_objects",
      "kind": "method",
      "path": "tests/pptx-posters/test_static.py",
      "span": "L127-L146",
      "signature": "def test_scripts_parse_and_avoid_network_shell_dynamic_code_and_objects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d253c9ad9fecd0781bf3ab80d5bbdadf6d575887246e339f1c786049a439610e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonPolicyTests"
    },
    {
      "id": "tests/pptx/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pptx/test_scripts.py",
      "span": "L1-L237",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "dfd61f37538c0484b217cb2f101ff29842f0ee370a06990d7942a1139d1aed8a",
      "chars": 9781,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#Deck",
      "name": "Deck",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L43-L77",
      "signature": "class Deck",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d7db27a769bcfc94e1fe8cebcc31f860e3030342bba3b1160aa788eabd080b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#Deck.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L46-L77",
      "signature": "def __init__(self, root: Path, count: int, *, orphans: int = 0) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "a84fb5d080336b4e433c803d1b4d8fd6343dade3712e8fcb4161921dedcd67d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "Deck"
    },
    {
      "id": "tests/pptx/test_scripts.py#DeckTestCase",
      "name": "DeckTestCase",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L80-L84",
      "signature": "class DeckTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8bf6248f9bdd7c2dac61cd4312879c10e5df60433948741e4a00fd35a87b33f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#DeckTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L81-L84",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DeckTestCase"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "name": "OrphanDetectionTests",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L147-L208",
      "signature": "class OrphanDetectionTests(DeckTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "376255954552ad39dd8440e3c65ec2d6af6c85db4469acebb525f83e14835b23",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_a_deck_with_no_orphans_loses_nothing",
      "name": "test_a_deck_with_no_orphans_loses_nothing",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L173-L176",
      "signature": "def test_a_deck_with_no_orphans_loses_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5edb008cdfe364aa2389c305f0007734d1ec325c5172fd13adb650374ea0130c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_a_package_with_no_slides_directory_is_a_no_op",
      "name": "test_a_package_with_no_slides_directory_is_a_no_op",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L178-L179",
      "signature": "def test_a_package_with_no_slides_directory_is_a_no_op(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4885a50b85b02e5b2edbd7ac4778b005c659b9db63826192d6c2e406fbb91577",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_an_unreadable_presentation_refuses_rather_than_deleting_everything",
      "name": "test_an_unreadable_presentation_refuses_rather_than_deleting_everything",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L181-L202",
      "signature": "def test_an_unreadable_presentation_refuses_rather_than_deleting_everything( self, ) -> None: # If sldIdLst cannot be parsed, every slide looks orphaned. Deleting # them would destroy the deck, so the tool must refuse instead.",
      "exported": true,
      "origin": "ast",
      "body_hash": "931cf855d0b53c666e86bf927c664e86ef1281a1432211fd9707d9fae42633a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_an_unregistered_slide_is_not_reported_as_referenced",
      "name": "test_an_unregistered_slide_is_not_reported_as_referenced",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L155-L158",
      "signature": "def test_an_unregistered_slide_is_not_reported_as_referenced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b0dbb9b9ae0aed772ea9803d946ce18a04bf670abbfad7049f850878aa3e054",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_only_the_orphan_is_removed",
      "name": "test_only_the_orphan_is_removed",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L160-L171",
      "signature": "def test_only_the_orphan_is_removed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc2fdcd76da63608e1a9aac2366e70bd0204f35f12506534d6c31af964a0de0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_registered_slides_are_reported_as_referenced",
      "name": "test_registered_slides_are_reported_as_referenced",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L148-L153",
      "signature": "def test_registered_slides_are_reported_as_referenced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a308f590482b7d869259c07dc968764670001b3469a557958a80aa608012e69f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_the_rels_file_goes_with_its_slide",
      "name": "test_the_rels_file_goes_with_its_slide",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L204-L208",
      "signature": "def test_the_rels_file_goes_with_its_slide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6047b2c03505f19e4b0c6b9e7a940c3e583d43c0d5bef57589592b08dd2f0387",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OrphanDetectionTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideIdTests",
      "name": "SlideIdTests",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L122-L144",
      "signature": "class SlideIdTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5c84b90f7cfc7bd0908eebeb516dd4cb3f6603de033704260bb2fa908683bd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideIdTests.test_shared_part_types_are_the_documented_set",
      "name": "test_shared_part_types_are_the_documented_set",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L133-L137",
      "signature": "def test_shared_part_types_are_the_documented_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d22ae7ef2da8b715c9047e7d8764f231e6d511bdf1a1c73a9e3ac19c8187e6a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideIdTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideIdTests.test_the_id_range_matches_the_ooxml_specification",
      "name": "test_the_id_range_matches_the_ooxml_specification",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L123-L126",
      "signature": "def test_the_id_range_matches_the_ooxml_specification(self) -> None: # Outside 256..2147483647 PowerPoint refuses to open the file.",
      "exported": true,
      "origin": "ast",
      "body_hash": "311aea2d5aa951779a0e62fef4e3c9d6709b2b4a4cf50eada799011ccb3a010a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideIdTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideIdTests.test_the_minimal_slide_xml_is_well_formed",
      "name": "test_the_minimal_slide_xml_is_well_formed",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L128-L131",
      "signature": "def test_the_minimal_slide_xml_is_well_formed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3e48e18eb6704455d4975862fa99183c0aa499cf0b974136b3b7371d48fd7d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideIdTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideIdTests.test_the_relationship_pattern_matches_both_element_forms",
      "name": "test_the_relationship_pattern_matches_both_element_forms",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L139-L144",
      "signature": "def test_the_relationship_pattern_matches_both_element_forms(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "42a6fe38136b34d56a3af634a6d966aa9641b2e900b2eaa8d9981d26fd9da911",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideIdTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideNumberingTests",
      "name": "SlideNumberingTests",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L87-L107",
      "signature": "class SlideNumberingTests(DeckTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8123af23027b7a5308f7389540fe4d56521330783990de5f20786249bdf66203",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideNumberingTests.test_files_that_are_not_slides_are_ignored",
      "name": "test_files_that_are_not_slides_are_ignored",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L101-L107",
      "signature": "def test_files_that_are_not_slides_are_ignored(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ff1f30ff972d7177175737748032e8b8e63ef5c09caeecd1b88f6802fd34370",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideNumberingTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideNumberingTests.test_the_first_slide_in_an_empty_deck_is_one",
      "name": "test_the_first_slide_in_an_empty_deck_is_one",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L88-L91",
      "signature": "def test_the_first_slide_in_an_empty_deck_is_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "749c3dd3259b10203a79e905192544303481af06e9cc58e9b8bfe3ca1d655dfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideNumberingTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SlideNumberingTests.test_the_next_number_follows_the_highest_existing_slide",
      "name": "test_the_next_number_follows_the_highest_existing_slide",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L93-L99",
      "signature": "def test_the_next_number_follows_the_highest_existing_slide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "70715eacccd9dc711e35458a4d59bd0420eff770aa028b3a314c768cbd9a9712",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideNumberingTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SourceParsingTests",
      "name": "SourceParsingTests",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L110-L119",
      "signature": "class SourceParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "afec4e7eb91e2be2b05fad096e0d4df14293f5bb8f1ccb62fd61e2d672d54746",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#SourceParsingTests.test_a_layout_filename_is_recognised",
      "name": "test_a_layout_filename_is_recognised",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L111-L114",
      "signature": "def test_a_layout_filename_is_recognised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46cc538d8b56ee9a78f1a796c0a9ea178832c4fbea91b9b9dc66046fa3b882ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SourceParsingTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#SourceParsingTests.test_anything_else_is_treated_as_a_slide_source",
      "name": "test_anything_else_is_treated_as_a_slide_source",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L116-L119",
      "signature": "def test_anything_else_is_treated_as_a_slide_source(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5f2865b237c2c45819b7d83993808ae634b450b38a8e15d88ed4f9854e5462b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SourceParsingTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#ThumbnailConstantTests",
      "name": "ThumbnailConstantTests",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L225-L232",
      "signature": "class ThumbnailConstantTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "262100641f9ea9aa02b21b235e036b6dfe729953170102677f31650a519728dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#ThumbnailConstantTests.test_the_grid_constants_are_sane",
      "name": "test_the_grid_constants_are_sane",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L226-L232",
      "signature": "def test_the_grid_constants_are_sane(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "071faab637cd822d0ba1f0b3a5708122d0289fd8119a0e9717f6de87b98c052f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThumbnailConstantTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#TrashRemovalTests",
      "name": "TrashRemovalTests",
      "kind": "class",
      "path": "tests/pptx/test_scripts.py",
      "span": "L211-L222",
      "signature": "class TrashRemovalTests(DeckTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "42c409f38b87649f5dbd22d8f96fe3bd1d57f915f89236bd73a3498fe3742982",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pptx/test_scripts.py#TrashRemovalTests.test_a_package_without_one_is_untouched",
      "name": "test_a_package_without_one_is_untouched",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L221-L222",
      "signature": "def test_a_package_without_one_is_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a06adc9537cf5835a95b17d9f6c8209d957d753e891906755096c90de63d120",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrashRemovalTests"
    },
    {
      "id": "tests/pptx/test_scripts.py#TrashRemovalTests.test_a_trash_directory_is_removed",
      "name": "test_a_trash_directory_is_removed",
      "kind": "method",
      "path": "tests/pptx/test_scripts.py",
      "span": "L212-L219",
      "signature": "def test_a_trash_directory_is_removed(self) -> None: # The directory PowerPoint leaves behind is literally named \"[trash]\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "02ea16f61b232299be6120fad4201c935918cacd1a7d4ff442294e758e0e712f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrashRemovalTests"
    },
    {
      "id": "tests/primekg/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/primekg/test_scripts.py",
      "span": "L1-L189",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "b16a4f11d2c847c9e4c6f1de3ac9125aa1a649857285d9c14252916da6cb21a5",
      "chars": 8172,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#DataPathTests",
      "name": "DataPathTests",
      "kind": "class",
      "path": "tests/primekg/test_scripts.py",
      "span": "L55-L73",
      "signature": "class DataPathTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e0c8fa3600c5478471c3f54ffb5bf0aaa6b946e0973f84c2c9cfd1f89f6849f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#DataPathTests.test_a_missing_file_explains_where_to_get_the_data",
      "name": "test_a_missing_file_explains_where_to_get_the_data",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L67-L73",
      "signature": "def test_a_missing_file_explains_where_to_get_the_data(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1562258d7ccf101d5811fb6f8a8f3d5a32dbb84c24f0ebee1d2d22ad96eeb5e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPathTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#DataPathTests.test_the_default_path_is_relative_and_env_overridable",
      "name": "test_the_default_path_is_relative_and_env_overridable",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L56-L65",
      "signature": "def test_the_default_path_is_relative_and_env_overridable(self) -> None: # A hardcoded absolute path would name one machine and work on no other.",
      "exported": true,
      "origin": "ast",
      "body_hash": "02fda2b54b985e9e3825f2c77ce25aea1c91ab92da802faa9903cdf2ba6a5cd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPathTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "name": "DiseaseContextTests",
      "kind": "class",
      "path": "tests/primekg/test_scripts.py",
      "span": "L155-L184",
      "signature": "class DiseaseContextTests(PrimeKgTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7025e5040767e64e87cd0487a19e9466aafd7324d33fcb36c2042fe4bc7758c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#DiseaseContextTests.test_a_disease_with_no_drug_edges_reports_an_empty_bucket",
      "name": "test_a_disease_with_no_drug_edges_reports_an_empty_bucket",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L170-L172",
      "signature": "def test_a_disease_with_no_drug_edges_reports_an_empty_bucket(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "deb66a849d5686f560f4767cb3313c66148515ef9d24bda23c02252a6de637f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiseaseContextTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#DiseaseContextTests.test_a_gene_name_is_not_mistaken_for_a_disease",
      "name": "test_a_gene_name_is_not_mistaken_for_a_disease",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L180-L184",
      "signature": "def test_a_gene_name_is_not_mistaken_for_a_disease(self) -> None: # search_nodes is type-filtered to 'disease', so a gene must not match.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2609c80de564ce9aae0cf014b0a7a4d2d0e65992909374586294cf051585e66",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiseaseContextTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#DiseaseContextTests.test_an_unknown_disease_reports_an_error_rather_than_raising",
      "name": "test_an_unknown_disease_reports_an_error_rather_than_raising",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L174-L178",
      "signature": "def test_an_unknown_disease_reports_an_error_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e97cad54c018d38cf38c647be2219a07099224fa184dda20daf03c26f3169cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiseaseContextTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#DiseaseContextTests.test_the_context_is_bucketed_by_neighbour_type",
      "name": "test_the_context_is_bucketed_by_neighbour_type",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L156-L168",
      "signature": "def test_the_context_is_bucketed_by_neighbour_type(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54beb04c033c2905e66ccdc4401b95f9361c0276e310297aa855636e1106b9cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiseaseContextTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#NeighborTests",
      "name": "NeighborTests",
      "kind": "class",
      "path": "tests/primekg/test_scripts.py",
      "span": "L108-L130",
      "signature": "class NeighborTests(PrimeKgTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80109b1476413770f224b0ea3478083ce91518295267eb60c684fb4702dbdfdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#NeighborTests.test_a_node_id_is_matched_as_a_string_or_a_number",
      "name": "test_a_node_id_is_matched_as_a_string_or_a_number",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L115-L119",
      "signature": "def test_a_node_id_is_matched_as_a_string_or_a_number(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f1bfabb3d5eb1f1f0e5f7b41312a82b4dde1da1833ee5b5dcef9132f5d81650",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NeighborTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#NeighborTests.test_a_relation_filter_restricts_the_edge_type",
      "name": "test_a_relation_filter_restricts_the_edge_type",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L121-L123",
      "signature": "def test_a_relation_filter_restricts_the_edge_type(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d34c5ea45ac06db9cd3523056ca1dd516b650367032bd1810020797e2acb841",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NeighborTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#NeighborTests.test_an_unknown_node_has_no_neighbors",
      "name": "test_an_unknown_node_has_no_neighbors",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L129-L130",
      "signature": "def test_an_unknown_node_has_no_neighbors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b540e934872ea3e0321ebadef9cc50265c5360cb749ced80aa097342b0ee1307",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NeighborTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#NeighborTests.test_neighbors_are_collected_from_both_directions",
      "name": "test_neighbors_are_collected_from_both_directions",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L109-L113",
      "signature": "def test_neighbors_are_collected_from_both_directions(self) -> None: # BRCA1 is only ever a y-node, so a one-sided query would return none.",
      "exported": true,
      "origin": "ast",
      "body_hash": "27d68e510a182d2e208a83eec974398b63494bb097b1171e2858095f28003856",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NeighborTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#NeighborTests.test_the_display_relation_is_carried_through",
      "name": "test_the_display_relation_is_carried_through",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L125-L127",
      "signature": "def test_the_display_relation_is_carried_through(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "da9707a4c5823ccc2af0c4946121e3e09020624fbe8706df510d3cdd55594686",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NeighborTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#PathTests",
      "name": "PathTests",
      "kind": "class",
      "path": "tests/primekg/test_scripts.py",
      "span": "L133-L152",
      "signature": "class PathTests(PrimeKgTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "28cc21f427b1b790e5e592080bf73e23c2b09a86923d4583abd0f971a2c84250",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#PathTests.test_a_direct_edge_is_returned_as_a_one_hop_path",
      "name": "test_a_direct_edge_is_returned_as_a_one_hop_path",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L134-L138",
      "signature": "def test_a_direct_edge_is_returned_as_a_one_hop_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a7fc828e61e6ff42fa68d593bf5c70429e7805a1d05ec3a320d8bc966bc21f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#PathTests.test_direction_does_not_matter",
      "name": "test_direction_does_not_matter",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L140-L144",
      "signature": "def test_direction_does_not_matter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d1d372f4e06fb64b1e35a8524ad78eec2a24ca43e56f0629e63e71bb1bdb157",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#PathTests.test_two_hop_search_is_documented_as_unimplemented",
      "name": "test_two_hop_search_is_documented_as_unimplemented",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L149-L152",
      "signature": "def test_two_hop_search_is_documented_as_unimplemented(self) -> None: # The depth-2 branch is a stub; assert the current contract rather than # a capability the script does not have.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0237073bd720fb6806b241bf7af13dc5ecb241d65c072bdc840f81914469ca69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#PathTests.test_unconnected_nodes_yield_no_path",
      "name": "test_unconnected_nodes_yield_no_path",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L146-L147",
      "signature": "def test_unconnected_nodes_yield_no_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff7cc1dac02904bca93bca05729610518b9f9840a555c248438d1380cf5b14c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PathTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "name": "PrimeKgTestCase",
      "kind": "class",
      "path": "tests/primekg/test_scripts.py",
      "span": "L42-L52",
      "signature": "class PrimeKgTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66895d9dffa3b9c8ab767a075110d12948c88e00a2b083b99ea4d482fa980b13",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#PrimeKgTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L45-L52",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fcd35959d5e39803ef477bc5699bb7c8d2325a6eece5be714e6c4d8c8763fa24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PrimeKgTestCase"
    },
    {
      "id": "tests/primekg/test_scripts.py#SearchTests",
      "name": "SearchTests",
      "kind": "class",
      "path": "tests/primekg/test_scripts.py",
      "span": "L76-L105",
      "signature": "class SearchTests(PrimeKgTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "66e51ad369d79b33209a7e166c1f6962145763e9840b33124fbd245c4655a326",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/primekg/test_scripts.py#SearchTests.test_a_type_filter_narrows_the_result",
      "name": "test_a_type_filter_narrows_the_result",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L93-L99",
      "signature": "def test_a_type_filter_narrows_the_result(self) -> None: # \"Breast\" matches both the disease and the phenotype.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cf1f6a24f94011039d8abd4357736967782ac19b156e9108bb0c29962109521",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#SearchTests.test_no_match_returns_an_empty_list",
      "name": "test_no_match_returns_an_empty_list",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L101-L102",
      "signature": "def test_no_match_returns_an_empty_list(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7bf796de91e51313ab6d4ed72bb912df5b1b6db1ea14a0f7794aa6d9daac28b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#SearchTests.test_nodes_are_found_on_either_side_of_an_edge",
      "name": "test_nodes_are_found_on_either_side_of_an_edge",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L77-L85",
      "signature": "def test_nodes_are_found_on_either_side_of_an_edge(self) -> None: # TP53 appears as x in one row and as y in another; one record either way.",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfbe7f2728728b39322aa013857a44db0954ceebb1688bd64d6f0b58ad202e04",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#SearchTests.test_results_carry_the_source_database",
      "name": "test_results_carry_the_source_database",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L104-L105",
      "signature": "def test_results_carry_the_source_database(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "356e9736d0dffbb06144fee4e3367c0c7a713091e3feb488f2aae35b6b6641eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/primekg/test_scripts.py#SearchTests.test_search_is_case_insensitive_and_substring_based",
      "name": "test_search_is_case_insensitive_and_substring_based",
      "kind": "method",
      "path": "tests/primekg/test_scripts.py",
      "span": "L87-L91",
      "signature": "def test_search_is_case_insensitive_and_substring_based(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40393f3d7155d9f1efc29a26885c8f99ad3997a4d455694c0b1ef53081c974ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L1-L543",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0680eb7518743aed236c0812af9dbe86874e73f57a16ad8076ce6f99369d7b98",
      "chars": 18772,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "name": "FakeResponse",
      "kind": "class",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L43-L70",
      "signature": "class FakeResponse",
      "exported": true,
      "origin": "ast",
      "body_hash": "41968de46a47892fc8497f98b1ef2a6257e4c1f09a4efd191ad4404e08c3852c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#FakeResponse.__enter__",
      "name": "__enter__",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L60-L61",
      "signature": "def __enter__(self) -> \"FakeResponse\"",
      "exported": false,
      "origin": "ast",
      "body_hash": "5e33da89daf27a5c66aeeea6041807f8af3a7c1beb8cd50c662a4b398b5eee47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#FakeResponse.__exit__",
      "name": "__exit__",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L63-L64",
      "signature": "def __exit__(self, *args: object) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "84f7f13409303d73c7fe221b83eabe69d18a26d3b6266d239c7c9b0e821c7dc2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#FakeResponse.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L44-L58",
      "signature": "def __init__( self, body: bytes, *, url: str, status: int = 200, headers: dict[str, str] | None = None, ) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "146789654270cb07022277d28c7fd04a327f872dfaf123447277d9f0b8b58e2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#FakeResponse.getcode",
      "name": "getcode",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L69-L70",
      "signature": "def getcode(self) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "71d9c7f78230240a2425d4f010dfa014607fd677c38aef6549ecfa9b03e7dfc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#FakeResponse.read",
      "name": "read",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L66-L67",
      "signature": "def read(self, size: int = -1) -> bytes",
      "exported": true,
      "origin": "ast",
      "body_hash": "0bc96d864b9e7ddc90bcb3658853d2b250ecab8474608f7d51e8018e8f869452",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "name": "ScriptTests",
      "kind": "class",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L87-L538",
      "signature": "class ScriptTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8997ec14fffd1254d16fec9c269643a36b379114b6b24c51f54cdad78bb9d870",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L88-L90",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "281bb4c8eea4735de771cac8212f8021f8a11f9a469fa383b05b4bd75648fab6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.tearDown",
      "name": "tearDown",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L92-L93",
      "signature": "def tearDown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b3f2d2ae3a8b4832a0790382dc18517d3b5b9cb4036e57abe66607c68d3bfe4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_all_help_paths_are_dependency_free",
      "name": "test_all_help_paths_are_dependency_free",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L95-L109",
      "signature": "def test_all_help_paths_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9bc126c70e16d9254fb8da4a2c857f2197279a6469e23b0200a68497c22de227",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_auth_validator_reports_presence_without_values",
      "name": "test_auth_validator_reports_presence_without_values",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L111-L126",
      "signature": "def test_auth_validator_reports_presence_without_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "44a98e2c3ab1edc5cee947db813c6239e1710046826dad4fb8df18b5cf2fb3b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_duplicate_json_keys_are_rejected",
      "name": "test_duplicate_json_keys_are_rejected",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L232-L238",
      "signature": "def test_duplicate_json_keys_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b0c4eb310a75f5bae17e853c1e598694eaa4c2c706bf230ac2d80feeaefa8aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_get_uses_named_token_without_emitting_it",
      "name": "test_mocked_get_uses_named_token_without_emitting_it",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L327-L353",
      "signature": "def test_mocked_get_uses_named_token_without_emitting_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "070bc4a4cb11dd54803f4ebe666a4f6abe8795a8f7c90ab3be171c96bc5a31c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_list_follows_only_validated_bounded_page",
      "name": "test_mocked_list_follows_only_validated_bounded_page",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L355-L423",
      "signature": "def test_mocked_list_follows_only_validated_bounded_page(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2704de5a5420d03dcf0ae9e3268cd0551be39daac510220cb3322a48d2c5116e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_pdf_export_writes_private_file",
      "name": "test_mocked_pdf_export_writes_private_file",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L476-L512",
      "signature": "def test_mocked_pdf_export_writes_private_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2152ea9ae22e3a1ecb7aed21debaa171194b1eae428eed6d65d4a31749fbf636",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_offline_protocol_summary_preserves_version_and_attribution",
      "name": "test_offline_protocol_summary_preserves_version_and_attribution",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L201-L230",
      "signature": "def test_offline_protocol_summary_preserves_version_and_attribution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7d2b536f719c13a7918590c7d93ceb69fb4aa73841eede7029212d5937a9ad7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_origin_allowlist_is_https_only",
      "name": "test_origin_allowlist_is_https_only",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L128-L147",
      "signature": "def test_origin_allowlist_is_https_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e945f2066feb75127418c742c916d8f013a3958f548cc604b278cbe910cfcbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_pagination_rejects_untrusted_next_host_and_path",
      "name": "test_pagination_rejects_untrusted_next_host_and_path",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L149-L199",
      "signature": "def test_pagination_rejects_untrusted_next_host_and_path(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd37c024f4fd80a91f5715d9f50dd8f251b652ba53f1f00609cd4bf6e6b6ba9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_publish_plan_requires_protocol_uri_not_doi",
      "name": "test_publish_plan_requires_protocol_uri_not_doi",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L286-L297",
      "signature": "def test_publish_plan_requires_protocol_uri_not_doi(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba1a866a492e29d6b77b41e20a351e2d61d92a79c816195194bbdd88e1b60fc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_read_plan_does_not_touch_network_or_credentials",
      "name": "test_read_plan_does_not_touch_network_or_credentials",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L318-L325",
      "signature": "def test_read_plan_does_not_touch_network_or_credentials(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd464fcc26fa93ef71ed137912185d11029634878771ed11a0a817940921262e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_redirect_handler_refuses_redirects",
      "name": "test_redirect_handler_refuses_redirects",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L527-L538",
      "signature": "def test_redirect_handler_refuses_redirects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "595534eb22de01a0845514a6d99776f4aa57971fd7c1629519d3afbe68cd8c51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_response_size_cap_is_enforced",
      "name": "test_response_size_cap_is_enforced",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L452-L474",
      "signature": "def test_response_size_cap_is_enforced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d79eba7e721202e87ba5979c3d7a33cf94fadf268dd0f60bcf3429114fd9626",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_retry_after_is_capped_and_attempts_are_bounded",
      "name": "test_retry_after_is_capped_and_attempts_are_bounded",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L425-L450",
      "signature": "def test_retry_after_is_capped_and_attempts_are_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a554259693df8a55b148cd3c3d901254a1eaaa079a6a9b3fcafe9eaee437881",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_sanitizer_redacts_remote_credential_fields",
      "name": "test_sanitizer_redacts_remote_credential_fields",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L514-L525",
      "signature": "def test_sanitizer_redacts_remote_credential_fields(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "696761b05ecb95866c90433a9d9230ce055c8a09dbf3f0e6666171f96d89fe01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_upload_plan_hashes_bounded_local_file_only",
      "name": "test_upload_plan_hashes_bounded_local_file_only",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L299-L316",
      "signature": "def test_upload_plan_hashes_bounded_local_file_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca89b7626c7c3e551ae8d525f4c8a2d19b6c9499847254e9755f26d9df42ea5c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_write_planner_redacts_and_never_executes",
      "name": "test_write_planner_redacts_and_never_executes",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L240-L261",
      "signature": "def test_write_planner_redacts_and_never_executes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b51a98fb898c99850e6776d5a67f997d101b0968bb0496610ed8c8446f97ef2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_write_planner_requires_exact_confirmation",
      "name": "test_write_planner_requires_exact_confirmation",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L263-L284",
      "signature": "def test_write_planner_requires_exact_confirmation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "88f22f6a23cd5e8f8421829eaeb257c04a9a69edc585947b7320a2317b0926dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "name": "SequenceOpener",
      "kind": "class",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L73-L84",
      "signature": "class SequenceOpener",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a760a58add91eddab8cb5935368ee50621736b93a9f053d4d32f2e697a078a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#SequenceOpener.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L74-L76",
      "signature": "def __init__(self, responses: list[object]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "86126d3862f18e39045d5263ea4ff5b744ee9dd012f9061efee3dd2f0cc7d1ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceOpener"
    },
    {
      "id": "tests/protocolsio-integration/test_scripts.py#SequenceOpener.open",
      "name": "open",
      "kind": "method",
      "path": "tests/protocolsio-integration/test_scripts.py",
      "span": "L78-L84",
      "signature": "def open(self, request: object, timeout: float) -> object",
      "exported": true,
      "origin": "ast",
      "body_hash": "984fc32a7ef7aac411ffa5704f03a4bb2ee719fc552c04d3651cbea5c59eb617",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SequenceOpener"
    },
    {
      "id": "tests/pufferlib/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L1-L245",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "46c97ef4abea1956dbdc1cbc54e1c866835706b78f735920654ea712304251db",
      "chars": 8805,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CheckpointInspectorTests",
      "name": "CheckpointInspectorTests",
      "kind": "class",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L202-L240",
      "signature": "class CheckpointInspectorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60e1065beaf87fbb3173e8dfad60847961efed634b45e751dd4a2e33b86aea1e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CheckpointInspectorTests.test_inspector_hashes_without_deserialization",
      "name": "test_inspector_hashes_without_deserialization",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L203-L240",
      "signature": "def test_inspector_hashes_without_deserialization(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "189bad66c35eb45de5055025a1aea922aa0be3ffca88b1d057afffc2722a214f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CheckpointInspectorTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests",
      "name": "CliTests",
      "kind": "class",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L59-L156",
      "signature": "class CliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8865410040bac0be988c4960f5d377dbdbaeed2904d6745a55d4e0cb021a86cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_all_help_commands_are_dependency_free",
      "name": "test_all_help_commands_are_dependency_free",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L60-L74",
      "signature": "def test_all_help_commands_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4d7e548b18284ceaedbb57e4cbca97f501e0314276b5978cdd1b7729dc074df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_external_logger_never_reads_credential_value",
      "name": "test_external_logger_never_reads_credential_value",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L118-L130",
      "signature": "def test_external_logger_never_reads_credential_value(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce975f00f927a52997d0073aac77280820ce05d01c3c6e8ef91d7a37dbf263bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_external_logger_requires_two_opt_ins",
      "name": "test_external_logger_requires_two_opt_ins",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L111-L116",
      "signature": "def test_external_logger_requires_two_opt_ins(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "84946d56533207b87ac920f70af7d1177afbfa7d121cc29d702bcd234eaf6495",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_repro_plan_separates_seeds",
      "name": "test_repro_plan_separates_seeds",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L146-L156",
      "signature": "def test_repro_plan_separates_seeds(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "89fb1a4d3002d4fbd2c16cb9cb9a83ca8feb3c9de6ac61afe113c428b11c7efd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_serial_benchmark_is_bounded_json",
      "name": "test_serial_benchmark_is_bounded_json",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L76-L92",
      "signature": "def test_serial_benchmark_is_bounded_json(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be763942e8de516268faad6bf5ea6b354aa72e907a93efc9d76f43da3b4496d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_source_profile_rejects_neptune",
      "name": "test_source_profile_rejects_neptune",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L132-L144",
      "signature": "def test_source_profile_rejects_neptune(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "851d29c9003b76311c760b4bc0c33cb19930565ad8c9daca05195ff7cb285aaa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_source_profile_uses_torch_dry_run",
      "name": "test_source_profile_uses_torch_dry_run",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L102-L109",
      "signature": "def test_source_profile_uses_torch_dry_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "42857ef6dbca4577a9196f77153d27cb36c24ac2a38ee06407201b3c6c1e0d01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#CliTests.test_train_template_defaults_to_dry_run",
      "name": "test_train_template_defaults_to_dry_run",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L94-L100",
      "signature": "def test_train_template_defaults_to_dry_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22333cedef536f19d6fe28e01ed12810c399a91a00b20f012b1d27076b7b4cf6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#PlanValidationTests",
      "name": "PlanValidationTests",
      "kind": "class",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L159-L199",
      "signature": "class PlanValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6562b6236cb3cdb9c92c3288af008efd3b6b06318b07b732c3e3a5c81c50d491",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_default_plans_validate",
      "name": "test_default_plans_validate",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L160-L163",
      "signature": "def test_default_plans_validate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "28472ce717dd3c046da4fbb99f4d568fe7de95f6f9c19c8a01cc3b480a584d47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanValidationTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_duplicate_json_key_is_rejected",
      "name": "test_duplicate_json_key_is_rejected",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L184-L199",
      "signature": "def test_duplicate_json_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1156592907ea5c521f506b3881fb92cbeab65e3ecc5e68b5d6db30b6dd70e2c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanValidationTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_external_environment_requires_attested_provenance",
      "name": "test_external_environment_requires_attested_provenance",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L171-L182",
      "signature": "def test_external_environment_requires_attested_provenance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f163df692daa37da356b8e9cf6bc3ce489101b818939e81dd69f479ea725a57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanValidationTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_secret_key_is_rejected",
      "name": "test_secret_key_is_rejected",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L165-L169",
      "signature": "def test_secret_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8796e9e4c20d42415bfa9191a6328ba72fe44060c4f5ff0bb3b2327ba16fdb63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlanValidationTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L23-L33",
      "signature": "def run_script(name: str, *arguments: str) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2602e9926c01cc48d4fc79777cb39a770aeb21aff681e21d121e71a3378edc78",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests",
      "name": "SyntheticEnvironmentTests",
      "kind": "class",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L36-L56",
      "signature": "class SyntheticEnvironmentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1b433a4c8199341d1c4c440a445b607d3abdf97f9d6bdf6fb10e1b28414c8fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests.test_contract_validator",
      "name": "test_contract_validator",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L44-L56",
      "signature": "def test_contract_validator(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c53c72ee1c6d699c4358a0552841c72fea07adb56b770f0c7fd297a2962d805c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticEnvironmentTests"
    },
    {
      "id": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests.test_seeded_trace_is_deterministic",
      "name": "test_seeded_trace_is_deterministic",
      "kind": "method",
      "path": "tests/pufferlib/test_scripts.py",
      "span": "L37-L42",
      "signature": "def test_seeded_trace_is_deterministic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "94ce3fa29228e9910c9e0c394de8d84e802c3b963abea1a7619871a3add6e524",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticEnvironmentTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L1-L411",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3505428ca25147ab235893174cf36ff3b5fd99a276f5175691ca0d05455e2e2a",
      "chars": 17681,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "name": "EndToEndFitTests",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L362-L406",
      "signature": "class EndToEndFitTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb6efca364ffca5f0194a8128dcc71f6f437632b393f1296efcf9c51192d680d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L366-L385",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f81dff5a7e4753013fdd19f73472fe48acf79d5988bd4b4acb00a9f3ef8bf3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndFitTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_every_tested_gene_gets_a_row",
      "name": "test_every_tested_gene_gets_a_row",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L405-L406",
      "signature": "def test_every_tested_gene_gets_a_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "34a060ed46ea8b830f839f9a6668e53e4ba65bafc37df6d5d886cb949435cc07",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndFitTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_the_inferred_coefficient_matches_the_real_design_matrix",
      "name": "test_the_inferred_coefficient_matches_the_real_design_matrix",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L387-L393",
      "signature": "def test_the_inferred_coefficient_matches_the_real_design_matrix(self) -> None: # The whole point of infer_shrink_coeff: the composed name must exist # in the matrix PyDESeq2 built, not merely look plausible.",
      "exported": true,
      "origin": "ast",
      "body_hash": "002311fe1afcb5664e791edd5e41f72809d89c759402ee331c9d64b7f9f41aef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndFitTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_the_planted_eight_fold_change_is_recovered",
      "name": "test_the_planted_eight_fold_change_is_recovered",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L395-L399",
      "signature": "def test_the_planted_eight_fold_change_is_recovered(self) -> None: # log2(8) == 3. Shrinkage pulls the estimate in slightly, so allow # half a log2 unit -- but the sign and magnitude must be right.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec874c6f7a7261322fb6b36b316d4e2728752566dd570a3c3554d5a996eb6f1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndFitTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_the_planted_gene_is_the_only_significant_one",
      "name": "test_the_planted_gene_is_the_only_significant_one",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L401-L403",
      "signature": "def test_the_planted_gene_is_the_only_significant_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c2c14ab9ba0264e5531bdd1102e7effa154ba111b80451e5d70801060b265a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndFitTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FakeDataSet",
      "name": "FakeDataSet",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L250-L259",
      "signature": "class FakeDataSet",
      "exported": true,
      "origin": "ast",
      "body_hash": "e46b6acb6500ebc8059d2afd58299d0ac111f6f0099a99e2f41b57f44066a446",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FakeDataSet.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L253-L256",
      "signature": "def __init__(self, samples: int = 2, genes: int = 3) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "06d8b3fbaf808481bb8b7e4cd83a09d23e63fbe81cd5926ce4cbc49717f2a8a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeDataSet"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FakeDataSet.to_picklable_anndata",
      "name": "to_picklable_anndata",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L258-L259",
      "signature": "def to_picklable_anndata(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8b6442cabd73fb3204119a5e2330397850bd5a20d524aaca122f8e1824fc959",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeDataSet"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FakeStats",
      "name": "FakeStats",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L243-L247",
      "signature": "class FakeStats",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e2b18f1596490e546510fcdb3bfb478a8e756803fce0e1e7f379a9b20d7f48d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FakeStats.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L246-L247",
      "signature": "def __init__(self, results: pd.DataFrame) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "fa93ba2f3292f9ad27dcf9729b223b1a6e1124a22a514d48f76ad7ae62894e4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeStats"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "name": "FilterDataTests",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L158-L205",
      "signature": "class FilterDataTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "30c473e50d1100c13b04dcf3f1b2baa2be038594128e5c69a346e530401b5bf9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L159-L168",
      "signature": "def setUp(self) -> None: # Column totals: KEEP 30, EDGE 10, DROP 9.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4532b057146f18093cfe581b715627cee59ca02606d0d135410da2437295254a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_a_zero_threshold_keeps_every_gene",
      "name": "test_a_zero_threshold_keeps_every_gene",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L181-L183",
      "signature": "def test_a_zero_threshold_keeps_every_gene(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a931236bfcfa538667320e9016c3e166c5f92d0b7cc9318c62aec3a75e6b894",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_gene_filtering_does_not_disturb_the_sample_axis",
      "name": "test_gene_filtering_does_not_disturb_the_sample_axis",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L201-L205",
      "signature": "def test_gene_filtering_does_not_disturb_the_sample_axis(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1cb4387c5c04d71868ac2e059d6b4ee83451c604c82cf8ecdbdc37ced9477a97",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_genes_below_the_total_count_threshold_are_removed",
      "name": "test_genes_below_the_total_count_threshold_are_removed",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L170-L172",
      "signature": "def test_genes_below_the_total_count_threshold_are_removed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f0786a8d7d33aa49e0c4cca903ab8515537c6d322a33653308509330a046d057",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_no_samples_are_dropped_when_the_column_is_absent",
      "name": "test_no_samples_are_dropped_when_the_column_is_absent",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L194-L199",
      "signature": "def test_no_samples_are_dropped_when_the_column_is_absent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "85875249504c76b26af25f5737192808a6f9eafe43416ec3a111bc6619951ce5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_samples_with_no_condition_are_dropped_from_both_frames",
      "name": "test_samples_with_no_condition_are_dropped_from_both_frames",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L185-L192",
      "signature": "def test_samples_with_no_condition_are_dropped_from_both_frames(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbc09a22f0c9533656aadba1f4c3d320fa7b6cf72715da3fef7b0c8c55fff245",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_the_threshold_is_inclusive_at_the_boundary",
      "name": "test_the_threshold_is_inclusive_at_the_boundary",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L174-L179",
      "signature": "def test_the_threshold_is_inclusive_at_the_boundary(self) -> None: # EDGE totals exactly 10; `>=` keeps it and `>` would not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9790c77278d54b6f63d8d98dbecab52f0a30a25177d408c6ac495bbcd3fd901e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterDataTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "name": "LoadAndValidateTests",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L63-L155",
      "signature": "class LoadAndValidateTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "49338a9ef69446d339e6ec9f4a8d125e873bef2819ded54cd19ce7e864d5e487",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L66-L79",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc4ef2273c11337a186579533b9739d40a022350708644ae46c5f24e40c4f6de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_a_matching_pair_survives_untouched",
      "name": "test_a_matching_pair_survives_untouched",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L150-L155",
      "signature": "def test_a_matching_pair_survives_untouched(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d01a815f1c8117f6fb2fd18a5ce26503bcdd4f90499d656d4eba5aa623e2148c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_a_reordered_metadata_index_is_realigned_not_left_shuffled",
      "name": "test_a_reordered_metadata_index_is_realigned_not_left_shuffled",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L140-L148",
      "signature": "def test_a_reordered_metadata_index_is_realigned_not_left_shuffled(self) -> None: # Same samples, different order. If the two frames were handed to # DESeq2 as-is, every sample would carry another sample's condition.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6ca3d16bb5b262d90ca6ac4a297be923bad4f0151123fe9a301bba8bda17a6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_an_already_oriented_matrix_is_left_alone",
      "name": "test_an_already_oriented_matrix_is_left_alone",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L91-L97",
      "signature": "def test_an_already_oriented_matrix_is_left_alone(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "61a9ee0c1b297a2535bfe15be6f5dae4dfbb6d5bab82dd37d9906c6b8558bd11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_extra_count_samples_are_dropped_to_the_intersection",
      "name": "test_extra_count_samples_are_dropped_to_the_intersection",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L131-L138",
      "signature": "def test_extra_count_samples_are_dropped_to_the_intersection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "440e7a02bfc36a32d5e5dca3ae9594217973b2c400cd2d75e2120fc4776695df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_extra_metadata_samples_are_dropped_to_the_intersection",
      "name": "test_extra_metadata_samples_are_dropped_to_the_intersection",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L118-L129",
      "signature": "def test_extra_metadata_samples_are_dropped_to_the_intersection(self) -> None: # Unequal lengths: element-wise index comparison raises here, so this # is the case the intersection fallback exists for.",
      "exported": true,
      "origin": "ast",
      "body_hash": "59968d36e59525397f14cf0abd93cbc95ebe745c04c9a811ac598b4afb1da400",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_negative_counts_are_rejected",
      "name": "test_negative_counts_are_rejected",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L99-L107",
      "signature": "def test_negative_counts_are_rejected(self) -> None: # DESeq2's negative-binomial model has no meaning for negative counts; # they indicate the file holds normalised or logged values.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f42de1e5753c3fcfb3e51f792571012511448f4c680fbbf74a7f9c9c46cd04b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_the_counts_matrix_is_transposed_by_default",
      "name": "test_the_counts_matrix_is_transposed_by_default",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L81-L89",
      "signature": "def test_the_counts_matrix_is_transposed_by_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e7e5ca0bb44e0de074839a1f44a8785d5067dd6391d6910367f0b95cc1b5b85",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_zero_counts_are_accepted",
      "name": "test_zero_counts_are_accepted",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L109-L116",
      "signature": "def test_zero_counts_are_accepted(self) -> None: # Zero is a legitimate observation -- only negatives are invalid.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c36111dd654cd9cd268009c10998328bf379f8cef7e4b49de21068729a010b4f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoadAndValidateTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#PlotTests",
      "name": "PlotTests",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L332-L359",
      "signature": "class PlotTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "075e143f468f7f77099acc65c5918ae27b390a060c953facf70a102ca7a1e485",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#PlotTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L333-L336",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d373b855c3d94a650ee3bd81404827e109cffd38f41a9b23405e07bac7d6903",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#PlotTests.test_both_plots_are_written_as_non_empty_files",
      "name": "test_both_plots_are_written_as_non_empty_files",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L338-L344",
      "signature": "def test_both_plots_are_written_as_non_empty_files(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "83a2108c873ff6353fa7daa03821b53134364ecb5c2dd932dfad0e630b23aa4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#PlotTests.test_genes_filtered_out_by_deseq2_do_not_break_the_plots",
      "name": "test_genes_filtered_out_by_deseq2_do_not_break_the_plots",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L353-L359",
      "signature": "def test_genes_filtered_out_by_deseq2_do_not_break_the_plots(self) -> None: # padj is NaN for independent-filtered genes; -log10(NaN) would be NaN # and matplotlib would silently drop the point, so the script fills 1.",
      "exported": true,
      "origin": "ast",
      "body_hash": "15a90421991d1da337f9a41c99a8899d2ddd7f4d73bc9f8d0ee5ade4d6fb2d1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#PlotTests.test_plotting_does_not_mutate_the_results_table",
      "name": "test_plotting_does_not_mutate_the_results_table",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L346-L351",
      "signature": "def test_plotting_does_not_mutate_the_results_table(self) -> None: # The volcano plot adds a -log10 column; leaking it into results_df # would put a derived column into every file written afterwards.",
      "exported": true,
      "origin": "ast",
      "body_hash": "464c8e05508bde0f211acdc7f3afa0bb9a6efd96a4b08fda8e6e008b20016882",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#results_frame",
      "name": "results_frame",
      "kind": "function",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L262-L273",
      "signature": "def results_frame() -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b4dcc0f6d14fb56a5aca39097d1840e5be954af0e4ffca3eeabc6b7f44388e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "name": "SaveResultsTests",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L276-L329",
      "signature": "class SaveResultsTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c28d9195223ccbc11a0ef9edc07c57a6c7e0a5e5d56d1913299ebb6f7988952f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L277-L281",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "99492021680b19cfb24c179aeedd81094537f81fdc174db37b61fc03fcbdeed5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_a_missing_output_directory_is_created",
      "name": "test_a_missing_output_directory_is_created",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L317-L320",
      "signature": "def test_a_missing_output_directory_is_created(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5465f736e95a961e4c23189b319344f5e69dea44e7ffc6a780704eb4dfb5a044",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_every_gene_is_kept_in_the_full_table",
      "name": "test_every_gene_is_kept_in_the_full_table",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L295-L297",
      "signature": "def test_every_gene_is_kept_in_the_full_table(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fd9572a61c4c6c2cd5db15da89b3e17f720e69592a137a746f63b44f2779f56",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_no_significant_genes_still_writes_every_file",
      "name": "test_no_significant_genes_still_writes_every_file",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L322-L329",
      "signature": "def test_no_significant_genes_still_writes_every_file(self) -> None: # An empty result set is a valid outcome, not an error.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b9c454d47ca5501623fbaaba07df35b7ef7ec2dcd54906ce75a0f393439f399",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_only_genes_strictly_below_the_fdr_cutoff_are_significant",
      "name": "test_only_genes_strictly_below_the_fdr_cutoff_are_significant",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L299-L302",
      "signature": "def test_only_genes_strictly_below_the_fdr_cutoff_are_significant(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "84b8c5b09182f81f48d71f672d94413229b2d1147df395f00ab0b6ebb7fa007b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_the_dataset_is_exported_as_readable_h5ad_not_a_pickle",
      "name": "test_the_dataset_is_exported_as_readable_h5ad_not_a_pickle",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L312-L315",
      "signature": "def test_the_dataset_is_exported_as_readable_h5ad_not_a_pickle(self) -> None: # Pickles execute arbitrary code on load; h5ad does not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "eacf69c0dbc27f0a6776e453e97d699a7c1e20ff507db6c98c642bf23210f6a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_the_four_documented_artefacts_are_written",
      "name": "test_the_four_documented_artefacts_are_written",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L283-L293",
      "signature": "def test_the_four_documented_artefacts_are_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3431e4b5dc088c2b7c0e85842e6a7fd539f4577bf1494c261705e70a947c6215",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_the_sorted_table_puts_the_strongest_evidence_first",
      "name": "test_the_sorted_table_puts_the_strongest_evidence_first",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L304-L310",
      "signature": "def test_the_sorted_table_puts_the_strongest_evidence_first(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "586fa8af95707647fab1bbadef8b3ac77b4d09c22853889005b7774264e96ae7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SaveResultsTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests",
      "name": "ShrinkageCoefficientTests",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L208-L240",
      "signature": "class ShrinkageCoefficientTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "63424a0845629ef1dc3d00cd6d9f1d1f044dfb420d9dc8452c744d51fa401015",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.FakeDataSet",
      "name": "FakeDataSet",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L211-L213",
      "signature": "class FakeDataSet",
      "exported": true,
      "origin": "ast",
      "body_hash": "2216f48aef40b0018ab03595c0baa724f95abba53643e3a934befd72db974af9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.FakeDataSet.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L212-L213",
      "signature": "def __init__(self, columns: list[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "aecfb4f74c1a87cbe8cf78db25e45a8eca35d7c15c64faa8bf0f12d79be0ba9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeDataSet"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.test_a_multi_factor_design_resolves_the_requested_variable_only",
      "name": "test_a_multi_factor_design_resolves_the_requested_variable_only",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L233-L240",
      "signature": "def test_a_multi_factor_design_resolves_the_requested_variable_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "882edb10310fae86c6333c376ceb9f4ab88f136aee8aab8dc574f9b65cdd31ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShrinkageCoefficientTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.test_an_absent_coefficient_raises_and_names_the_alternatives",
      "name": "test_an_absent_coefficient_raises_and_names_the_alternatives",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L222-L231",
      "signature": "def test_an_absent_coefficient_raises_and_names_the_alternatives(self) -> None: # Reference level as the test level is the classic mistake; the error # has to show what the design actually offers.",
      "exported": true,
      "origin": "ast",
      "body_hash": "66b683d77fbf78f474fe844de6094b25f668636f4a1f7002a9b69a6d436a6fb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShrinkageCoefficientTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.test_the_coefficient_name_follows_the_design_matrix",
      "name": "test_the_coefficient_name_follows_the_design_matrix",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L215-L220",
      "signature": "def test_the_coefficient_name_follows_the_design_matrix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a12d4676eb5e4b9ef6e00b69f632a565f2f097fbe43f813675ea5f6d9e74d45f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShrinkageCoefficientTests"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "name": "TemporaryDirectoryTestCase",
      "kind": "class",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L51-L60",
      "signature": "class TemporaryDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "95ab07cc42f27cfc56fe982592e748003d9459650c361b5593868b83b2fdff34",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L52-L55",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "name": "write_csv",
      "kind": "method",
      "path": "tests/pydeseq2/test_scripts.py",
      "span": "L57-L60",
      "signature": "def write_csv(self, name: str, frame: pd.DataFrame) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "491141c6a70b9c5fce6ceff8ff49d62da6a6c01ed061f1ae5b73a1e91c4deb48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/pydicom/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L1-L486",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7752ad36835d6c6d7ca7c371929c5915f1f5c42dfe5a1ab447e4cccbcc6c8b45",
      "chars": 18045,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests",
      "name": "AuditAndCapabilityTests",
      "kind": "class",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L439-L481",
      "signature": "class AuditAndCapabilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba0dee88e93fe3b4f7c9a0b925abc0434ea7d6f46ee20fb6d1d66b54832c6ec7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_deidentification_audit_never_claims_compliance",
      "name": "test_deidentification_audit_never_claims_compliance",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L440-L461",
      "signature": "def test_deidentification_audit_never_claims_compliance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd208a61eed6f1660c2cf6fbe2589dd40c1db87e0a8a62cf054d4a4e9592a39a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditAndCapabilityTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_transfer_syntax_capability_inspector",
      "name": "test_transfer_syntax_capability_inspector",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L463-L481",
      "signature": "def test_transfer_syntax_capability_inspector(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fac127e6ea0ae292efc220fc46e4a63e8f192423ad76aa055d04aa436d127663",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditAndCapabilityTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#DependencyFreeHelpTests",
      "name": "DependencyFreeHelpTests",
      "kind": "class",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L136-L142",
      "signature": "class DependencyFreeHelpTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "101475fb8933d0be2fb09741da223f9536e5854ab7866e85b5270ffea164e66c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed_without_importing_optional_packages",
      "name": "test_all_cli_helps_succeed_without_importing_optional_packages",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L137-L142",
      "signature": "def test_all_cli_helps_succeed_without_importing_optional_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "939ee97bb7157e0b2186a6c6ef5fc88a0a2f5e663743c93f2a9bd887c8d1fc83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeHelpTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#PixelRenderingTests",
      "name": "PixelRenderingTests",
      "kind": "class",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L197-L237",
      "signature": "class PixelRenderingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf5b8ff80ead425758b34b5622ba546d05e041243b94554c9a0c061a2dec6811",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_frame_specific_non_diagnostic_render",
      "name": "test_frame_specific_non_diagnostic_render",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L198-L223",
      "signature": "def test_frame_specific_non_diagnostic_render(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad18682609ffaed86745bd62b57adcb4e7dd400d7a37af53a2067844da8d78a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PixelRenderingTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_render_requires_phi_acknowledgement",
      "name": "test_render_requires_phi_acknowledgement",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L225-L237",
      "signature": "def test_render_requires_phi_acknowledgement(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba2f87ffb5d18282d60c7c2f26c69cc9c392f0a9a30499350663abff0d5037b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PixelRenderingTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#PseudonymizationTests",
      "name": "PseudonymizationTests",
      "kind": "class",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L240-L436",
      "signature": "class PseudonymizationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f815d9c188fe22357f560d2053844a8819ee91f451b3da5c8c3befb5e018fcd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time",
      "name": "test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L398-L436",
      "signature": "def test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time( self, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b5ba93945d080e59bb91f6177d9672be268bcfd7ae44b1deddd8dfd0ab403ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudonymizationTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_in_place_output_is_rejected",
      "name": "test_in_place_output_is_rejected",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L346-L372",
      "signature": "def test_in_place_output_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04ed2a74b4498a03e044688b997fe7b55797c7488ee87d6cfe8e46378035a0d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudonymizationTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_permissive_uid_key_is_rejected",
      "name": "test_permissive_uid_key_is_rejected",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L375-L396",
      "signature": "def test_permissive_uid_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f444834afdff3cdfaa7d2132ea44519a0ad61bc6ee8d83d27eefe1e547f2064",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudonymizationTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_scoped_uid_consistency_and_sensitive_map_validation",
      "name": "test_scoped_uid_consistency_and_sensitive_map_validation",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L241-L344",
      "signature": "def test_scoped_uid_consistency_and_sensitive_map_validation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "66ab0fc6621d03911a714dad6bd5ca1b1414d0a0d611782cbd88853d76ea0028",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudonymizationTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#require_test_stack",
      "name": "require_test_stack",
      "kind": "function",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L43-L51",
      "signature": "def require_test_stack() -> tuple[object, object]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c7f4f520d520e19443c6d199cb6970d8e4e761c59d5e564fa9150bf25a06a3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L27-L40",
      "signature": "def run_script( name: str, *arguments: str, cwd: Path | None = None ) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0969785331f7aeb47d99e5ef7d3f11c42a0644c86828b81f6545f34d19f5f674",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#SyntheticInventoryTests",
      "name": "SyntheticInventoryTests",
      "kind": "class",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L145-L194",
      "signature": "class SyntheticInventoryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c932faf5973947a229c23feb33f63426eb65d75740079a309ace63c2d5ce6044",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_metadata_only_limits_fail_closed",
      "name": "test_metadata_only_limits_fail_closed",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L181-L194",
      "signature": "def test_metadata_only_limits_fail_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5acc3faed84db6803e57b26d343e75751488f233a26a27435812254d5e03108",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticInventoryTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_redacted_extract_inventory_and_frame_plan",
      "name": "test_redacted_extract_inventory_and_frame_plan",
      "kind": "method",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L146-L179",
      "signature": "def test_redacted_extract_inventory_and_frame_plan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "575a0021c9488e2e21c1c1d02548736c33f37103fe42809e29bdb2b1807b88bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SyntheticInventoryTests"
    },
    {
      "id": "tests/pydicom/test_scripts.py#write_fixture",
      "name": "write_fixture",
      "kind": "function",
      "path": "tests/pydicom/test_scripts.py",
      "span": "L54-L133",
      "signature": "def write_fixture( path: Path, *, study_uid: str | None = None, referenced_uid: str | None = None, frames: int = 2, ) -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f1ae928fcd54516b6429f5c137771be78312ad3777822e2bade974fc5371ead",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/pydicom/test_static.py",
      "span": "L1-L138",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "e9ccfc84be22f6173136648f7af7ffe5f9bd329823b03571323d18e841c2f91d",
      "chars": 5665,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_static.py#ScriptSafetyTests",
      "name": "ScriptSafetyTests",
      "kind": "class",
      "path": "tests/pydicom/test_static.py",
      "span": "L86-L133",
      "signature": "class ScriptSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80bd2c397ee82f429360afa50de4f5f33679564e02be6dd3ef67a970c090ddc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_static.py#ScriptSafetyTests.test_no_generated_or_research_artifacts",
      "name": "test_no_generated_or_research_artifacts",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L116-L124",
      "signature": "def test_no_generated_or_research_artifacts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "028d4e1dc113cdf2c2779b6b503e2dae86480d81ebff2f601e105c83ce29bc0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pydicom/test_static.py#ScriptSafetyTests.test_scripts_do_not_import_pydicom_at_module_top_level",
      "name": "test_scripts_do_not_import_pydicom_at_module_top_level",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L126-L133",
      "signature": "def test_scripts_do_not_import_pydicom_at_module_top_level(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "faf706468c7ca1e90646c61a334f5aa099fbc111bf8f37e20e8837ce5b3ae9cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pydicom/test_static.py#ScriptSafetyTests.test_scripts_parse_and_avoid_network_or_dynamic_execution",
      "name": "test_scripts_parse_and_avoid_network_or_dynamic_execution",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L87-L114",
      "signature": "def test_scripts_parse_and_avoid_network_or_dynamic_execution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "417ac4d39d248a6528188bd291b2a27ee1ec8b7204367db3cb75946d0d605640",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "name": "SkillDocumentationTests",
      "kind": "class",
      "path": "tests/pydicom/test_static.py",
      "span": "L25-L83",
      "signature": "class SkillDocumentationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7585d0b50fec20aaaae2da4bb3e5577d1e33bd3840c105768fadd571ae09b556",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pydicom/test_static.py#SkillDocumentationTests.test_both_references_are_dated_and_officially_sourced",
      "name": "test_both_references_are_dated_and_officially_sourced",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L51-L62",
      "signature": "def test_both_references_are_dated_and_officially_sourced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ee47f9974fd306f8f65f8cb2639d5a83f3d18ea0ed858dbc9ee99dce999f7ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentationTests"
    },
    {
      "id": "tests/pydicom/test_static.py#SkillDocumentationTests.test_documented_cli_inventory_exists",
      "name": "test_documented_cli_inventory_exists",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L77-L83",
      "signature": "def test_documented_cli_inventory_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71bd990712e46e82d967503a53f07c3d6f657a48d12194d6b97685ee6ff21632",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentationTests"
    },
    {
      "id": "tests/pydicom/test_static.py#SkillDocumentationTests.test_frontmatter_version_license_compatibility_and_size",
      "name": "test_frontmatter_version_license_compatibility_and_size",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L26-L35",
      "signature": "def test_frontmatter_version_license_compatibility_and_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d11e31e54ad1f77a06a1e3986cd8c6a4f7bed9ef20b3f3f4e5b25d758a51f22",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentationTests"
    },
    {
      "id": "tests/pydicom/test_static.py#SkillDocumentationTests.test_relative_markdown_links_exist",
      "name": "test_relative_markdown_links_exist",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L64-L75",
      "signature": "def test_relative_markdown_links_exist(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "def6bbec53af76a495cd22cba82f1d937ef884285c52cb97a2254e181064bb27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentationTests"
    },
    {
      "id": "tests/pydicom/test_static.py#SkillDocumentationTests.test_stable_pinned_and_medical_safety_guidance",
      "name": "test_stable_pinned_and_medical_safety_guidance",
      "kind": "method",
      "path": "tests/pydicom/test_static.py",
      "span": "L37-L49",
      "signature": "def test_stable_pinned_and_medical_safety_guidance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40f546f46e052556e90958c565e7cbb0dbb58e2f05804c5714c37944ca119f80",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillDocumentationTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py",
      "name": "test_clis.py",
      "kind": "file",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L1-L164",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5cac2c06a0b9606350dd6335495575c8788bc010351f7fd4ca4e4a058c8fa0d5",
      "chars": 5581,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests",
      "name": "CliTests",
      "kind": "class",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L29-L159",
      "signature": "class CliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "010100476c2aaa0121639e7a68ea3745b73d4693f655ba7c975c090a408c2e75",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "name": "run_main",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L38-L43",
      "signature": "def run_main(function, arguments: list[str]) -> tuple[int, str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd31e56d42d90493bc303e18041b23588b281a4127a9c1f622137b3355dba716",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L30-L32",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c69f8facb2e3d8fa5b943563da5dd0a64d3ea6cd1f018909eb0614e47955e21d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.tearDown",
      "name": "tearDown",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L34-L35",
      "signature": "def tearDown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "214669156dd63f446ee4c49d12c5489d861a0a847a3c38e90ab913951df96d59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_all_help_paths_are_dependency_free",
      "name": "test_all_help_paths_are_dependency_free",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L45-L59",
      "signature": "def test_all_help_paths_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06e3448c2019ae9eddc49c1ff877a5dda4b313394d1bc4749187c7982f2cdcd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_backend_inspector_never_connects",
      "name": "test_backend_inspector_never_connects",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L154-L159",
      "signature": "def test_backend_inspector_never_connects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31641a2e7264f7938daf5ae57860616a8be00930eedba0792d69db5c6faede69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_collision_fixture_is_rejected",
      "name": "test_collision_fixture_is_rejected",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L76-L88",
      "signature": "def test_collision_fixture_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6eeead8bfbcaaed820ef6faffb95c6a6f61edaf2e5fa0198c14c47c04e6ef96c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_duplicate_json_key_is_rejected",
      "name": "test_duplicate_json_key_is_rejected",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L134-L144",
      "signature": "def test_duplicate_json_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b4065ba3fce5fb2314b8674c5be0f8c3d0b4ba560f52c16365675e398f6a34eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_generated_plan_cannot_enable_live_hardware",
      "name": "test_generated_plan_cannot_enable_live_hardware",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L116-L132",
      "signature": "def test_generated_plan_cannot_enable_live_hardware(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d938d7dd5ef013f5ba72e55c409ac06d111fcd2687a5456e33e6b3697c852da0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_manifest_and_geometry_pass",
      "name": "test_manifest_and_geometry_pass",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L61-L74",
      "signature": "def test_manifest_and_geometry_pass(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd3ce8416b15ef46ccb852c278d559c4a005390cd72544eab8640d1138580a9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_parent_directory_traversal_is_rejected",
      "name": "test_parent_directory_traversal_is_rejected",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L146-L152",
      "signature": "def test_parent_directory_traversal_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7aa4cb462dfbcacedbb44cd4dc23b1e8daef905e0cf1782a9053636eda89b924",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pylabrobot/test_clis.py#CliTests.test_transfer_ledger_and_tip_plan",
      "name": "test_transfer_ledger_and_tip_plan",
      "kind": "method",
      "path": "tests/pylabrobot/test_clis.py",
      "span": "L90-L114",
      "signature": "def test_transfer_ledger_and_tip_plan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a313a9a62fcaf08d30564a260a45d3aec73c7e500fd8a4c64baa3c8f2519aea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L1-L415",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "db3d4c08ae3f679635a64a6d28380459cff200ab24db44e1c97c8ff2fc2e066d",
      "chars": 14577,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#CliResult",
      "name": "CliResult",
      "kind": "class",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L52-L56",
      "signature": "class CliResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfe9293d90941588ff0528871097444f50610927e99f1fa58ccfd30609f46e84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#CliResult.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L53-L56",
      "signature": "def __init__(self, returncode: int, stdout: str, stderr: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "5c537fce1a4a9f62e89e45f1acead0e1295cbfa3c9a2c259f70b3155734825af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CliResult"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#DependencyFreeTests",
      "name": "DependencyFreeTests",
      "kind": "class",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L99-L166",
      "signature": "class DependencyFreeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2cdc86483168c36b1a07bbcb7dcb0ac5ed109edfe0aeb24e90f55397c40b5e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_all_helps_work_without_importing_optional_packages",
      "name": "test_all_helps_work_without_importing_optional_packages",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L100-L105",
      "signature": "def test_all_helps_work_without_importing_optional_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca5d7ac9cac7867fc16d2a866e58a262d48dfeb081c5afbc2235af7f8fda9378",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_execute_without_named_key_fails_before_output_or_network",
      "name": "test_execute_without_named_key_fails_before_output_or_network",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L146-L166",
      "signature": "def test_execute_without_named_key_fails_before_output_or_network(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9b67aa9a0b8240d882988976eefdc56076d732e1a31900e3a2f56ca91a3e3a4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_io_plan_is_nonexecuting_and_discloses_loss",
      "name": "test_io_plan_is_nonexecuting_and_discloses_loss",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L107-L124",
      "signature": "def test_io_plan_is_nonexecuting_and_discloses_loss(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2eaf2c782d1d57e849105a5348197052106c467e2f35850e8fef01a0fb1217d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_mp_query_defaults_to_plan_and_never_reads_key",
      "name": "test_mp_query_defaults_to_plan_and_never_reads_key",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L126-L144",
      "signature": "def test_mp_query_defaults_to_plan_and_never_reads_key(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a646081a633be87b04f7f32fb2cfc925c503410862c6ce98adb59a99cd60a602",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DependencyFreeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#payload",
      "name": "payload",
      "kind": "function",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L90-L96",
      "signature": "def payload(result: CliResult) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "c63be5be3ff9b253cb7728efb6960033631e4fb3e50c126110a809055d6a4695",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "name": "PinnedRuntimeTests",
      "kind": "class",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L169-L410",
      "signature": "class PinnedRuntimeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdd62cfee184aa1798bbc3f9609fc260fd31e2d37007a0a2d04211f248b6ea09",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L171-L177",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35366cf2a0b6b16f14c3c1f1adeca4b08cf1583ce709a48478b68b5c7f0fcb6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedRuntimeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_composition_conversion_phase_diagram_and_manifest",
      "name": "test_composition_conversion_phase_diagram_and_manifest",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L233-L328",
      "signature": "def test_composition_conversion_phase_diagram_and_manifest(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0189a05ebccd44f7728d106e4bfbfcf63e9adb85707ae97bee51523afccc6ab3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedRuntimeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db",
      "name": "test_mocked_mp_execute_is_bounded_redacted_and_records_db",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L345-L410",
      "signature": "def test_mocked_mp_execute_is_bounded_redacted_and_records_db(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2f8e674d44b32decd3d5bbe80c7941b1fa6e66644fe2f46831f0c7905b43e4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedRuntimeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials",
      "name": "FakeMaterials",
      "kind": "class",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L354-L356",
      "signature": "class FakeMaterials",
      "exported": true,
      "origin": "ast",
      "body_hash": "9473c9e4f8dbb5b7b325299367c424c45352db208692cadee63ccaecebeb0db8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L355-L356",
      "signature": "def __init__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "cf0f4596e503480947a24be403ee547c9b86c239764f5dbffe2f34a900a52d57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeMaterials"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester",
      "name": "FakeMPRester",
      "kind": "class",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L358-L371",
      "signature": "class FakeMPRester",
      "exported": true,
      "origin": "ast",
      "body_hash": "17510f0c3f4629a51cffe51a799168c7dec112fd2b48c9610d98425c3377c847",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__enter__",
      "name": "__enter__",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L367-L368",
      "signature": "def __enter__(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "a01a13cfe8964ec9799a8806c25d838e8d89f32c3124818c76e05fa0c3589ed1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeMPRester"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__exit__",
      "name": "__exit__",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L370-L371",
      "signature": "def __exit__(self, exc_type, exc, traceback)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9a28cf2cb1eff8c652df4b91ba4c215291929857f48bcdf35cf3e8588c86ee48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeMPRester"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L361-L365",
      "signature": "def __init__(self, **kwargs)",
      "exported": false,
      "origin": "ast",
      "body_hash": "32b857ae1e1ad99acf04ed0496395c0709c14713e7c98bf979145220fdda9889",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeMPRester"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeSummary",
      "name": "FakeSummary",
      "kind": "class",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L346-L352",
      "signature": "class FakeSummary",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ab4ec0e15960939a994c6683ebc4a893815854bd7018ca18d371ff90b38278c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeSummary.search",
      "name": "search",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L350-L352",
      "signature": "def search(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "77c991a3f63325564b01a87cca22774d46c7c21d5d1522801217252e9fa3a817",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeSummary"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_strict_phase_json_rejects_duplicates",
      "name": "test_strict_phase_json_rejects_duplicates",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L330-L343",
      "signature": "def test_strict_phase_json_rejects_duplicates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "57b945d0a1c1cf403fd3f2d4959941821d9b5d58857e16fe63ac9f5bd1cab963",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedRuntimeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_structure_tools_on_synthetic_crystal",
      "name": "test_structure_tools_on_synthetic_crystal",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L191-L231",
      "signature": "def test_structure_tools_on_synthetic_crystal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a1f32c95247fcbaae0992b4187f349190d3451061fef56106c93a317876515dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedRuntimeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.write_structure",
      "name": "write_structure",
      "kind": "method",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L179-L189",
      "signature": "def write_structure(self, root: Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "02ee7d50ee5157ea09f1a3f4d78717891059eb28777e1fd43ee37f592a3207ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PinnedRuntimeTests"
    },
    {
      "id": "tests/pymatgen/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/pymatgen/test_scripts.py",
      "span": "L59-L87",
      "signature": "def run_script( name: str, *arguments: str, cwd: Path | None = None, timeout: int = 60, ) -> CliResult",
      "exported": true,
      "origin": "ast",
      "body_hash": "4adae0a2384875477460bd9bba318e03a3e685b6685a13f215fd7ebcf84d7954",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/pymatgen/test_static.py",
      "span": "L1-L186",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0beb1eedb0343a38391e873d39c693b719e0cd434d661d084b66b348ac30fbc2",
      "chars": 7140,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "name": "ScriptSafetyTests",
      "kind": "class",
      "path": "tests/pymatgen/test_static.py",
      "span": "L59-L167",
      "signature": "class ScriptSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "956636f1216cbdaba0a28c2fb7e84185282645beef6ba3fe2f19e2a79ad3e23d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_documented_cli_inventory_exists",
      "name": "test_documented_cli_inventory_exists",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L151-L167",
      "signature": "def test_documented_cli_inventory_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "26545dd2bf10c30809205c65f097734850b4a5914ee502bcd9a091f687293217",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_environment_access_is_one_named_secret_only",
      "name": "test_environment_access_is_one_named_secret_only",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L125-L140",
      "signature": "def test_environment_access_is_one_named_secret_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5a4f2a045ca80fcdad6f31955174a85c193e1cdc9c9886db8e892f928407a6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_no_bytecode_or_generated_artifacts",
      "name": "test_no_bytecode_or_generated_artifacts",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L142-L149",
      "signature": "def test_no_bytecode_or_generated_artifacts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "baf46447a63185c5a55803c7200679c13fb8a6b8dd72241cdc54a5494a3bfd1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_scripts_omit_unsafe_execution_and_serialization_primitives",
      "name": "test_scripts_omit_unsafe_execution_and_serialization_primitives",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L95-L123",
      "signature": "def test_scripts_omit_unsafe_execution_and_serialization_primitives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b8a65dced2908128422eb42db17a6e4539bafad2809d9217315f1a6e34cf188",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_scripts_parse_and_keep_optional_imports_lazy",
      "name": "test_scripts_parse_and_keep_optional_imports_lazy",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L60-L93",
      "signature": "def test_scripts_parse_and_keep_optional_imports_lazy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c84ffdd4c9eb709d2e659dfce71d6d87c69f6a3f9ffecfaa18b858cc26947bb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#SkillStructureTests",
      "name": "SkillStructureTests",
      "kind": "class",
      "path": "tests/pymatgen/test_static.py",
      "span": "L16-L56",
      "signature": "class SkillStructureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "03c5338623e352b6b4fd15678b9247b110f034e3c038606ba28c289e59170f23",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_static.py#SkillStructureTests.test_exactly_five_dated_references",
      "name": "test_exactly_five_dated_references",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L29-L43",
      "signature": "def test_exactly_five_dated_references(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "03f2a6ece0905890b5a68122ee355ae1c050ba062e39c24a63ab1623458df7d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#SkillStructureTests.test_frontmatter_version_license_compatibility_and_size",
      "name": "test_frontmatter_version_license_compatibility_and_size",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L17-L27",
      "signature": "def test_frontmatter_version_license_compatibility_and_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "19cffce53ecdb78cadbfb2449c665990a7e2d7b58f807bff285f16bfd22473ba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#SkillStructureTests.test_relative_markdown_links_resolve",
      "name": "test_relative_markdown_links_resolve",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L45-L56",
      "signature": "def test_relative_markdown_links_resolve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "82804ba2a99e8254de53372e75094da843f9861d500b1cfd93fc9fcb5248f80d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SkillStructureTests"
    },
    {
      "id": "tests/pymatgen/test_static.py#StalenessTests",
      "name": "StalenessTests",
      "kind": "class",
      "path": "tests/pymatgen/test_static.py",
      "span": "L170-L181",
      "signature": "class StalenessTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6e9c781c7461e0de64c00ff366c5a76084eb86dc07fb5488bdb94f2db5410ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymatgen/test_static.py#StalenessTests.test_no_stale_install_or_api_patterns",
      "name": "test_no_stale_install_or_api_patterns",
      "kind": "method",
      "path": "tests/pymatgen/test_static.py",
      "span": "L171-L181",
      "signature": "def test_no_stale_install_or_api_patterns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6b6667094b40c4597d84045f142d89ea91128fda6f8886349fd149c7a79f1ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StalenessTests"
    },
    {
      "id": "tests/pymc/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pymc/test_scripts.py",
      "span": "L1-L451",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8a54c9507cab968c23a8ca006a38cd9b8e6161ed4b1bf0171d8f94cf964f5f1b",
      "chars": 20451,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#ComparisonPlotTests",
      "name": "ComparisonPlotTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L422-L439",
      "signature": "class ComparisonPlotTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a179978b1ea5a5d955e618bb6d5444ce67404b04fbcb33850c7c7331dc0bd616",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#ComparisonPlotTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L423-L424",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20e475bad65dd9381b5940547913b670cbced56f3dac46af3b08cedb204f6e92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComparisonPlotTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ComparisonPlotTests.test_the_comparison_plot_is_saved_and_is_not_blank",
      "name": "test_the_comparison_plot_is_saved_and_is_not_blank",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L426-L439",
      "signature": "def test_the_comparison_plot_is_saved_and_is_not_blank(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d789e15ee4e0250e42b1ac4fb6e1b58672f45978da777bf8cbab367ecf861ffb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComparisonPlotTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#CrossValidationGuidanceTests",
      "name": "CrossValidationGuidanceTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L442-L446",
      "signature": "class CrossValidationGuidanceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d98a92409d3fca3b17e290a39465a647262e84d4b681ae05afa0a6f6774bcfc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#CrossValidationGuidanceTests.test_the_guidance_names_the_fold_count_it_was_asked_about",
      "name": "test_the_guidance_names_the_fold_count_it_was_asked_about",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L443-L446",
      "signature": "def test_the_guidance_names_the_fold_count_it_was_asked_about(self) -> None: # Documentation-only helper: it must not touch the posteriors it is # handed, so passing an empty dict has to be safe.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d5db09eda80e16ffe3b82a997c8c2e567c647ad5eeda84dca1e09ffa11bacc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CrossValidationGuidanceTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "name": "DiagnosticBranchTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L171-L226",
      "signature": "class DiagnosticBranchTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ddddbb466cca17d826ae781bdec8163ef56e592d2302e4c5ff0ba0d73fb8e4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_healthy_posterior_raises_no_issues",
      "name": "test_a_healthy_posterior_raises_no_issues",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L172-L178",
      "signature": "def test_a_healthy_posterior_raises_no_issues(self) -> None: # The direction a suite of broken inputs would never prove: a clean fit # must come back clean.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac6cbe51327e6bb9e6572c58c1d8c835ccd15081cbc544c9f21fe516e0589b9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_posterior_without_energy_statistics_is_still_checked",
      "name": "test_a_posterior_without_energy_statistics_is_still_checked",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L214-L219",
      "signature": "def test_a_posterior_without_energy_statistics_is_still_checked(self) -> None: # Non-NUTS samplers record no energy; the checker must not require it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3efb8a65956c21fb89628b3e7b35ae2614563fa2b722c27097a568fbbd456d9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_stricter_ess_threshold_flags_a_posterior_that_otherwise_passes",
      "name": "test_a_stricter_ess_threshold_flags_a_posterior_that_otherwise_passes",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L190-L199",
      "signature": "def test_a_stricter_ess_threshold_flags_a_posterior_that_otherwise_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b221df63a7872cadd9ef9194a393e2f83731e5ada3983525e1aaba0dc329adda",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_disagreeing_chains_are_flagged_as_a_convergence_failure",
      "name": "test_disagreeing_chains_are_flagged_as_a_convergence_failure",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L180-L188",
      "signature": "def test_disagreeing_chains_are_flagged_as_a_convergence_failure(self) -> None: # Offsetting one chain by three standard deviations is exactly the # situation R-hat is designed to detect.",
      "exported": true,
      "origin": "ast",
      "body_hash": "545c5ff3de9aebc40dbe186899f82da43320cf2bcdb0ad7e2d214be4303a1deb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_every_divergent_transition_is_counted",
      "name": "test_every_divergent_transition_is_counted",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L201-L205",
      "signature": "def test_every_divergent_transition_is_counted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "11e86eb755a5be15998f3cdf10b5aeb28a31e9218361779c749aadb62576e590",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_hitting_the_maximum_tree_depth_is_reported",
      "name": "test_hitting_the_maximum_tree_depth_is_reported",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L207-L212",
      "signature": "def test_hitting_the_maximum_tree_depth_is_reported(self) -> None: # PyMC's default max_treedepth is 10. This costs sampling efficiency # rather than validity, so it is listed as an issue without setting the # has_issues flag that divergences and bad R-hat do.",
      "exported": true,
      "origin": "ast",
      "body_hash": "629eb70d6418a1d675c3a8249bcba611032fa0567bb5c80ab3cc21ce346c5132",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_var_names_restricts_the_summary",
      "name": "test_var_names_restricts_the_summary",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L221-L226",
      "signature": "def test_var_names_restricts_the_summary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "32c67796cb6ea30ce4a409cc371a53a63fa8f016f42a058c3b4217ce71f0a5f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticBranchTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "name": "DiagnosticReportTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L229-L289",
      "signature": "class DiagnosticReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "32fa773364fa3094ebd5f4f52ffa3aa6441052e0470e9f306e5dcda683cf4b48",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticReportTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L230-L231",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20e475bad65dd9381b5940547913b670cbced56f3dac46af3b08cedb204f6e92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticReportTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_output_directory_is_created_if_it_is_missing",
      "name": "test_the_output_directory_is_created_if_it_is_missing",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L269-L276",
      "signature": "def test_the_output_directory_is_created_if_it_is_missing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "98c669761ce4803b21c9865d9c7d301d101693b6cca0e035ad566623a015c2fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticReportTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_prior_and_posterior_are_overlaid_in_one_figure",
      "name": "test_the_prior_and_posterior_are_overlaid_in_one_figure",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L278-L289",
      "signature": "def test_the_prior_and_posterior_are_overlaid_in_one_figure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64710324c83bbbd3a6bcddfd085b724fb6a43976d51547d6dae41bf79871cae5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticReportTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_report_leaves_no_open_figures",
      "name": "test_the_report_leaves_no_open_figures",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L261-L267",
      "signature": "def test_the_report_leaves_no_open_figures(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52b6aa600e3b8fda026b7ea3f156102b69051e2084b1069d892f9672f3600524",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticReportTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_report_writes_every_documented_artefact",
      "name": "test_the_report_writes_every_documented_artefact",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L233-L259",
      "signature": "def test_the_report_writes_every_documented_artefact(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c689e95f52615fdf28d58eb7078aa22c083c76ebf00911f396d571e1a527049f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiagnosticReportTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#fitted_models",
      "name": "fitted_models",
      "kind": "function",
      "path": "tests/pymc/test_scripts.py",
      "span": "L105-L142",
      "signature": "def fitted_models() -> tuple",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e80980b6c5f4ec7d9b2d706cf90e00b54da42869394aacea92ddac64442d6f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#fitted_models.fit",
      "name": "fit",
      "kind": "function",
      "path": "tests/pymc/test_scripts.py",
      "span": "L116-L138",
      "signature": "def fit(with_slope: bool, seed: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "833f5c88654af20752199252b28f3cdbad0cff1a0d02b4b4fbae3b786d44a7a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "name": "LooReliabilityTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L348-L383",
      "signature": "class LooReliabilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a7ad3e1d444125782e11533d36708f1ffc4970bf8c697535d4838fac1bf5168",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#LooReliabilityTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L350-L354",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4fccb26139ad414dc2fc44661ed64898df7bef45837a45ad6a559fe5c3c1db5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LooReliabilityTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#LooReliabilityTests.test_a_well_specified_model_has_no_problem_observations",
      "name": "test_a_well_specified_model_has_no_problem_observations",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L365-L368",
      "signature": "def test_a_well_specified_model_has_no_problem_observations(self) -> None: # Correct model, 40 well-behaved points: PSIS must be reliable.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e1d0cdbe94681b3d37555de8b1d8eff5461bb73f4a9ce7212ff8bce6b2bc724",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LooReliabilityTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#LooReliabilityTests.test_lowering_the_threshold_flags_more_observations",
      "name": "test_lowering_the_threshold_flags_more_observations",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L370-L383",
      "signature": "def test_lowering_the_threshold_flags_more_observations(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6de14b6fb5efef6f3993ef7308faca6842832246d4670033c7e7ca82cf9eba5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LooReliabilityTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#LooReliabilityTests.test_one_pareto_k_is_reported_per_observation",
      "name": "test_one_pareto_k_is_reported_per_observation",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L356-L357",
      "signature": "def test_one_pareto_k_is_reported_per_observation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0f225aef3cd91447c468a508ccf48dbce9ef0a4f6a56ffb6927e7c74ee092b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LooReliabilityTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#LooReliabilityTests.test_the_counts_agree_with_the_threshold_they_were_given",
      "name": "test_the_counts_agree_with_the_threshold_they_were_given",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L359-L363",
      "signature": "def test_the_counts_agree_with_the_threshold_they_were_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1aa954a9cbffd365bd401fffeacce82691c8fa265820b677611a40b3ae346bd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LooReliabilityTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelAveragingTests",
      "name": "ModelAveragingTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L386-L419",
      "signature": "class ModelAveragingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99c7b7f7f6309e76c70d0ee70d84ddbbfd0ab87e243cc11ad4b420999405918b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelAveragingTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L388-L390",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2bac9ba082539fc381ae76e36d4141a90d7c9ee2e9ea980713c286508e25ffe3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAveragingTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelAveragingTests.test_a_variable_no_model_predicts_is_skipped_rather_than_raising",
      "name": "test_a_variable_no_model_predicts_is_skipped_rather_than_raising",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L414-L419",
      "signature": "def test_a_variable_no_model_predicts_is_skipped_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8be7d3078fba844bb7ddd0a2f3604ca53b01517b212db8a9c6bc7456b335f84",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAveragingTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelAveragingTests.test_derived_weights_come_from_the_comparison_and_sum_to_one",
      "name": "test_derived_weights_come_from_the_comparison_and_sum_to_one",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L402-L412",
      "signature": "def test_derived_weights_come_from_the_comparison_and_sum_to_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4703f87dc3c9830db782e0f0c7f860e0bc0a8cf46f93c85bbddb8136a3f2881",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAveragingTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelAveragingTests.test_explicit_weights_are_normalised_and_applied_exactly",
      "name": "test_explicit_weights_are_normalised_and_applied_exactly",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L392-L400",
      "signature": "def test_explicit_weights_are_normalised_and_applied_exactly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6fda49c746db19e6d8bc157cf4611a6e89887285b6fd3b3e666c275d79f5503",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelAveragingTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "name": "ModelComparisonTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L292-L345",
      "signature": "class ModelComparisonTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "371af7163754778ffd102254679a3b808743fc5a249e11bcff265fff8000df35",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L294-L297",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "96e3c02a272cb392a58e92596e57961bb44ab0f6c4fba147e5f44a0257938cae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_an_unsupported_criterion_is_refused_with_a_way_forward",
      "name": "test_an_unsupported_criterion_is_refused_with_a_way_forward",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L335-L339",
      "signature": "def test_an_unsupported_criterion_is_refused_with_a_way_forward(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b719c43706ab2873a1245f5834d29d9631eb3ccc679263e8a3d72b7eb73d384",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_loo_is_accepted_under_either_spelling_and_any_case",
      "name": "test_loo_is_accepted_under_either_spelling_and_any_case",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L327-L333",
      "signature": "def test_loo_is_accepted_under_either_spelling_and_any_case(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6bb631f2ef4f9a4d0e0fa8ec6fba71aeb91e7463209cccf316d430c984c9c0b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_comparison_columns_are_numeric",
      "name": "test_the_comparison_columns_are_numeric",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L316-L321",
      "signature": "def test_the_comparison_columns_are_numeric(self) -> None: # Same display-formatting trap as az.summary: the interpretation block # compares elpd_diff against dse.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7552e015a982c6c8b836e3e5a5a439c3afa4e292df792e4a8c7d3c17a6db396b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_difference_is_large_relative_to_its_own_standard_error",
      "name": "test_the_difference_is_large_relative_to_its_own_standard_error",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L323-L325",
      "signature": "def test_the_difference_is_large_relative_to_its_own_standard_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "23067506e7e1e47edeca73890ec948e601f70736840abb6123dcd361ee95586c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_model_that_matches_the_data_generating_process_wins",
      "name": "test_the_model_that_matches_the_data_generating_process_wins",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L299-L309",
      "signature": "def test_the_model_that_matches_the_data_generating_process_wins(self) -> None: # The data is y = 2x + noise, so dropping the slope must cost predictive # accuracy. This is known before the code runs.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6284cc3c9f5eb202d9cd2a38ed436138a915388152e2d8ddecc679f2b6fad426",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_stacking_weights_form_a_distribution",
      "name": "test_the_stacking_weights_form_a_distribution",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L311-L314",
      "signature": "def test_the_stacking_weights_form_a_distribution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4235b7e101dc3df1ce2bf9269d8e89063e055acd42a8698a46036d6448115813",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_verbose_report_names_the_winner",
      "name": "test_the_verbose_report_names_the_winner",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L341-L345",
      "signature": "def test_the_verbose_report_names_the_winner(self) -> None: # verbose=True is the default, so it must not raise on the way through # the interpretation and reliability blocks.",
      "exported": true,
      "origin": "ast",
      "body_hash": "653a9be21eb5dc1ffb736635b3526245f2a55b64d5538db3096c749ad0f589be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelComparisonTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#SummaryNumericTests",
      "name": "SummaryNumericTests",
      "kind": "class",
      "path": "tests/pymc/test_scripts.py",
      "span": "L145-L168",
      "signature": "class SummaryNumericTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "33761c8f47bf9fcd89dfab38d5d64bd84462b441323e37b51e52bbb465fed88f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymc/test_scripts.py#SummaryNumericTests.test_the_summary_columns_are_numeric_not_formatted_strings",
      "name": "test_the_summary_columns_are_numeric_not_formatted_strings",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L146-L157",
      "signature": "def test_the_summary_columns_are_numeric_not_formatted_strings(self) -> None: # The regression: ArviZ 1.x rounds `summary` for display by default, so # `summary['r_hat'] > 1.01` raised \"'>' not supported between instances # of 'str' and 'float'\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "34edeab59d9a3e5942a9163bcf547bf25f19d54034be1fe67029c83090c3a115",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryNumericTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#SummaryNumericTests.test_the_summary_describes_the_draws_it_was_given",
      "name": "test_the_summary_describes_the_draws_it_was_given",
      "kind": "method",
      "path": "tests/pymc/test_scripts.py",
      "span": "L159-L168",
      "signature": "def test_the_summary_describes_the_draws_it_was_given(self) -> None: # Standard-normal draws: mean near 0, sd near 1, and -- because the draws # are independent -- an effective sample size close to the draw count.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4157435d6b83d391a794fc23d5c31eec45252dcf771992c95b884d4e2a51d266",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryNumericTests"
    },
    {
      "id": "tests/pymc/test_scripts.py#synthetic_posterior",
      "name": "synthetic_posterior",
      "kind": "function",
      "path": "tests/pymc/test_scripts.py",
      "span": "L59-L101",
      "signature": "def synthetic_posterior( *, diverging: int = 0, tree_depth: int = 3, with_energy: bool = True, shift_second_chain: float = 0.0, ) -> \"xr.DataTree\"",
      "exported": true,
      "origin": "ast",
      "body_hash": "8bdca1eedaaa4980889e9740359cfb7eacbf52860d38c73d0971fe8a57641be6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L1-L310",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "94e3f76a40eaf415351254e2cb9799f0bc3526ed0e8eb7a39b1cad66e9ffbefd",
      "chars": 14190,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests",
      "name": "BiObjectiveProblemDefinitionTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L77-L103",
      "signature": "class BiObjectiveProblemDefinitionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e4febbe2b7862bead7ea31834045eab115540021fb14d83d45b532f955fea26",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L78-L79",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e10b96bed28dca78e796db3d9038d52b757770e24a64144517a6246f1154068",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BiObjectiveProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.test_the_declared_shape_matches_the_docstring",
      "name": "test_the_declared_shape_matches_the_docstring",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L81-L86",
      "signature": "def test_the_declared_shape_matches_the_docstring(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5503e81df9793499d6930e6016b304b69471258301e2c54aae2cfdaa9aa951c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BiObjectiveProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.test_the_objectives_are_the_two_squared_distances",
      "name": "test_the_objectives_are_the_two_squared_distances",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L88-L96",
      "signature": "def test_the_objectives_are_the_two_squared_distances(self) -> None: # f1 = |x|^2 and f2 = |x - (1, 1)|^2, so the corners are exact.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e79b8af02dc5e594bff960b61c4cf8bd1e2ce80c1050c9bac2faefc1c46f7c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BiObjectiveProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.test_the_two_objectives_genuinely_conflict",
      "name": "test_the_two_objectives_genuinely_conflict",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L98-L103",
      "signature": "def test_the_two_objectives_genuinely_conflict(self) -> None: # The origin minimises f1 and (1, 1) minimises f2; if one point were # best at both there would be nothing to trade off.",
      "exported": true,
      "origin": "ast",
      "body_hash": "03abef6fc724130fd6deaa78d9e0ce14832d567502308167905530f85e65484b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BiObjectiveProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "name": "ConstrainedProblemDefinitionTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L106-L144",
      "signature": "class ConstrainedProblemDefinitionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "49933e87c1f48c5f2473966cf8ba3552eaef407ac11ece9a81e27ba59d67b901",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L107-L108",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c023e440e71ce514d2e7b9962c0c29d2f3fc84a31a85ef86a260f96481928fbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_a_feasible_point_evaluates_to_non_positive_constraints",
      "name": "test_a_feasible_point_evaluates_to_non_positive_constraints",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L115-L123",
      "signature": "def test_a_feasible_point_evaluates_to_non_positive_constraints(self) -> None: # At (1.0, 0.0): f = (1, (1+0)/1) = (1, 1); g1 = -(0 + 9 - 6) = -3 and # g2 = -(-0 + 9 - 1) = -8, so both original inequalities hold.",
      "exported": true,
      "origin": "ast",
      "body_hash": "991bf1616e9eb3f0c1643ee4f4a10a7170e62381a288d7fc7780cf335e04f78f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_a_point_violating_both_constraints_is_reported_infeasible",
      "name": "test_a_point_violating_both_constraints_is_reported_infeasible",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L125-L132",
      "signature": "def test_a_point_violating_both_constraints_is_reported_infeasible(self) -> None: # At (0.1, 0.0): g1 = -(0 + 0.9 - 6) = 5.1 and g2 = -(-0 + 0.9 - 1) = 0.1, # both positive, so the sign conversion in the docstring is the real one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4b7937187611a16cf239072e9cac80de7a1c13ca0828b151b214f7d3e88e09da",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_the_search_returns_only_feasible_solutions",
      "name": "test_the_search_returns_only_feasible_solutions",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L134-L144",
      "signature": "def test_the_search_returns_only_feasible_solutions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff59226e2f3710008f7cc88b5a9fb9532beae27ded6dfe8f8a75abde5993e9d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_two_inequality_constraints_are_declared_over_the_stated_box",
      "name": "test_two_inequality_constraints_are_declared_over_the_stated_box",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L110-L113",
      "signature": "def test_two_inequality_constraints_are_declared_over_the_stated_box(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "78345b79ed2ee27003bbe6301b83225262c60d2ed73b0ffe75502589dcbb3ccf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConstrainedProblemDefinitionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests",
      "name": "DecisionMakingExampleTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L274-L305",
      "signature": "class DecisionMakingExampleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7402a021d3285f2d561210c27acdfa6db1e7db96bbc8c6b9113ca295063a8649",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L276-L279",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "43912b9a34ae784a9b7f6d0cac9c3e1f53a925ae787bf6aefe40375196b67b38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DecisionMakingExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.test_shifting_the_weights_moves_the_choice_along_the_front",
      "name": "test_shifting_the_weights_moves_the_choice_along_the_front",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L288-L298",
      "signature": "def test_shifting_the_weights_moves_the_choice_along_the_front(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7e6f134072abe49993584a5b4025a5da9710f7a06e6aff8e23d5502fae33c34",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DecisionMakingExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.test_the_extreme_solutions_are_the_per_objective_minima",
      "name": "test_the_extreme_solutions_are_the_per_objective_minima",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L300-L305",
      "signature": "def test_the_extreme_solutions_are_the_per_objective_minima(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5428d6989d957939348d42e2c5902b662b1d32cca6bfeae111a4d5e3b6e16e04",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DecisionMakingExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.test_the_selection_indexes_into_both_result_arrays_consistently",
      "name": "test_the_selection_indexes_into_both_result_arrays_consistently",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L281-L286",
      "signature": "def test_the_selection_indexes_into_both_result_arrays_consistently(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e17b320fc4a745cbdfee60267fb563e4e91d634a937f413f6c3d95bd6e122f2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DecisionMakingExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#is_non_dominated",
      "name": "is_non_dominated",
      "kind": "function",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L71-L74",
      "signature": "def is_non_dominated(front: \"np.ndarray\") -> bool",
      "exported": true,
      "origin": "ast",
      "body_hash": "66acfd49977f0f4a45d8939b976a3a4d94495a96fc00647b48bc8136a3f7a90f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests",
      "name": "ManyObjectiveExampleTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L210-L252",
      "signature": "class ManyObjectiveExampleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad6f76277124d797d8add9c5d4e6d8356aad30b4e0284ecde2008b0bfa83229d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_das_dennis_directions_take_the_dimension_positionally",
      "name": "test_das_dennis_directions_take_the_dimension_positionally",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L211-L220",
      "signature": "def test_das_dennis_directions_take_the_dimension_positionally(self) -> None: # The regression this guards: get_reference_directions(\"das-dennis\", # n_obj=5, ...) raises TypeError because the factory's first argument is # n_dim, which made the many-objective example unrunnable.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9587438b3160555d60da730694af017f10aae07ab94f1223b10387cdd8fa0cc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManyObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_every_feasible_dtlz2_point_lies_on_or_outside_the_unit_sphere",
      "name": "test_every_feasible_dtlz2_point_lies_on_or_outside_the_unit_sphere",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L230-L238",
      "signature": "def test_every_feasible_dtlz2_point_lies_on_or_outside_the_unit_sphere(self) -> None: # DTLZ2 scales the unit sphere by 1 + g with g >= 0, so ||f|| >= 1 with # equality exactly on the Pareto front.",
      "exported": true,
      "origin": "ast",
      "body_hash": "442ac118e2bf57fb376f51db77f2ca47d2107282da78b23fc637cdcce15da64a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManyObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_more_partitions_give_more_directions",
      "name": "test_more_partitions_give_more_directions",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L222-L228",
      "signature": "def test_more_partitions_give_more_directions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4ce3d62fd063297b52dcf80fb398172fefaf215f100a1401091449f726867e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManyObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_nsga3_optimises_a_three_objective_problem_towards_the_sphere",
      "name": "test_nsga3_optimises_a_three_objective_problem_towards_the_sphere",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L240-L252",
      "signature": "def test_nsga3_optimises_a_three_objective_problem_towards_the_sphere(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "82d933f88dbff4c6ec4ead1b9b6ec67607659689647757bd17e0a79fb87bb743",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ManyObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests",
      "name": "MultiObjectiveExampleTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L181-L207",
      "signature": "class MultiObjectiveExampleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1aac479f03e34e3150516fcc43cfe620ace336d8ae9c830ecd0f1325106860",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_an_nsga2_run_returns_a_mutually_non_dominated_set",
      "name": "test_an_nsga2_run_returns_a_mutually_non_dominated_set",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L192-L199",
      "signature": "def test_an_nsga2_run_returns_a_mutually_non_dominated_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "05d2ff7caa6bc0f11cc88c29f65fa7eafe3a8e3dcf2ebf71ba4e30c73ed5fdba",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_no_solution_can_beat_the_analytic_front",
      "name": "test_no_solution_can_beat_the_analytic_front",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L201-L207",
      "signature": "def test_no_solution_can_beat_the_analytic_front(self) -> None: # Nothing feasible lies below f2 = 1 - sqrt(f1); a result that did would # mean the problem or the front is wrong.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef2bcb81d27a0d3aa8cdebbcdf157a6c14ac56b819447c30bf0db50608e72c9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_the_analytic_front_satisfies_f2_equals_one_minus_root_f1",
      "name": "test_the_analytic_front_satisfies_f2_equals_one_minus_root_f1",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L186-L190",
      "signature": "def test_the_analytic_front_satisfies_f2_equals_one_minus_root_f1(self) -> None: # ZDT1's true front is a published closed form; the example plots it as # the reference curve, so it must be the real one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ef50c2eaeaace76e183558d88264e6a673575b6195ae73ff232a8e8a86cc8ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_zdt1_is_the_thirty_variable_bi_objective_benchmark",
      "name": "test_zdt1_is_the_thirty_variable_bi_objective_benchmark",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L182-L184",
      "signature": "def test_zdt1_is_the_thirty_variable_bi_objective_benchmark(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "13b9adf2a969a115aa1769df47b301a4d0efb569540fefbddbb23858a2dab2a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MultiObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests",
      "name": "PseudoWeightDecisionTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L255-L271",
      "signature": "class PseudoWeightDecisionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9694c19ba6f728c15e1ff7809a89ec2b8229231a01042dd62c51e811db65a88a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L258-L264",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6e70fa203309fd4317002de6fbae25c3b04d0d28b3b9f6467a118d704ac3f52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudoWeightDecisionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests.test_equal_weights_select_the_balanced_compromise",
      "name": "test_equal_weights_select_the_balanced_compromise",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L270-L271",
      "signature": "def test_equal_weights_select_the_balanced_compromise(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "770f0dac96645f57df17eb3b5bcde375c3a7abb87cfd986cf6465537f953e66d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudoWeightDecisionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests.test_weighting_one_objective_selects_the_best_point_in_it",
      "name": "test_weighting_one_objective_selects_the_best_point_in_it",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L266-L268",
      "signature": "def test_weighting_one_objective_selects_the_best_point_in_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f2134d27d3abe5f5f56ff19f904d2928610cc630728e96b795c0f32e2e58753f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PseudoWeightDecisionTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests",
      "name": "SingleObjectiveExampleTests",
      "kind": "class",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L147-L178",
      "signature": "class SingleObjectiveExampleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "087809ca387fe27750a530acd100891b0ac5bd7a46f317e102ba3bc54ab30e60",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_a_short_genetic_algorithm_run_approaches_the_known_optimum",
      "name": "test_a_short_genetic_algorithm_run_approaches_the_known_optimum",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L158-L162",
      "signature": "def test_a_short_genetic_algorithm_run_approaches_the_known_optimum(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "65708f9b2aa7e93ea83d8061bd33893d622b3c5be0725d607d3bf573e4c2a080",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SingleObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_pymoos_sphere_has_its_optimum_at_one_half",
      "name": "test_pymoos_sphere_has_its_optimum_at_one_half",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L148-L156",
      "signature": "def test_pymoos_sphere_has_its_optimum_at_one_half(self) -> None: # pymoo's Sphere is sum (x_i - 0.5)^2 on [0, 1]^n: zero at 0.5 and # n * 0.25 at the origin. The GA below is judged against that.",
      "exported": true,
      "origin": "ast",
      "body_hash": "07db4aee9c7e779abfb17788c58088bab3f8224d002ca14aeb9af199324704f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SingleObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_the_example_reports_the_evaluation_budget_it_used",
      "name": "test_the_example_reports_the_evaluation_budget_it_used",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L164-L169",
      "signature": "def test_the_example_reports_the_evaluation_budget_it_used(self) -> None: # pop_size * n_gen evaluations, which is what the example prints.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1750ece54259b0ae0bf72bc6dff9fcab16cae8e483f28d7a34b276ccac1581e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SingleObjectiveExampleTests"
    },
    {
      "id": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_the_same_seed_gives_the_same_answer",
      "name": "test_the_same_seed_gives_the_same_answer",
      "kind": "method",
      "path": "tests/pymoo/test_scripts.py",
      "span": "L171-L178",
      "signature": "def test_the_same_seed_gives_the_same_answer(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06890d6eb294ec2827658995fc7376bf1235cfad28a6451d85815dd46a5324f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SingleObjectiveExampleTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L1-L824",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1739f75dbff067c95e814b4d4c37979da55e1787278ce12dac5975ec6a610dea",
      "chars": 38707,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "name": "AdductDefaultTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L597-L658",
      "signature": "class AdductDefaultTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7dc89896a42f5a849259d03b7aa854f0f683a087ad7ee25291d9d9f16de9774a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.entries",
      "name": "entries",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L601-L602",
      "signature": "def entries(table: str) -> list[list[str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d75412fb238639bae1f06592f9b58767c7295efa7aa8f13e7314109af9de8d79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_every_element_string_parses_as_an_empirical_formula",
      "name": "test_every_element_string_parses_as_an_empirical_formula",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L616-L622",
      "signature": "def test_every_element_string_parses_as_an_empirical_formula(self) -> None: # A typo here surfaces only as an OpenMS parameter error deep inside # MetaboliteFeatureDeconvolution.",
      "exported": true,
      "origin": "ast",
      "body_hash": "580494c48f2a12e894f6a69a9d19f6b65e719e49e0256660ccf7579e6867ea72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_every_entry_has_elements_a_charge_and_a_probability",
      "name": "test_every_entry_has_elements_a_charge_and_a_probability",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L604-L614",
      "signature": "def test_every_entry_has_elements_a_charge_and_a_probability(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "48429ce130c488b02e96e388a54e672b20a97a0458b11c526f1e03d8be0cf05f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_protonation_is_the_most_likely_form_in_each_mode",
      "name": "test_protonation_is_the_most_likely_form_in_each_mode",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L634-L645",
      "signature": "def test_protonation_is_the_most_likely_form_in_each_mode(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ffce2505f6b5b2cc63453d2eceff9a12a7194bbda2baca793642ebcc8641900",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_charge_signs_match_the_ionisation_mode",
      "name": "test_the_charge_signs_match_the_ionisation_mode",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L624-L632",
      "signature": "def test_the_charge_signs_match_the_ionisation_mode(self) -> None: # An H-1 (deprotonation) adduct offered in positive mode, or Na+ in # negative mode, would explain mass differences that cannot occur.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9d27e2def54c24940c21c6d6925918d91e0e140ad14aef4b691f8f0a3e823b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_negative_defaults_include_a_chloride_adduct",
      "name": "test_the_negative_defaults_include_a_chloride_adduct",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L654-L658",
      "signature": "def test_the_negative_defaults_include_a_chloride_adduct(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8cad40325537075c7c91c66ebe7ba93e1fa585753dbd1b5247281615b548133",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_water_loss_adduct_has_the_mass_of_a_lost_water",
      "name": "test_the_water_loss_adduct_has_the_mass_of_a_lost_water",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L647-L652",
      "signature": "def test_the_water_loss_adduct_has_the_mass_of_a_lost_water(self) -> None: # `H-2O-1` is the OpenMS spelling of a neutral water loss; if it parsed # as an addition the sign of the mass shift would flip.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9117003b444b673f78ffcd55219c60d7a78bb9de7816106be2e67861460db824",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AdductDefaultTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "name": "AlignAndLinkTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L661-L725",
      "signature": "class AlignAndLinkTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b98ea084f1ab805602c04e2f76f39ae353289deb85c9c94c7837ee0637ca113",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_a_featurexml_input_is_loaded_rather_than_re_detected",
      "name": "test_a_featurexml_input_is_loaded_rather_than_re_detected",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L716-L725",
      "signature": "def test_a_featurexml_input_is_loaded_rather_than_re_detected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9460293da9747a78737d668cf313cdd9a56963ca53945bedae33fa755c5d7a40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlignAndLinkTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_co_eluting_features_are_linked_across_samples",
      "name": "test_co_eluting_features_are_linked_across_samples",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L674-L682",
      "signature": "def test_co_eluting_features_are_linked_across_samples(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2f22140c2504f6c52222a2ab4958240847470a0fa2e465e60bdd1c8d39ac12e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlignAndLinkTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_features_outside_the_retention_time_tolerance_stay_separate",
      "name": "test_features_outside_the_retention_time_tolerance_stay_separate",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L684-L691",
      "signature": "def test_features_outside_the_retention_time_tolerance_stay_separate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbf3e4fefd4381a5786257d67568c2bebac6f8716a1e75c41ad885efaf9bd4aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlignAndLinkTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_column_headers_record_each_sample_and_its_size",
      "name": "test_the_column_headers_record_each_sample_and_its_size",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L693-L705",
      "signature": "def test_the_column_headers_record_each_sample_and_its_size(self) -> None: # The headers become the column names of the quantification matrix, so # a missing filename produces an unusable table.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f187696997493afe3f882f2630f2c2e74e822459fb45a30bd831cec465a32b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlignAndLinkTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_metabolomics_detector_is_shared_rather_than_reimplemented",
      "name": "test_the_metabolomics_detector_is_shared_rather_than_reimplemented",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L707-L714",
      "signature": "def test_the_metabolomics_detector_is_shared_rather_than_reimplemented(self) -> None: # align_link_quantify imports detect_features under a bare # `except Exception`, which would silently fall back to \"featureXML # inputs only\" if the import ever broke.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9cb9f215613aed7fcec59aa42f1b51fdea2152afb042512ab19e3fa74c8f5867",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlignAndLinkTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_reference_map_is_the_one_with_the_most_features",
      "name": "test_the_reference_map_is_the_one_with_the_most_features",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L664-L672",
      "signature": "def test_the_reference_map_is_the_one_with_the_most_features(self) -> None: # Aligning to the sparsest map throws away the retention-time anchors # the pose-clustering algorithm needs.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7bd5d1c08722a4b431e23d3ee0b82146e8dc72a5293fa2fe98da11ee13646c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlignAndLinkTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#CollectMs1Tests",
      "name": "CollectMs1Tests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L466-L488",
      "signature": "class CollectMs1Tests(ExampleExperimentMixin, unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fad6c87b8d448688de05fc64cbe4ae8f17be0c437130af50c7ccd310122db03",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_an_ms2_only_experiment_yields_nothing",
      "name": "test_an_ms2_only_experiment_yields_nothing",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L485-L488",
      "signature": "def test_an_ms2_only_experiment_yields_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "372a1926afe0ac891a205b18ca5d8e9931f4518c2e1f59dcb84447f1b9ae60b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CollectMs1Tests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_only_ms1_scans_contribute_a_chromatogram_point",
      "name": "test_only_ms1_scans_contribute_a_chromatogram_point",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L467-L474",
      "signature": "def test_only_ms1_scans_contribute_a_chromatogram_point(self) -> None: # A TIC that included MS2 scans would show spurious dips and spikes.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1dba03389a09d9ccc52169fc72b9249d20bc36ee4a3689031055327dd6779a06",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CollectMs1Tests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_the_three_returned_lists_stay_index_aligned",
      "name": "test_the_three_returned_lists_stay_index_aligned",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L476-L483",
      "signature": "def test_the_three_returned_lists_stay_index_aligned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18ca948eba81f5caba7eb8353eaf18434977d93dbd7c877b42491f4149a38ed8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CollectMs1Tests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "name": "ConsensusMatrixTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L728-L819",
      "signature": "class ConsensusMatrixTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "692b0454bae8af1b78933aaf7add9ac0b82557d3f9377d3fe31b9596e07ab599",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.sample_medians",
      "name": "sample_medians",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L785-L791",
      "signature": "def sample_medians(self, path: Path) -> dict[str, float]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d36a9e251e8ee249f94748e94f2cfaed8f933e76cacd499faef55c092f6bcf27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsensusMatrixTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L731-L739",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "36ad7cd671f2bbc563d7aad11da44d0b2a1c0e6aa044a1cbf9bbe5cba2cb091a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsensusMatrixTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_a_missing_input_file_exits_rather_than_writing_an_empty_matrix",
      "name": "test_a_missing_input_file_exits_rather_than_writing_an_empty_matrix",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L776-L783",
      "signature": "def test_a_missing_input_file_exits_rather_than_writing_an_empty_matrix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "357f95339f4083b83a457a65143f65b5efb3969988f734d8177745fc01304c7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsensusMatrixTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_median_normalization_equalises_the_per_sample_medians",
      "name": "test_median_normalization_equalises_the_per_sample_medians",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L793-L819",
      "signature": "def test_median_normalization_equalises_the_per_sample_medians(self) -> None: # Sample two was built 10% hotter than sample one -- medians 1600 and # 1500 -- which is exactly the loading difference median scaling exists # to remove. Comparing medians rather than a single cell keeps the # assertion independent of the order the linker emits features in.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b23299ad426fffcd9bec1731bd73965fbd6e1958e87cc5182c09f1f16d2a90ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsensusMatrixTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_the_long_table_has_one_row_per_feature_and_sample",
      "name": "test_the_long_table_has_one_row_per_feature_and_sample",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L761-L774",
      "signature": "def test_the_long_table_has_one_row_per_feature_and_sample(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e0b0b0009e52455c9afb18c2f682d97c5ff2c5479edf820769ac7250b4af4f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsensusMatrixTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_the_wide_matrix_has_one_row_per_feature_and_one_column_per_sample",
      "name": "test_the_wide_matrix_has_one_row_per_feature_and_one_column_per_sample",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L741-L759",
      "signature": "def test_the_wide_matrix_has_one_row_per_feature_and_one_column_per_sample(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8613f2ec9ace8d51b397da32c897c0acb8d8c158c3ddb2b18d6f25b33c2d209e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConsensusMatrixTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests",
      "name": "DigestionTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L265-L339",
      "signature": "class DigestionTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "471541f15b33b706a7540bc213cbfa35f8d86aa11a8805b4847a66dc8e885cd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "name": "peptides",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L268-L280",
      "signature": "def peptides(self, sequence: str, **overrides) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a0fe822d5507ed1253e5958c5f513206563faa27337b78cde99789b4a8470c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_a_fasta_entry_keeps_its_accession_and_sequence",
      "name": "test_a_fasta_entry_keeps_its_accession_and_sequence",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L307-L317",
      "signature": "def test_a_fasta_entry_keeps_its_accession_and_sequence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d3bb59e8c3877c8728ab393fdac749d14cfe58e5abe81255ced0f20e9a58dbb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_allowing_a_missed_cleavage_adds_the_joined_peptide",
      "name": "test_allowing_a_missed_cleavage_adds_the_joined_peptide",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L290-L294",
      "signature": "def test_allowing_a_missed_cleavage_adds_the_joined_peptide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb956234b122f5e9439207aaae993ef5ca819725ef082c9442c60d921dc00c5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_lysc_ignores_the_arginine_site_trypsin_uses",
      "name": "test_lysc_ignores_the_arginine_site_trypsin_uses",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L296-L299",
      "signature": "def test_lysc_ignores_the_arginine_site_trypsin_uses(self) -> None: # Proves the --enzyme argument reaches the digester rather than being # accepted and dropped.",
      "exported": true,
      "origin": "ast",
      "body_hash": "de266897deb9e0c40ac69ce318fe671c914bb3ab9fd4d2b8b95a0e7254c805a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_the_length_window_excludes_at_both_ends",
      "name": "test_the_length_window_excludes_at_both_ends",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L301-L305",
      "signature": "def test_the_length_window_excludes_at_both_ends(self) -> None: # Both peptides are 7 residues long.",
      "exported": true,
      "origin": "ast",
      "body_hash": "318a875a0fef0b9a78234c75de34daa43aaf57751533bdf87dcd6cc8f967a67c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_the_peptide_table_reports_published_masses",
      "name": "test_the_peptide_table_reports_published_masses",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L319-L339",
      "signature": "def test_the_peptide_table_reports_published_masses(self) -> None: # DFPIANGER ends in R, so trypsin returns the whole sequence and the row # can be checked against the documented monoisotopic mass and m/z.",
      "exported": true,
      "origin": "ast",
      "body_hash": "33305da254a3d23eac4275577809daa3c5eb3b20ab7f83aedbcb79263305b965",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_trypsin_cleaves_after_lysine_and_arginine",
      "name": "test_trypsin_cleaves_after_lysine_and_arginine",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L282-L283",
      "signature": "def test_trypsin_cleaves_after_lysine_and_arginine(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f02d648d834ff2091bd15f70855e74e12d89a624971e2beee64d075338f48ea4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#DigestionTests.test_trypsin_does_not_cleave_before_proline",
      "name": "test_trypsin_does_not_cleave_before_proline",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L285-L288",
      "signature": "def test_trypsin_does_not_cleave_before_proline(self) -> None: # The Keil rule: K/R followed by P is not a cleavage site. Getting this # wrong inflates the search space and invents peptides that never exist.",
      "exported": true,
      "origin": "ast",
      "body_hash": "58a8abaeda2767919cdb2b4e9b81f03c7278a524c1d7ca4abb54aada17d246ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DigestionTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "name": "ExampleExperimentMixin",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L138-L152",
      "signature": "class ExampleExperimentMixin",
      "exported": true,
      "origin": "ast",
      "body_hash": "2db391e52ce9b42ecabcbc6ce2a222f2e8d0b9ec47d4890bbf2b04da49aae049",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "name": "experiment",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L147-L152",
      "signature": "def experiment()",
      "exported": true,
      "origin": "ast",
      "body_hash": "41722f6f49345dd28ceb03ed813e62858418998f249b801ff2df293e5693d582",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExampleExperimentMixin"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#feature_map",
      "name": "feature_map",
      "kind": "function",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L117-L128",
      "signature": "def feature_map(entries)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2cf23ef18653b7c0b2f029c8836fcca86d2732a3940a38ba0273c94138c40858",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "name": "FilterExperimentTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L381-L438",
      "signature": "class FilterExperimentTests(ExampleExperimentMixin, unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ced6dc5c45391ca18b6e094abd7c25cfca2dbfd266fb0342a80fc97b4b99684c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_intensity_threshold_prunes_peaks_and_keeps_the_scan",
      "name": "test_an_intensity_threshold_prunes_peaks_and_keeps_the_scan",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L404-L412",
      "signature": "def test_an_intensity_threshold_prunes_peaks_and_keeps_the_scan(self) -> None: # Emptied scans are retained on purpose: dropping them would renumber # every spectrum index downstream.",
      "exported": true,
      "origin": "ast",
      "body_hash": "2623f4fb82d3e18b978bc32da9b6ffe9e1f5d1dac3d1943bb1b279eddd40a7be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_ms_level_filter_keeps_only_that_level",
      "name": "test_an_ms_level_filter_keeps_only_that_level",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L384-L388",
      "signature": "def test_an_ms_level_filter_keeps_only_that_level(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb9da3f24c45e131892cc5d68b053f9a3b58fc472b53e7240acfef3a3794ee96",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_unused_ms_level_yields_an_empty_experiment",
      "name": "test_an_unused_ms_level_yields_an_empty_experiment",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L390-L392",
      "signature": "def test_an_unused_ms_level_yields_an_empty_experiment(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2518478d6bc7a99076121d3170dc816c26c76653e26e95774972eaf5829e352",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_chromatograms_survive_only_when_no_ms_level_is_selected",
      "name": "test_chromatograms_survive_only_when_no_ms_level_is_selected",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L425-L438",
      "signature": "def test_chromatograms_survive_only_when_no_ms_level_is_selected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3cc38505e3d790ac972d03e94138abd2ef864032e96a6f8d442290ac918f16f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_filtering_does_not_mutate_the_experiment_it_reads",
      "name": "test_filtering_does_not_mutate_the_experiment_it_reads",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L418-L423",
      "signature": "def test_filtering_does_not_mutate_the_experiment_it_reads(self) -> None: # The source is often written back out under a different name; pruning # its peaks in place would corrupt an unrelated output.",
      "exported": true,
      "origin": "ast",
      "body_hash": "219fdce7530eb76266cedc647f7a7fc9f2078717f9fb6ff1001a10111b094682",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_the_retention_time_window_includes_its_endpoints",
      "name": "test_the_retention_time_window_includes_its_endpoints",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L394-L402",
      "signature": "def test_the_retention_time_window_includes_its_endpoints(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9c67450714d2fc0b4a800e21df441619a9afaaac79516c2cc2539199f7ac930",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_the_threshold_is_inclusive",
      "name": "test_the_threshold_is_inclusive",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L414-L416",
      "signature": "def test_the_threshold_is_inclusive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "81a53f6d3363f417564da466ebeb7ab66251ef8de0ed55d8625eb725ef195249",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "name": "IsotopePatternTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L174-L216",
      "signature": "class IsotopePatternTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "409f5fc1f04d74121aa079bf14792cd083b0703a33aaa81cd75f86cf2ab00fb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests.rows",
      "name": "rows",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L177-L185",
      "signature": "def rows(self, formula: str, count: int) -> list[tuple[float, float]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f5354342c7f4e89b4f726933b09427455cf507f447f2e526cc14364cb986bb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IsotopePatternTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_a_single_requested_peak_is_the_monoisotopic_one",
      "name": "test_a_single_requested_peak_is_the_monoisotopic_one",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L209-L212",
      "signature": "def test_a_single_requested_peak_is_the_monoisotopic_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "72e6c4146f49790fa62dd5f8c773d6cb653077b87febfb85f2136876108c44b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IsotopePatternTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_consecutive_peaks_are_one_neutron_apart",
      "name": "test_consecutive_peaks_are_one_neutron_apart",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L192-L198",
      "signature": "def test_consecutive_peaks_are_one_neutron_apart(self) -> None: # The 13C-12C mass difference is 1.00336 u; anything near 0.5 or 2 would # mean the container was misread.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d372178449119234ce5b08892cc9f799ba9d0dd26e4b9396657f6a3304c9d49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IsotopePatternTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_no_csv_is_written_when_none_is_requested",
      "name": "test_no_csv_is_written_when_none_is_requested",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L214-L216",
      "signature": "def test_no_csv_is_written_when_none_is_requested(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa59b6d2f53fbf98b86f41d9fc814c693064ddc4fea2554fe012df5f6a8dcf91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IsotopePatternTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_the_abundances_fall_away_from_the_monoisotopic_peak",
      "name": "test_the_abundances_fall_away_from_the_monoisotopic_peak",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L200-L207",
      "signature": "def test_the_abundances_fall_away_from_the_monoisotopic_peak(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54677027505cc188e94ba5950740ff6070effffdb552adb657aae83afd0d3ef4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IsotopePatternTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_the_first_peak_is_the_monoisotopic_mass",
      "name": "test_the_first_peak_is_the_monoisotopic_mass",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L187-L190",
      "signature": "def test_the_first_peak_is_the_monoisotopic_mass(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dec541dee838027a4dc970c190f8877f014a0b618d9816986a163fe4ddecafc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "IsotopePatternTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "name": "MassCalculatorCliTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L219-L262",
      "signature": "class MassCalculatorCliTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "126f7cd0eff0b664573bd067a8dd4332078a0748a54048683ba32133c7ac8a65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_a_formula_reports_the_neutral_and_the_protonated_mass",
      "name": "test_a_formula_reports_the_neutral_and_the_protonated_mass",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L239-L246",
      "signature": "def test_a_formula_reports_the_neutral_and_the_protonated_mass(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "19c189c028788600f891007804ebb38479595a71fa1b13e37dc65d3ee0065b84",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MassCalculatorCliTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_negative_mode_subtracts_the_proton_instead_of_adding_it",
      "name": "test_negative_mode_subtracts_the_proton_instead_of_adding_it",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L248-L257",
      "signature": "def test_negative_mode_subtracts_the_proton_instead_of_adding_it(self) -> None: # [M-H]- for glucose is 179.05611; reporting 181.07 would be a sign bug # that silently invalidates every negative-mode search.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0841b1cdcce0f0dff361f22fa7188b5b580e59f67741c2dbf28f2e251bd21dac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MassCalculatorCliTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_neither_a_peptide_nor_a_formula_is_a_usage_error",
      "name": "test_neither_a_peptide_nor_a_formula_is_a_usage_error",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L259-L262",
      "signature": "def test_neither_a_peptide_nor_a_formula_is_a_usage_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f03e800eaf246778d07ad5524ce976f9194ee5561f51ecc6c7d251876d652f23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MassCalculatorCliTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_the_reference_peptide_masses_are_reported",
      "name": "test_the_reference_peptide_masses_are_reported",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L222-L237",
      "signature": "def test_the_reference_peptide_masses_are_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "877a749f8fab434b42ac6f31e6b23ab05b9a169ec7ba730855c8f6d65c988123",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MassCalculatorCliTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests",
      "name": "PlotTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L538-L594",
      "signature": "class PlotTests(ExampleExperimentMixin, TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "485af64d41e319f2d973c2a3f649eae9b0a4bd231a48d9e61e75451049bcae1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "name": "args",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L545-L548",
      "signature": "def args(self, **overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "22b87040bc0e78def35e62139522a1bcbe7bdb60d26973fd2dcb902d939addb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L539-L543",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbcdea54fa3282bc9729afc4c4524e5742d375062279d234309a3d4e57036411",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_a_plot_can_be_saved_through_the_cli",
      "name": "test_a_plot_can_be_saved_through_the_cli",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L587-L594",
      "signature": "def test_a_plot_can_be_saved_through_the_cli(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae99084f90ef7aa84054648e095a6cf568c25c40b3b2f77913be68dbb7c4c0a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_a_requested_retention_time_selects_the_nearest_scan",
      "name": "test_a_requested_retention_time_selects_the_nearest_scan",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L563-L569",
      "signature": "def test_a_requested_retention_time_selects_the_nearest_scan(self) -> None: # 21 s is nearest the 20 s scan; picking the first scan instead would # silently plot the wrong spectrum.",
      "exported": true,
      "origin": "ast",
      "body_hash": "830cbf4487062ff526470163c54543b82907c227ac629bf92bb743780e683fa1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_a_retention_time_beyond_the_run_clamps_to_the_last_scan",
      "name": "test_a_retention_time_beyond_the_run_clamps_to_the_last_scan",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L571-L573",
      "signature": "def test_a_retention_time_beyond_the_run_clamps_to_the_last_scan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8ea0ac9489b9d25a6e1b585a8f2d83afb469c4e70b4adf883ea7cec7cc90333",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_a_spectrum_is_selected_by_index",
      "name": "test_a_spectrum_is_selected_by_index",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L558-L561",
      "signature": "def test_a_spectrum_is_selected_by_index(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d2dc1fc4511007820eaacff11c5db477a093d6a143183d73e0eee23af72121f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_every_advertised_plot_kind_has_a_function",
      "name": "test_every_advertised_plot_kind_has_a_function",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L550-L556",
      "signature": "def test_every_advertised_plot_kind_has_a_function(self) -> None: # `--kind` uses `choices=list(PLOTS)`, and main() dispatches through the # same dict, so the two cannot drift; what matters is that the kinds # documented in the module docstring are all present.",
      "exported": true,
      "origin": "ast",
      "body_hash": "07541502c3976fef481a551174aa814bd34bcd3271b646b42a02c2a91bfad6bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_the_signal_map_plots_one_point_per_ms1_peak",
      "name": "test_the_signal_map_plots_one_point_per_ms1_peak",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L581-L585",
      "signature": "def test_the_signal_map_plots_one_point_per_ms1_peak(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38e4d584df24634a585975e33ce1c85d22a3db3ec16fc17b80bb412658f1f163",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#PlotTests.test_the_tic_plot_sums_ms1_scans_only",
      "name": "test_the_tic_plot_sums_ms1_scans_only",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L575-L579",
      "signature": "def test_the_tic_plot_sums_ms1_scans_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ba96d92928fc4072603bcec0707b8b34fda792ec85979f16e9e695288f88de1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlotTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ProtonMassTests",
      "name": "ProtonMassTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L155-L171",
      "signature": "class ProtonMassTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c707783c0295e3f8e69bbd91692830e7b1f3894274bd09706e7ff06677d6f924",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ProtonMassTests.test_both_scripts_that_convert_to_mz_use_the_same_constant",
      "name": "test_both_scripts_that_convert_to_mz_use_the_same_constant",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L161-L164",
      "signature": "def test_both_scripts_that_convert_to_mz_use_the_same_constant(self) -> None: # mass_calculator and digest_protein each define PROTON; tables produced # by the two would otherwise disagree in the last digits.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea8354435762dbe398ee5c138626461b55757f49e89328db95c8524be36dba7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProtonMassTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ProtonMassTests.test_the_proton_is_lighter_than_a_hydrogen_atom",
      "name": "test_the_proton_is_lighter_than_a_hydrogen_atom",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L166-L171",
      "signature": "def test_the_proton_is_lighter_than_a_hydrogen_atom(self) -> None: # A protonated ion has lost an electron. Using the neutral H mass # instead is the classic off-by-one-electron error, worth ~0.5 mDa.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7658025664bab7cf2d64eb48daa775f2dee353e9f2700e0a15328f4ed9256bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProtonMassTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#ProtonMassTests.test_the_proton_mass_matches_codata",
      "name": "test_the_proton_mass_matches_codata",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L156-L159",
      "signature": "def test_the_proton_mass_matches_codata(self) -> None: # Every reported m/z is (M + z*PROTON)/z, so an error here is a constant # offset on every row of every output table.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4622ea6e745e2143f997db76e3b36ea36082015b07d392f8f2b19e1010980b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ProtonMassTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L84-L98",
      "signature": "def run_script(name: str, *arguments: str, cwd: Path) -> subprocess.CompletedProcess",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6eeb5219547af7eb5f285031b9a6af7cdb20ce8279253770f3bab3aaf1ec5a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#spectrum",
      "name": "spectrum",
      "kind": "function",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L101-L114",
      "signature": "def spectrum(rt: float, level: int, peaks, precursor_mz: float | None = None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "983770edf6a16723baf4fa2920d555a1511cc5b1406d8fa33d286ab89ffe0da3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "name": "SpectrumTableTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L491-L535",
      "signature": "class SpectrumTableTests(ExampleExperimentMixin, TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5e922d2edfbe25799813df333582bad6f5bf6ac052da1814eb37c27c7f81a2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "name": "rows",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L494-L498",
      "signature": "def rows(self, experiment) -> list[dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0905b78a079739560f676353dc18869ad222bbd12977476e43648f61e48ee94a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_an_empty_scan_reports_zero_rather_than_failing",
      "name": "test_an_empty_scan_reports_zero_rather_than_failing",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L523-L529",
      "signature": "def test_an_empty_scan_reports_zero_rather_than_failing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b3104fe60a0fca060e7e2d5ded9165a8752796710fd13e54519d35302377129",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_every_scan_is_summarised_once_in_order",
      "name": "test_every_scan_is_summarised_once_in_order",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L500-L504",
      "signature": "def test_every_scan_is_summarised_once_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c93611101db5d78e68263e2e35dfa0a2bebdba6c234938e0f919f0193556e659",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_precursor_columns_are_filled_only_for_msn_scans",
      "name": "test_precursor_columns_are_filled_only_for_msn_scans",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L518-L521",
      "signature": "def test_precursor_columns_are_filled_only_for_msn_scans(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90ad1fe493a0f192a55fff56a908fc2c98a91326c1889e42ae4ea6e5a31c9d6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_base_peak_is_the_most_intense_peak_not_the_first",
      "name": "test_the_base_peak_is_the_most_intense_peak_not_the_first",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L511-L516",
      "signature": "def test_the_base_peak_is_the_most_intense_peak_not_the_first(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2453a0fa370f2fb421e03ae7a7709907e24a7bc4d71d1f8ff45c05080a5df12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_experiment_summary_reads_a_stored_file",
      "name": "test_the_experiment_summary_reads_a_stored_file",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L531-L535",
      "signature": "def test_the_experiment_summary_reads_a_stored_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "77c27426c8eb6da4d10103cbb9472d10452ab0882b37539ca4c0563af0c8f856",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_tic_is_the_sum_of_the_scan_intensities",
      "name": "test_the_tic_is_the_sum_of_the_scan_intensities",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L506-L509",
      "signature": "def test_the_tic_is_the_sum_of_the_scan_intensities(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f4b910f2ad2a2d4c87270e30eb2417f09732e3821b3fb1d9129b4c6d20e93ac",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpectrumTableTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "name": "StoreExperimentTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L441-L463",
      "signature": "class StoreExperimentTests(ExampleExperimentMixin, TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "06d91571afd007bb57b69e67c852d53d63be2df1d20367b1e571ebda153f46dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_an_mzml_round_trip_preserves_every_scan",
      "name": "test_an_mzml_round_trip_preserves_every_scan",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L446-L453",
      "signature": "def test_an_mzml_round_trip_preserves_every_scan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5799b0503add5af1c497452ba7988dd78839ea1e30fe381d4d048cf0ffdf942",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StoreExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_an_unknown_extension_names_the_supported_ones",
      "name": "test_an_unknown_extension_names_the_supported_ones",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L442-L444",
      "signature": "def test_an_unknown_extension_names_the_supported_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "42b3542414e345bee966e2bbc08e0f1157baef30468dfabd12dc41924660ffd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StoreExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_mgf_is_accepted_as_an_output_format",
      "name": "test_mgf_is_accepted_as_an_output_format",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L460-L463",
      "signature": "def test_mgf_is_accepted_as_an_output_format(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "825cd0201986cfc6d798849b3ad0e8d41457e4ac8dfd81a35c8172ce92ea28e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StoreExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_the_extension_test_is_case_insensitive",
      "name": "test_the_extension_test_is_case_insensitive",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L455-L458",
      "signature": "def test_the_extension_test_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c25563225f073d57f0ea1956b4f710840d3d50f123f6b0b58fe75b21fa0192f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StoreExperimentTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "name": "TemporaryDirectoryTestCase",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L131-L135",
      "signature": "class TemporaryDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "edfd6896219aad5689ef333fb5963fb4ed407f5ec249f13bb6d8b45f3bff181d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L132-L135",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests",
      "name": "TheoreticalSpectrumTests",
      "kind": "class",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L342-L378",
      "signature": "class TheoreticalSpectrumTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e72d7b4dac9e706d994a8494bbea9a78800b72ec464a47d02d79dde3fcae958e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_restricting_the_series_reduces_the_peak_count",
      "name": "test_restricting_the_series_reduces_the_peak_count",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L370-L378",
      "signature": "def test_restricting_the_series_reduces_the_peak_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a05e501042374d78791409141859cd08a184a5acabcfe2ddefc81fe4afa61c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TheoreticalSpectrumTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_the_default_series_omits_b1_as_openms_does",
      "name": "test_the_default_series_omits_b1_as_openms_does",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L363-L368",
      "signature": "def test_the_default_series_omits_b1_as_openms_does(self) -> None: # b+y for a 9-mer would be 16 peaks if b1 were generated; OpenMS leaves # it out because b1 ions are not observed, giving 15.",
      "exported": true,
      "origin": "ast",
      "body_hash": "626b8af5d103857a14a8c069f0d53946594d1c8dd64151cd09f8cc021fb63205",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TheoreticalSpectrumTests"
    },
    {
      "id": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_the_y_ion_series_of_the_reference_peptide",
      "name": "test_the_y_ion_series_of_the_reference_peptide",
      "kind": "method",
      "path": "tests/pyopenms/test_scripts.py",
      "span": "L343-L361",
      "signature": "def test_the_y_ion_series_of_the_reference_peptide(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7a535560867e77065dcc1f788347fadb3cb2ce62f6f1290b63f87d0cfe74fa6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TheoreticalSpectrumTests"
    },
    {
      "id": "tests/pysam/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pysam/test_scripts.py",
      "span": "L1-L287",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "60e962b04bd7d35737231dc4cb480ca0629599c37e46a9097bab9c2d9e2d4253",
      "chars": 11490,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#ArgumentValidatorTests",
      "name": "ArgumentValidatorTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L38-L62",
      "signature": "class ArgumentValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "872a8b782a1a43d122c74b0cbe93285b288069149f7427dfb853bee5e862198e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_non_numeric_input_raises",
      "name": "test_non_numeric_input_raises",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L51-L55",
      "signature": "def test_non_numeric_input_raises(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "91f1398e81303213ccd544b9209c11f9491e2578ee1adeb814d84d255f0d2fd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_nonnegative_int_admits_zero",
      "name": "test_nonnegative_int_admits_zero",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L46-L49",
      "signature": "def test_nonnegative_int_admits_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e39efd9d9e974d61228bc9f60fc175dd0b64f648a5718760bbaeb9ef9abb5001",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_positive_int_accepts_only_values_above_zero",
      "name": "test_positive_int_accepts_only_values_above_zero",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L39-L44",
      "signature": "def test_positive_int_accepts_only_values_above_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea999a6e229e41263e4357eb9e223dc8053a9d7727ca4cf84ee29c24b289c822",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_the_validators_are_shared_across_the_scripts",
      "name": "test_the_validators_are_shared_across_the_scripts",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L57-L62",
      "signature": "def test_the_validators_are_shared_across_the_scripts(self) -> None: # Three scripts define the same pair; they must agree.",
      "exported": true,
      "origin": "ast",
      "body_hash": "14f26ba77d26cdfa38546d80df74f81138662fe1f8eaf6e26ee24defbc4fa591",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentValidatorTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests",
      "name": "DestinationTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L125-L161",
      "signature": "class DestinationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc66d972fd3e055022b4424e4017d4f41de07430579be5ec99ab387c36f78cb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L126-L131",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f269310efc717a415e34c0243f4dbd096f94275754076c9fa358bd2f50bfa71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DestinationTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests.test_a_differently_spelled_path_to_the_input_is_also_refused",
      "name": "test_a_differently_spelled_path_to_the_input_is_also_refused",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L151-L155",
      "signature": "def test_a_differently_spelled_path_to_the_input_is_also_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6321354de3a6e8ee11d05104f2a353d505efc0180df41fb29ee3b774f73d10a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DestinationTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests.test_a_fresh_destination_is_accepted",
      "name": "test_a_fresh_destination_is_accepted",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L133-L136",
      "signature": "def test_a_fresh_destination_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4649b5a424b84a7f6c77bc09863beeb478cbf0263971ea974cd88e015d621e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DestinationTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests.test_a_missing_output_directory_is_refused",
      "name": "test_a_missing_output_directory_is_refused",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L157-L161",
      "signature": "def test_a_missing_output_directory_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f5fbd9e77660077c812e43dfd088216a8fb500dabbc55054e0b8ce88682a9f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DestinationTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests.test_an_existing_output_is_never_overwritten",
      "name": "test_an_existing_output_is_never_overwritten",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L138-L142",
      "signature": "def test_an_existing_output_is_never_overwritten(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7dd593f265c72112fa1478d69e2694277b974b273d99a652ef6e907a7ff7d74e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DestinationTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#DestinationTests.test_writing_over_the_input_is_refused",
      "name": "test_writing_over_the_input_is_refused",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L144-L149",
      "signature": "def test_writing_over_the_input_is_refused(self) -> None: # Truncating the input mid-filter would destroy the only copy. The # exists-check happens to fire first, so accept either refusal -- # what matters is that the call does not go through.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bebde388eaece32a845cf5acd25716f744924a5a130588366d1bf48699c13dc8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DestinationTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests",
      "name": "ExclusionTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L164-L252",
      "signature": "class ExclusionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7482378f851868bb1e596e7061ca60fb237148ebce7799dd78edcf4fa35cb5cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "name": "flags",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L168-L179",
      "signature": "def flags(**overrides) -> argparse.Namespace",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c2c7f2d440c6e4e6b41b316c7d599019bd8df423f9c8001f673e7c97f312c2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "name": "read",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L182-L195",
      "signature": "def read(**attributes)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4074e19b2dc3c9d9dfb03ec898eae485731363bc89ecf9be3ae68423e73d1b61",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.read.Read",
      "name": "Read",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L183-L190",
      "signature": "class Read",
      "exported": true,
      "origin": "ast",
      "body_hash": "94a9ac5f5c3b96279a4051def1bc87b64ba8b3998f18978cd0c7fb2085517378",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.test_a_clean_read_has_no_exclusion_reasons",
      "name": "test_a_clean_read_has_no_exclusion_reasons",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L197-L200",
      "signature": "def test_a_clean_read_has_no_exclusion_reasons(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f869acd3f3183f28ab3927cb5eb2f0d0fdee1cfa7419a7804395d74cbe7b902",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.test_a_read_below_the_mapq_threshold_is_dropped",
      "name": "test_a_read_below_the_mapq_threshold_is_dropped",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L223-L232",
      "signature": "def test_a_read_below_the_mapq_threshold_is_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "564d1e1f1646382b0c053599670faaa44e5bd6c5dcd22107660418c7f78d8823",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.test_each_flag_excludes_only_its_own_category",
      "name": "test_each_flag_excludes_only_its_own_category",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L202-L221",
      "signature": "def test_each_flag_excludes_only_its_own_category(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9678941766ff8f398b20b02495b399f41e9e9e47096b21d84403e3088492057",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.test_every_applicable_reason_is_reported_not_just_the_first",
      "name": "test_every_applicable_reason_is_reported_not_just_the_first",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L244-L252",
      "signature": "def test_every_applicable_reason_is_reported_not_just_the_first(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a43d79491faa9a1f5b25872c908cb75f584a8581727e07503ff9a577b53958a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#ExclusionTests.test_improper_pairs_are_dropped_only_when_asked",
      "name": "test_improper_pairs_are_dropped_only_when_asked",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L234-L242",
      "signature": "def test_improper_pairs_are_dropped_only_when_asked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b299fd9a32e6bc62c53239ad3b6e91087f66ee358e1d1c15d8026ab411da9a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExclusionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#FileModeTests",
      "name": "FileModeTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L65-L88",
      "signature": "class FileModeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e87632af990176ed713e8f752a4beed2ab2a0277797c32370014d25197e5a2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#FileModeTests.test_an_unrecognised_suffix_is_refused",
      "name": "test_an_unrecognised_suffix_is_refused",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L75-L79",
      "signature": "def test_an_unrecognised_suffix_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "57b50946dd4c02f3a82e15a9f416f42b5d8f7a3356ff6f0e0f063d89e3e4705b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileModeTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#FileModeTests.test_the_htslib_mode_follows_the_suffix",
      "name": "test_the_htslib_mode_follows_the_suffix",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L66-L70",
      "signature": "def test_the_htslib_mode_follows_the_suffix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "08bf55db49995327c6b95993b53a805a29fbd8d377afd3cb645c465be0726939",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileModeTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#FileModeTests.test_the_suffix_check_is_case_insensitive",
      "name": "test_the_suffix_check_is_case_insensitive",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L72-L73",
      "signature": "def test_the_suffix_check_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "28b4465f3f25f8065f2159cbf4b8fe098a2129880cb4a4b97b238adee4f3be6e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileModeTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#FileModeTests.test_the_writing_mode_differs_from_the_reading_mode",
      "name": "test_the_writing_mode_differs_from_the_reading_mode",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L81-L88",
      "signature": "def test_the_writing_mode_differs_from_the_reading_mode(self) -> None: # htslib needs \"wb\" to write a BAM; reusing \"rb\" silently produces SAM.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb96a062d342671dc6664bcf0a7c5eb7739a41e153e80a90d73c803efae30635",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileModeTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#KindDetectionTests",
      "name": "KindDetectionTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L255-L282",
      "signature": "class KindDetectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc738061cb3f1d190c3c7f0a99667dd3ea77ed1a4188f43a90d43567da8db80b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#KindDetectionTests.test_alignment_suffixes_are_detected",
      "name": "test_alignment_suffixes_are_detected",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L262-L265",
      "signature": "def test_alignment_suffixes_are_detected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e40da6eb16b5dd85a465e64d5e3382e387d3954fdfe760892d16901546005a83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KindDetectionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#KindDetectionTests.test_detection_is_case_insensitive",
      "name": "test_detection_is_case_insensitive",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L272-L273",
      "signature": "def test_detection_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f7a47db4ecac9f486e4ebc4c1a43e5b1907ed7b6cbc5be9850c79c3c92184bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KindDetectionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#KindDetectionTests.test_every_detected_kind_is_one_the_script_handles",
      "name": "test_every_detected_kind_is_one_the_script_handles",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L275-L282",
      "signature": "def test_every_detected_kind_is_one_the_script_handles(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ee442352608efb13599cb78187517e4d994ccce1c52eeb0ad0828eebc2937de",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KindDetectionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#KindDetectionTests.test_the_documented_kinds_are_the_advertised_set",
      "name": "test_the_documented_kinds_are_the_advertised_set",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L256-L260",
      "signature": "def test_the_documented_kinds_are_the_advertised_set(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc38d31601306d52a8002b069a73a8b2b9a1249fbb59b41c272136c2b172d2b1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KindDetectionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#KindDetectionTests.test_variant_suffixes_are_detected",
      "name": "test_variant_suffixes_are_detected",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L267-L270",
      "signature": "def test_variant_suffixes_are_detected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f3570fe436a8c4c85ed4c0c9ed0f813eef3651885a04d93390961350400c461",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KindDetectionTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#LocalFileTests",
      "name": "LocalFileTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L105-L122",
      "signature": "class LocalFileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "40e9b9613b5499e2e4c5ca0387a063cfcfd809dfcc30c0accfed96e2317d99de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#LocalFileTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L106-L109",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalFileTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#LocalFileTests.test_a_directory_is_not_a_regular_file",
      "name": "test_a_directory_is_not_a_regular_file",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L120-L122",
      "signature": "def test_a_directory_is_not_a_regular_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24396dcbc50e10df467a3997cc6753a5de1499b52f309df02206e946dc494113",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalFileTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#LocalFileTests.test_a_missing_path_is_reported_with_its_label",
      "name": "test_a_missing_path_is_reported_with_its_label",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L116-L118",
      "signature": "def test_a_missing_path_is_reported_with_its_label(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab9b4e0d4335ccbef4f4fc34badd59c2d32942761eaa162fe7c3a28f50ef036e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalFileTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#LocalFileTests.test_an_existing_file_is_returned",
      "name": "test_an_existing_file_is_returned",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L111-L114",
      "signature": "def test_an_existing_file_is_returned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "254da5ff9ec73a5f462d4bd2504a032b0c4ca6f0e9533259efc7c09d1a456d98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalFileTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#RatioTests",
      "name": "RatioTests",
      "kind": "class",
      "path": "tests/pysam/test_scripts.py",
      "span": "L91-L102",
      "signature": "class RatioTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7080df733d95e87f306948d71497bb730881c36cd44f6f4b974eadba9c04f7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pysam/test_scripts.py#RatioTests.test_a_ratio_over_zero_is_none_rather_than_an_error",
      "name": "test_a_ratio_over_zero_is_none_rather_than_an_error",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L92-L95",
      "signature": "def test_a_ratio_over_zero_is_none_rather_than_an_error(self) -> None: # An empty BAM must report \"no reads\", not divide by zero.",
      "exported": true,
      "origin": "ast",
      "body_hash": "0eff413f0b04336a3a5f57ce6ffcf191105521cbf7dbd8041a53496a10975b10",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#RatioTests.test_a_zero_numerator_is_zero_not_none",
      "name": "test_a_zero_numerator_is_zero_not_none",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L101-L102",
      "signature": "def test_a_zero_numerator_is_zero_not_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54b675ee3dc8ae278d738efc4606bc1f529a364063d1b9b09b5cef3a92b22ead",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/pysam/test_scripts.py#RatioTests.test_ordinary_ratios_and_averages",
      "name": "test_ordinary_ratios_and_averages",
      "kind": "method",
      "path": "tests/pysam/test_scripts.py",
      "span": "L97-L99",
      "signature": "def test_ordinary_ratios_and_averages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccd6400cf8280813403f721d577128f6d1f9555bad574eb9daa1fb9fae187ba8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RatioTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L1-L230",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "06b8714a2ce2d036aff0b88a3734c1220f1ef10fcdfa88fb17aab9be20c00fc4",
      "chars": 7966,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#BenchmarkTests",
      "name": "BenchmarkTests",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L128-L161",
      "signature": "class BenchmarkTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d19773be691afa18e2fc7fad3e58a5fe503378bd38c7aecf69949a416e913cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#BenchmarkTests.test_many_run_prediction_schema",
      "name": "test_many_run_prediction_schema",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L129-L143",
      "signature": "def test_many_run_prediction_schema(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f5d06ff8b6699aa84ffa086228c8b5b0b002ae3cf960285a78f20c5cf894ea5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BenchmarkTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#BenchmarkTests.test_many_run_requires_five_runs",
      "name": "test_many_run_requires_five_runs",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L145-L152",
      "signature": "def test_many_run_requires_five_runs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd615768472870d4251518849b378cb28d207da2c34148979c40cb8f7de6e63c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BenchmarkTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#BenchmarkTests.test_non_finite_predictions_are_rejected",
      "name": "test_non_finite_predictions_are_rejected",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L154-L161",
      "signature": "def test_non_finite_predictions_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "faa5533019b6ab804cbf70bc9e5dea79b10c44978c80b1aa1d394c0aae9103c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BenchmarkTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#CacheAuditTests",
      "name": "CacheAuditTests",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L209-L220",
      "signature": "class CacheAuditTests(WorkingDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f615c88814d3b056f9af5bb39bfbb63f2ee87ebe4dae33d7b1155dd59fc3754",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#CacheAuditTests.test_manifest_is_bounded_and_skips_symlinks",
      "name": "test_manifest_is_bounded_and_skips_symlinks",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L210-L220",
      "signature": "def test_manifest_is_bounded_and_skips_symlinks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8e635b19315527501fc887126af06c16663803a6ffa76d38e64db2d9de0d49f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CacheAuditTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#CommonTests",
      "name": "CommonTests",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L39-L58",
      "signature": "class CommonTests(WorkingDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "98dfb94226dcbcda6c03f646f065ec396c5394e61c8272f0f3b243c20800d96b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#CommonTests.test_emit_json_writes_atomically_and_refuses_overwrite",
      "name": "test_emit_json_writes_atomically_and_refuses_overwrite",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L46-L51",
      "signature": "def test_emit_json_writes_atomically_and_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb9f7937534f97221f0278db88c0ea0ba4599dd80784df39ce1c2cfa98f7ef3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#CommonTests.test_fraction_validation",
      "name": "test_fraction_validation",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L53-L58",
      "signature": "def test_fraction_validation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dacc42eae5bd8c3f84425c9e6febd1fde87efb199c55ce8a27e73e8cf34f489",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#CommonTests.test_safe_paths_reject_escape_and_absolute_paths",
      "name": "test_safe_paths_reject_escape_and_absolute_paths",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L40-L44",
      "signature": "def test_safe_paths_reject_escape_and_absolute_paths(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f94574d09f5b10c25c9f0886ce3504747bbdc68d63d47d5c6b12589bbfab5d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#DiscoveryTests",
      "name": "DiscoveryTests",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L61-L80",
      "signature": "class DiscoveryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0840cf57928e1c077c789ce54fa9dbd681343c1839d6aeefc4a1b3ddc369162",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#DiscoveryTests.test_dataset_registry_is_bounded_without_loader",
      "name": "test_dataset_registry_is_bounded_without_loader",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L62-L80",
      "signature": "def test_dataset_registry_is_bounded_without_loader(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4bcd43f15c88ec992fc50ab9de20dacea5b5e88d287bedbaf495566b24bdc93a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiscoveryTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#LoaderTests",
      "name": "LoaderTests",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L83-L125",
      "signature": "class LoaderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d80a42e4a6ec9d8e18e03dd3e210b6c9a87e095299580a8f666fa5c5ec0ec600",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#LoaderTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L84-L92",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ba5d622bfc8d3d4ce16ecfe102c4d0dbde7014889e29f6fe968dd40da57b3f2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoaderTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#LoaderTests.test_cold_split_requires_columns",
      "name": "test_cold_split_requires_columns",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L105-L114",
      "signature": "def test_cold_split_requires_columns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9f0c7b8ee38a043b71193b135fdf7337654ebe1dc06933c9f473e1612064b5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoaderTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#LoaderTests.test_scaffold_request_uses_exact_registry_name",
      "name": "test_scaffold_request_uses_exact_registry_name",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L94-L103",
      "signature": "def test_scaffold_request_uses_exact_registry_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7311278d03adadcf5affd738dc9fb0128f67b42d65144273278603ef7ef8ecb8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoaderTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#LoaderTests.test_verified_time_split",
      "name": "test_verified_time_split",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L116-L125",
      "signature": "def test_verified_time_split(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49f1f8336bc4e9c54e679d69a6a1d0874d845998eda297cc727d58f642196fe4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LoaderTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#MolecularTests",
      "name": "MolecularTests",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L164-L206",
      "signature": "class MolecularTests(WorkingDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "673ebd8cdebf0d368aac5551bc72fc6305df73ce4ffd70cb7259b4a5a7b85d4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#MolecularTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L165-L181",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9ff4f4a0cee18d75a1af987e72bad086a26d47748a5deceecf4f59b4d6aef4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolecularTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#MolecularTests.test_oracle_classification_is_explicit",
      "name": "test_oracle_classification_is_explicit",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L183-L199",
      "signature": "def test_oracle_classification_is_explicit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d110815ea4b5bb2f04155093e25c4f8cf64256e2461e4bf1146d9a671ee80cf3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolecularTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#MolecularTests.test_smiles_input_is_bounded",
      "name": "test_smiles_input_is_bounded",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L201-L206",
      "signature": "def test_smiles_input_is_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fd88ff9c533b9d3fc7df82752359876d6da3fc24f520bb0232bf46c8320bd79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MolecularTests"
    },
    {
      "id": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "name": "WorkingDirectoryTestCase",
      "kind": "class",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L28-L36",
      "signature": "class WorkingDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a14c0f376fff091260215bee56335e7fc0d92d13addc0460c958124536049d10",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L29-L32",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8d6e668542db7975325fa7f4566ad51208764fef8197abc1fd797345cf8903a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkingDirectoryTestCase"
    },
    {
      "id": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase.tearDown",
      "name": "tearDown",
      "kind": "method",
      "path": "tests/pytdc/test_scripts.py",
      "span": "L34-L36",
      "signature": "def tearDown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4e9e8b7b5ed11b6b829c46a68a0420d75c25a44878176fa53ffd81cf2ca10af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkingDirectoryTestCase"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L1-L444",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "bdeb0656b84cb5eb1d5e683a3868346db276319bbd0104d4644f8d372b1ced79",
      "chars": 20141,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#build_or_skip",
      "name": "build_or_skip",
      "kind": "function",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L68-L87",
      "signature": "def build_or_skip(test: unittest.TestCase, builder, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f6af122c371fa4cd794fead8a60b378eeb653e3e1bde9561bfded849eb0adbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "name": "DataModuleTests",
      "kind": "class",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L181-L277",
      "signature": "class DataModuleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "294ae1debf300d0f2fb8bebf09413756459be5dbdecbe8370beae8b3d6affb93",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L185-L190",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9734757f2d0faba5d568da5a36b2397cfa7244bf9a2b09dbdf386685686c84f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_a_batch_has_the_declared_shape_and_dtypes",
      "name": "test_a_batch_has_the_declared_shape_and_dtypes",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L227-L233",
      "signature": "def test_a_batch_has_the_declared_shape_and_dtypes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f886b8472cb6abfa19a2d25cd2796beb0424e8e7eca7e180d5659991922955c3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_a_different_ratio_moves_the_boundary",
      "name": "test_a_different_ratio_moves_the_boundary",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L235-L241",
      "signature": "def test_a_different_ratio_moves_the_boundary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e1db107e6f20d120737421b1d65955c5203ceca90247c04a26cdb3235c83eda",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_a_transform_is_applied_to_every_sample",
      "name": "test_a_transform_is_applied_to_every_sample",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L269-L277",
      "signature": "def test_a_transform_is_applied_to_every_sample(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8a935b1f43b70c71fa22215de155efd4a677406c41c3905eeb38e5c7beecf0a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_teardown_releases_only_the_stage_it_was_given",
      "name": "test_teardown_releases_only_the_stage_it_was_given",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L261-L267",
      "signature": "def test_teardown_releases_only_the_stage_it_was_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b37fe00f689cf1eadc6e35303815cbdd8ef7f934d3b595e2dffeaca7943a4e6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_checkpointed_state_round_trips",
      "name": "test_the_checkpointed_state_round_trips",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L254-L259",
      "signature": "def test_the_checkpointed_state_round_trips(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "19c1d0e5ce6c51fbd68197dfa0617393084ad5d7948d3eabc9755478211f9faa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_split_honours_the_requested_ratio",
      "name": "test_the_split_honours_the_requested_ratio",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L192-L197",
      "signature": "def test_the_split_honours_the_requested_ratio(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b310ca34bbe9ad67d36e9b5dbfa17a89339f2ea05f56c00813449c1e908dba7a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_split_is_seeded_so_two_runs_agree",
      "name": "test_the_split_is_seeded_so_two_runs_agree",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L199-L211",
      "signature": "def test_the_split_is_seeded_so_two_runs_agree(self) -> None: # random_split is given an explicit generator seed; without it the # validation set would change every run and every resumed checkpoint.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e830a473eb8bbd82f7d1624de1fc0bc205fee3da303afe60743368f03fea1aa1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_test_and_predict_stages_build_their_own_datasets",
      "name": "test_the_test_and_predict_stages_build_their_own_datasets",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L243-L252",
      "signature": "def test_the_test_and_predict_stages_build_their_own_datasets(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "42c31f90ff83996d8335899efbe0f92323dd8818450cf93e3e121ead973f8f2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_training_loader_shuffles_and_drops_the_short_batch",
      "name": "test_the_training_loader_shuffles_and_drops_the_short_batch",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L213-L218",
      "signature": "def test_the_training_loader_shuffles_and_drops_the_short_batch(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bdfd61730817e5ba4734ee406f17c0de1b3dea5204dffed80fdc278b18e45c0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_validation_loader_keeps_order_and_every_sample",
      "name": "test_the_validation_loader_keeps_order_and_every_sample",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L220-L225",
      "signature": "def test_the_validation_loader_keeps_order_and_every_sample(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b176bfa57ad667a1a3db397221b15ee27dacf1497527f99945115c15f460f96c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataModuleTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests",
      "name": "ModuleArchitectureTests",
      "kind": "class",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L90-L133",
      "signature": "class ModuleArchitectureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e7bfcee252c4a8b28ccba36f614b216a2894e705be3396e6186221382643c08",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_dropout_is_active_in_training_and_disabled_in_eval",
      "name": "test_dropout_is_active_in_training_and_disabled_in_eval",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L119-L133",
      "signature": "def test_dropout_is_active_in_training_and_disabled_in_eval(self) -> None: # A template that leaves dropout on at inference reports noisy metrics.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6633717b0c600a5173a9b9647daa90a92ba7b0ca81bfe89b7b552c0042101e9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModuleArchitectureTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_the_hyperparameters_are_saved_and_reachable",
      "name": "test_the_hyperparameters_are_saved_and_reachable",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L91-L100",
      "signature": "def test_the_hyperparameters_are_saved_and_reachable(self) -> None: # save_hyperparameters() is what makes checkpoints reloadable without # repeating the constructor arguments.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4628efb1403c85c852e961a2132b039ff9be791e95c9201a14d55e3b285c6d72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModuleArchitectureTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_the_network_maps_784_inputs_to_10_logits",
      "name": "test_the_network_maps_784_inputs_to_10_logits",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L102-L105",
      "signature": "def test_the_network_maps_784_inputs_to_10_logits(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "94ec266aac437493ed3c50c4496eefa02c45a780abc04fe2f987439e42e39b00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModuleArchitectureTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_the_parameter_count_is_the_two_dense_layers",
      "name": "test_the_parameter_count_is_the_two_dense_layers",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L107-L117",
      "signature": "def test_the_parameter_count_is_the_two_dense_layers(self) -> None: # 784*h + h + h*10 + 10, which the demo block now prints correctly.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ada2dbd283f76d2321fb9b450000f33038a49d5ef52bd0e4d5d024914a7f5cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModuleArchitectureTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "name": "OptimiserConfigurationTests",
      "kind": "class",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L136-L178",
      "signature": "class OptimiserConfigurationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "54f974477e4df172cce7de37d48e2dec20ecf36ede4a616c35d2c02adb19488b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L137-L143",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cbbcb4bc7f993983bf94369480e853a2bafea6c76edc980f5e102dbe0b195ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimiserConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_it_returns_an_adam_optimiser_at_the_requested_learning_rate",
      "name": "test_it_returns_an_adam_optimiser_at_the_requested_learning_rate",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L145-L149",
      "signature": "def test_it_returns_an_adam_optimiser_at_the_requested_learning_rate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6c0f0a1423a0deec4744984e23c6088e6dec3430c68836a7b3c5cb05c0f6a9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimiserConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_optimiser_owns_every_model_parameter",
      "name": "test_the_optimiser_owns_every_model_parameter",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L151-L156",
      "signature": "def test_the_optimiser_owns_every_model_parameter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb06fa1a52eea66a083ed54eb534e18ad482a8a18d21439cc1ac522d527f23db",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimiserConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_plateau_scheduler_actually_reduces_the_rate",
      "name": "test_the_plateau_scheduler_actually_reduces_the_rate",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L172-L178",
      "signature": "def test_the_plateau_scheduler_actually_reduces_the_rate(self) -> None: # patience=5 means six non-improving epochs before the drop.",
      "exported": true,
      "origin": "ast",
      "body_hash": "373ae9e85f41082bf08dcd14e374fce4c780d28ec1980b7659c111fa1dde05e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimiserConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_scheduler_halves_the_rate_on_a_five_epoch_plateau",
      "name": "test_the_scheduler_halves_the_rate_on_a_five_epoch_plateau",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L158-L163",
      "signature": "def test_the_scheduler_halves_the_rate_on_a_five_epoch_plateau(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "56c53ee920a457d78c692514e14154e37f542f116e7a0ad48ff6894434c841cb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimiserConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_scheduler_watches_a_metric_the_module_logs",
      "name": "test_the_scheduler_watches_a_metric_the_module_logs",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L165-L170",
      "signature": "def test_the_scheduler_watches_a_metric_the_module_logs(self) -> None: # Lightning raises at the end of the first epoch if the monitored key # was never logged, so these two have to agree.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccec3e2bcf058bedee80b7999fe3abd00665058f584141eaaf632f7557fb71f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimiserConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "name": "TrainerConfigurationTests",
      "kind": "class",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L280-L362",
      "signature": "class TrainerConfigurationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "48a16656fdb61ddb77a5fd2a859851991c6740957096c5f283680955e3278cc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_basic_trainer_runs_ten_epochs_on_whatever_is_available",
      "name": "test_the_basic_trainer_runs_ten_epochs_on_whatever_is_available",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L281-L284",
      "signature": "def test_the_basic_trainer_runs_ten_epochs_on_whatever_is_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "063c3408eaf8555e862f4a1d71aeefd527bfb74b4208cde9e043d15110930964",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_ddp_trainer_shards_across_the_requested_gpus",
      "name": "test_the_ddp_trainer_shards_across_the_requested_gpus",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L341-L346",
      "signature": "def test_the_ddp_trainer_shards_across_the_requested_gpus(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9c5f412852473c1046e0fe2aa73c64cf2526d335bc1f4bf55239c3c3afadf87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_debug_trainer_pins_itself_to_the_cpu",
      "name": "test_the_debug_trainer_pins_itself_to_the_cpu",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L286-L294",
      "signature": "def test_the_debug_trainer_pins_itself_to_the_cpu(self) -> None: # Debugging on an accelerator hides the errors you are debugging, and # fast_dev_run is what makes it a debug configuration at all.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bc41244d1bd37d99ed53fa8ff28f54ed3641916177bd9a99e6cf5b7f1caa73b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_deepspeed_trainer_selects_the_requested_stage",
      "name": "test_the_deepspeed_trainer_selects_the_requested_stage",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L357-L362",
      "signature": "def test_the_deepspeed_trainer_selects_the_requested_stage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5324371c25f2c105d04b78dafe9c00d7cbeec40b655a8960b603e5bff3c19b03",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_fsdp_trainer_uses_bfloat16_and_accumulates",
      "name": "test_the_fsdp_trainer_uses_bfloat16_and_accumulates",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L349-L355",
      "signature": "def test_the_fsdp_trainer_uses_bfloat16_and_accumulates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e01787fea8fd63bf87848bc5934158ddc3832532371f03ff014c46e4ccb25eed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_overfit_trainer_restricts_itself_to_the_requested_batches",
      "name": "test_the_overfit_trainer_restricts_itself_to_the_requested_batches",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L304-L307",
      "signature": "def test_the_overfit_trainer_restricts_itself_to_the_requested_batches(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9db6d88343f37ae7e6f4081e63dca8d63ad5010015e15003dd893d0488dc5d72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_production_trainer_checkpoints_stops_early_and_tracks_the_rate",
      "name": "test_the_production_trainer_checkpoints_stops_early_and_tracks_the_rate",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L309-L319",
      "signature": "def test_the_production_trainer_checkpoints_stops_early_and_tracks_the_rate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e4f15ac2aff53f117a964439d97137b019e97ff25d42f13f6354e2ceb7d75dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_reproducible_trainer_seeds_and_pins_full_precision",
      "name": "test_the_reproducible_trainer_seeds_and_pins_full_precision",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L332-L338",
      "signature": "def test_the_reproducible_trainer_seeds_and_pins_full_precision(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "827b1ec57641f6293b05e47f349725f267cc288e7c46016e9b82c9ebf7a7ecea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_time_limited_trainer_is_a_valid_checkpoint_configuration",
      "name": "test_the_time_limited_trainer_is_a_valid_checkpoint_configuration",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L321-L330",
      "signature": "def test_the_time_limited_trainer_is_a_valid_checkpoint_configuration(self) -> None: # The regression: save_top_k=3 with monitor=None made this function # raise on every machine, GPU or not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3eeca0419f19448e303c827c9569698c25b5047db3a59b84a7ccbba11e1e7949",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_tuning_trainer_writes_nothing_and_halves_the_data",
      "name": "test_the_tuning_trainer_writes_nothing_and_halves_the_data",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L296-L302",
      "signature": "def test_the_tuning_trainer_writes_nothing_and_halves_the_data(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c4fc9cee281727323cfb0f6007e0911b136d0cf0431a058ce92670d791440a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainerConfigurationTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "name": "TrainingLoopTests",
      "kind": "class",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L365-L439",
      "signature": "class TrainingLoopTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "28d330dccd28278c6d87d959f4475ed3341505dd59731df1a6a20d5e9559fa6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L369-L391",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "17a1b2d558d78eab320830fe442ec394aba7cf94d0fa543af5cf8f43c6b38635",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.tearDownClass",
      "name": "tearDownClass",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L394-L395",
      "signature": "def tearDownClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7088f3df806706c16b140c1b31122179b16539d2621265a8bf95b75668d11ea2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_a_test_pass_reports_its_own_metrics",
      "name": "test_a_test_pass_reports_its_own_metrics",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L417-L419",
      "signature": "def test_a_test_pass_reports_its_own_metrics(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ed9cb4c062309661f8fc1682f2aba4b8995e31fef6f1d48b9a792f4cf3b63c7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_prediction_returns_one_class_index_per_sample",
      "name": "test_prediction_returns_one_class_index_per_sample",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L421-L426",
      "signature": "def test_prediction_returns_one_class_index_per_sample(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1b1aaf28e1485365005e0f47288409e63693de2f68339c564e0e426963194e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_the_fit_logs_the_metrics_the_template_documents",
      "name": "test_the_fit_logs_the_metrics_the_template_documents",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L397-L402",
      "signature": "def test_the_fit_logs_the_metrics_the_template_documents(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f94da0855e78561c7c85a614fa09a59e5098c4a0c3d49a4ae3803dab1048197",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_the_logged_learning_rate_is_the_configured_one",
      "name": "test_the_logged_learning_rate_is_the_configured_one",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L404-L407",
      "signature": "def test_the_logged_learning_rate_is_the_configured_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d13c5b59ae7c795020cbc9079ee653cca3d7718d177f1200ef0dd6e9690c5b12",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_the_losses_are_finite_and_the_accuracies_are_proportions",
      "name": "test_the_losses_are_finite_and_the_accuracies_are_proportions",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L409-L415",
      "signature": "def test_the_losses_are_finite_and_the_accuracies_are_proportions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d8c651564419453d63ea783bad55ee1ab8cb98fe0a9d4633bf98bb7892c3a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_training_moved_the_weights",
      "name": "test_training_moved_the_weights",
      "kind": "method",
      "path": "tests/pytorch-lightning/test_scripts.py",
      "span": "L428-L439",
      "signature": "def test_training_moved_the_weights(self) -> None: # A fit that leaves every parameter untouched has not trained.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f3a4525082240888eed042a8a4334953dd97089028b8e727f064afb823e38f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingLoopTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L1-L386",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "368f256642b2b7b384dc51ec862e4e60679075030076eb0577e1f2cdf41b2d47",
      "chars": 17949,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "name": "BackendInspectionTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L333-L381",
      "signature": "class BackendInspectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed6b9b1dea5907548e9bd3771509b5d6d312ff01180b6b229fc89c78dfc68208",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L337-L343",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f10d4fa8224f75ea90dee3b36732fb7ee83355f062e19ad528f8c077d51bbcb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_a_five_qubit_line_has_eight_directed_coupling_edges",
      "name": "test_a_five_qubit_line_has_eight_directed_coupling_edges",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L353-L360",
      "signature": "def test_a_five_qubit_line_has_eight_directed_coupling_edges(self) -> None: # Manila is a linear chain 0-1-2-3-4: four links, both directions.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bfab746557e5548c8c83a29d8f32e4abe1ac2db1fc2e4c0a8af88aece10a871",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_control_flow_support_is_reported_from_the_target",
      "name": "test_control_flow_support_is_reported_from_the_target",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L368-L371",
      "signature": "def test_control_flow_support_is_reported_from_the_target(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a2f16f17dfd11cbe9dee9eef0faf31a7532832d2d80f58c9a8790a14937f05f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_fractional_gates_are_not_claimed_on_a_backend_without_them",
      "name": "test_fractional_gates_are_not_claimed_on_a_backend_without_them",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L373-L377",
      "signature": "def test_fractional_gates_are_not_claimed_on_a_backend_without_them(self) -> None: # Manila's basis is rz/sx/x/cx, so neither rx nor rzz is present and the # report must not advertise fractional-gate support.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3c7d86184ff2b35213a55f68f4caaaa3396e269668c8ae785a77d7ddc41bb737",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_inspecting_a_backend_submits_no_jobs",
      "name": "test_inspecting_a_backend_submits_no_jobs",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L345-L347",
      "signature": "def test_inspecting_a_backend_submits_no_jobs(self) -> None: # The script's central promise: it reads a target, it never queues work.",
      "exported": true,
      "origin": "ast",
      "body_hash": "96fe746dde23573cbf56736b68ed4d5ef5e3377b8e86240b8a318c2c8b00b81d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_the_backend_identity_is_reported",
      "name": "test_the_backend_identity_is_reported",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L349-L351",
      "signature": "def test_the_backend_identity_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c8d0493d5d620336f2bfd4ab4547e4758f0c84d90a0bb01b37a872b357cc2ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_the_report_survives_json_serialisation",
      "name": "test_the_report_survives_json_serialisation",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L379-L381",
      "signature": "def test_the_report_survives_json_serialisation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "80d924c627f063bf2e1ddb5ec218d2c6eee151a9474574be0c38ef66d018f6c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_the_reported_basis_gates_are_the_targets_own",
      "name": "test_the_reported_basis_gates_are_the_targets_own",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L362-L366",
      "signature": "def test_the_reported_basis_gates_are_the_targets_own(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b12dc6a128079fa9269c730aa7e4ff245cecfe32552ea4109599698021cbaa8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendInspectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendSelectionTests",
      "name": "BackendSelectionTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L293-L330",
      "signature": "class BackendSelectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "454528caf9c42ae3e32fa1fbf34c075b4880309e163c304a4b5dc6a0136d14c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_a_named_backend_is_fetched_by_name",
      "name": "test_a_named_backend_is_fetched_by_name",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L294-L300",
      "signature": "def test_a_named_backend_is_fetched_by_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35f117eebd3a159ba5aa7f3522b2fd16d6e0a6212d8c20f500e43d40e1f3449b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendSelectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_the_fractional_gate_flag_is_forwarded_only_when_it_is_set",
      "name": "test_the_fractional_gate_flag_is_forwarded_only_when_it_is_set",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L318-L330",
      "signature": "def test_the_fractional_gate_flag_is_forwarded_only_when_it_is_set(self) -> None: # None must mean \"use the service default\", not \"disable\" -- passing # use_fractional_gates=False changes which target you get back.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6887b2efeabc57c2ad996db83fde3fb51e32b6771e2c49e2b734e57143802d09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendSelectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_without_a_name_the_least_busy_real_device_is_selected",
      "name": "test_without_a_name_the_least_busy_real_device_is_selected",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L302-L316",
      "signature": "def test_without_a_name_the_least_busy_real_device_is_selected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "70b3beed75ece960463d2b7747078c8342447f9eda32c985b083e921b9f21975",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BackendSelectionTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "name": "EnvironmentReportTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L74-L160",
      "signature": "class EnvironmentReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b5757d30135f3c62ebb01a582d89527fe88271dc05a8a879db23282bab226430",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L75-L78",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51a46f39379747f02228b52d26d80cfcb7e082c4660f665d543ea1f604ba305a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_a_clean_namespace_reports_no_legacy_terra",
      "name": "test_a_clean_namespace_reports_no_legacy_terra",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L149-L154",
      "signature": "def test_a_clean_namespace_reports_no_legacy_terra(self) -> None: # Mixing qiskit-terra with qiskit 2.x is unrecoverable, so the script # must say so; with no terra installed the field stays empty.",
      "exported": true,
      "origin": "ast",
      "body_hash": "337a4494f10cea0885233b90a352edbe460c11db7fb2ed3d60272c97c843c836",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_a_healthy_environment_reports_no_errors",
      "name": "test_a_healthy_environment_reports_no_errors",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L107-L108",
      "signature": "def test_a_healthy_environment_reports_no_errors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7a5fe224de27edcf7928b7941b39ef723a1e11f5fe81dff28d40fda33503c260",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_installed_versions_are_read_from_the_metadata",
      "name": "test_installed_versions_are_read_from_the_metadata",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L110-L113",
      "signature": "def test_installed_versions_are_read_from_the_metadata(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8955155dc99d119dd2058cf9e89176d7aa9d569bfca8d8afbfda8ba2b8e3b796",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_ok_is_exactly_the_absence_of_errors",
      "name": "test_ok_is_exactly_the_absence_of_errors",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L103-L105",
      "signature": "def test_ok_is_exactly_the_absence_of_errors(self) -> None: # main() turns this into the process exit code.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f09c68cc769d3997bae1d83f3d878270f0565226abcb28e828c451a66881fd4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_qiskit_alone_is_required_by_default",
      "name": "test_qiskit_alone_is_required_by_default",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L80-L86",
      "signature": "def test_qiskit_alone_is_required_by_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10f05497f82918f873599ac5cb542afe2be7c0a43efbccb30afcd94828792d41",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_the_core_api_smoke_check_passes_on_a_working_install",
      "name": "test_the_core_api_smoke_check_passes_on_a_working_install",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L97-L101",
      "signature": "def test_the_core_api_smoke_check_passes_on_a_working_install(self) -> None: # This is the whole point of the script: the imports it exercises are # the ones every documented workflow starts from.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8e0af3c54edc0c266547d852bcd69ffba1365ce634353928f735d07ad098936",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_the_optional_extras_become_required_on_request",
      "name": "test_the_optional_extras_become_required_on_request",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L88-L95",
      "signature": "def test_the_optional_extras_become_required_on_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfc4411211c7f60e6c0416a6afe7dbce1aa772f5c4151f5b8dc1c1e86a2884f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_the_report_survives_json_serialisation",
      "name": "test_the_report_survives_json_serialisation",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L156-L160",
      "signature": "def test_the_report_survives_json_serialisation(self) -> None: # --json is the machine-readable contract, so every value has to be # JSON-safe; an exception object smuggled into it would break it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5792199eff26ac2f7e2441d7a8f6e5a8dcdaef6a3a0c65785fbad3ac61a38dcb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_version_drift_is_a_warning_but_an_error_under_strict",
      "name": "test_version_drift_is_a_warning_but_an_error_under_strict",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L115-L147",
      "signature": "def test_version_drift_is_a_warning_but_an_error_under_strict(self) -> None: # Expectations are derived from importlib.metadata and the script's own # published baseline, not from the report being checked.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4ea99926167bd5cc57d4e3a8d01961bdfd393fc193120fc89a47bfd1ab164af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvironmentReportTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ImportProbeTests",
      "name": "ImportProbeTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L52-L71",
      "signature": "class ImportProbeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "36b2bce6e7c13cca920359d8888ee5d1facb9e260bc791485bbad9bb9662694c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#ImportProbeTests.test_a_distribution_that_is_not_installed_has_no_version",
      "name": "test_a_distribution_that_is_not_installed_has_no_version",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L53-L54",
      "signature": "def test_a_distribution_that_is_not_installed_has_no_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e67e7f4c29f478e70fe54819620006002bb9f085e27d726c0abb3a859852f588",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImportProbeTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ImportProbeTests.test_a_missing_module_is_reported_with_the_import_error",
      "name": "test_a_missing_module_is_reported_with_the_import_error",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L59-L63",
      "signature": "def test_a_missing_module_is_reported_with_the_import_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "553924611c1188df64046a5a025ee78cb517fb09a99de3bcc12d2c0ea7659b59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImportProbeTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ImportProbeTests.test_an_importable_module_reports_where_it_came_from",
      "name": "test_an_importable_module_reports_where_it_came_from",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L65-L71",
      "signature": "def test_an_importable_module_reports_where_it_came_from(self) -> None: # The module file is what distinguishes \"installed\" from \"importable\": # a broken optional environment must be nameable, not just falsy.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca08fbf686b3f93ac4e65a309e6f690fb93d3f532d3f53907310ab2a4ed9fcea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImportProbeTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ImportProbeTests.test_an_installed_distribution_reports_its_version",
      "name": "test_an_installed_distribution_reports_its_version",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L56-L57",
      "signature": "def test_an_installed_distribution_reports_its_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb314aee9773cf7814f932fcf2dee92a1a9aaf38a678c14bb8e38f0ca4e838e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImportProbeTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#installed",
      "name": "installed",
      "kind": "function",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L44-L49",
      "signature": "def installed(distribution: str) -> str | None",
      "exported": true,
      "origin": "ast",
      "body_hash": "53e6318c3743c310bde3debfcb3745b835bf7c3769f91d2291fde2481fbe13a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "name": "LocalPrimitiveWorkflowTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L189-L255",
      "signature": "class LocalPrimitiveWorkflowTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24e5285a5aa4765fc82343f3c0af096137b9a675ff8f793ec60f0604010a057c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_a_pi_angle_flips_both_qubits",
      "name": "test_a_pi_angle_flips_both_qubits",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L223-L227",
      "signature": "def test_a_pi_angle_flips_both_qubits(self) -> None: # ry(pi)|0> = |1> up to sign, and cx then flips the second qubit.",
      "exported": true,
      "origin": "ast",
      "body_hash": "56ddf4a434611d8ae7322ec82429eb19701ea4b60e0dcedf0b60f851a05ef838",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_a_zero_angle_leaves_both_qubits_in_the_ground_state",
      "name": "test_a_zero_angle_leaves_both_qubits_in_the_ground_state",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L217-L221",
      "signature": "def test_a_zero_angle_leaves_both_qubits_in_the_ground_state(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e80b9fd408e1120acf487ced8005cf23bb7bd629eb8cffb5f392867f8a1a4ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_at_theta_pi_over_two_the_circuit_is_a_bell_state",
      "name": "test_at_theta_pi_over_two_the_circuit_is_a_bell_state",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L190-L194",
      "signature": "def test_at_theta_pi_over_two_the_circuit_is_a_bell_state(self) -> None: # ry(pi/2) then cx prepares (|00> + |11>)/sqrt(2). No other basis state # has any amplitude, so no other bitstring can ever be sampled.",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b7ea716ff10aaaeb86b9ba522f564c80e74d6035bdfa00257bf88c0af6395b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_every_requested_shot_is_accounted_for",
      "name": "test_every_requested_shot_is_accounted_for",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L229-L232",
      "signature": "def test_every_requested_shot_is_accounted_for(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "498d12e17c8f24f297fe6060e5aed52338ff7e5f7f74bd6d2d4db07fc4175d85",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_estimator_reproduces_the_analytic_expectation",
      "name": "test_the_estimator_reproduces_the_analytic_expectation",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L196-L215",
      "signature": "def test_the_estimator_reproduces_the_analytic_expectation(self) -> None: # <ZI> = cos(theta) and <XX> = sin(theta) for that state, so the # observable 1.0*ZI + 0.5*XX has expectation cos + 0.5*sin exactly.",
      "exported": true,
      "origin": "ast",
      "body_hash": "acc53f663d581bbf206ab938a32cc3546fecca482c89bef9bdf893eacb3a342d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_reported_parameter_order_is_the_circuit_binding_order",
      "name": "test_the_reported_parameter_order_is_the_circuit_binding_order",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L250-L255",
      "signature": "def test_the_reported_parameter_order_is_the_circuit_binding_order(self) -> None: # Values are bound positionally, so a wrong order silently runs the # wrong circuit.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f480af6ce924d01b52ca8fb40042824bef17c73cc7ba3daa7070b2ba0e26d9c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_same_seed_reproduces_the_same_counts",
      "name": "test_the_same_seed_reproduces_the_same_counts",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L245-L248",
      "signature": "def test_the_same_seed_reproduces_the_same_counts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3399b792455de02f749584abe710fd4b2c6657556300b33898474e3ce226733e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_sampled_frequencies_match_the_analytic_probabilities",
      "name": "test_the_sampled_frequencies_match_the_analytic_probabilities",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L234-L243",
      "signature": "def test_the_sampled_frequencies_match_the_analytic_probabilities(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b91d2488d46bd77d621572bba9ecd2d7b1da1d2b2d3c446b625b478e55ec699f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LocalPrimitiveWorkflowTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#QubitCountValidationTests",
      "name": "QubitCountValidationTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L258-L275",
      "signature": "class QubitCountValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "694622a68c94fbb50a2f49591c9a7c8e0a4d01b4165e10751b62f289a8d05126",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_a_plausible_qubit_floor_is_accepted",
      "name": "test_a_plausible_qubit_floor_is_accepted",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L259-L261",
      "signature": "def test_a_plausible_qubit_floor_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa0bceabb5fc511e806df80aec54518252d36ebee28fedc9c2b7dfd07dd69bb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QubitCountValidationTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_an_absent_distribution_reports_no_version",
      "name": "test_an_absent_distribution_reports_no_version",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L271-L275",
      "signature": "def test_an_absent_distribution_reports_no_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5006480869c67d6185ca5afcd19fc8b0850fff077cfde1e125933b3e94589a0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QubitCountValidationTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_an_implausible_qubit_floor_is_rejected",
      "name": "test_an_implausible_qubit_floor_is_rejected",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L263-L269",
      "signature": "def test_an_implausible_qubit_floor_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2302c54aae3459f9794535787b47ec2d2003bc3ad7d9f153584c5064e5fc5a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QubitCountValidationTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#RecordingService",
      "name": "RecordingService",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L278-L290",
      "signature": "class RecordingService",
      "exported": true,
      "origin": "ast",
      "body_hash": "04a287b9b25c6bca5377afbcd6b1f65aed3ed89cbac34a1033b9c3d44f4d50f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#RecordingService.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L281-L282",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "47f3220ca2f8f34f4648ed3efaca661267541afa1203b791e2caae770365a48f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingService"
    },
    {
      "id": "tests/qiskit/test_scripts.py#RecordingService.backend",
      "name": "backend",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L284-L286",
      "signature": "def backend(self, name, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf2fb9e137530385a1d5ad2d7faa0865d4ca685d36e27c4022489d488055d265",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingService"
    },
    {
      "id": "tests/qiskit/test_scripts.py#RecordingService.least_busy",
      "name": "least_busy",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L288-L290",
      "signature": "def least_busy(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dba43c4f51f1dd098af55953415635e8ff03bc355a6069b738ff59d14dfe20e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingService"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests",
      "name": "ShotAndAngleValidationTests",
      "kind": "class",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L163-L186",
      "signature": "class ShotAndAngleValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8353b06f5a55b818fd386477325dacd98c231c4c5bf7ed627863d02f10c86ac2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests.test_a_finite_angle_is_accepted_and_an_infinite_one_is_not",
      "name": "test_a_finite_angle_is_accepted_and_an_infinite_one_is_not",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L179-L186",
      "signature": "def test_a_finite_angle_is_accepted_and_an_infinite_one_is_not(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fda32cbd4d8227c55a3bc68b58b33ed3770f4c9e16e0838b20ed127b22f172a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShotAndAngleValidationTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests.test_a_shot_count_inside_the_documented_range_is_accepted",
      "name": "test_a_shot_count_inside_the_documented_range_is_accepted",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L164-L169",
      "signature": "def test_a_shot_count_inside_the_documented_range_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b3213ba1f71094fca5a4628173850b122536999a3e8181fadf5294ea914d4a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShotAndAngleValidationTests"
    },
    {
      "id": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests.test_shot_counts_outside_the_range_are_rejected",
      "name": "test_shot_counts_outside_the_range_are_rejected",
      "kind": "method",
      "path": "tests/qiskit/test_scripts.py",
      "span": "L171-L177",
      "signature": "def test_shot_counts_outside_the_range_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fb80802c01b0a0a5c415d09f0c02ff28ea9d33d573728350d58efcedd0504b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ShotAndAngleValidationTests"
    },
    {
      "id": "tests/qutip/test_qutip_graphics.py",
      "name": "test_qutip_graphics.py",
      "kind": "file",
      "path": "tests/qutip/test_qutip_graphics.py",
      "span": "L1-L70",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3fb801070682a15b5e6ee3b973a925ec8bc91c901694198cf378d14715c45b8c",
      "chars": 2015,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests",
      "name": "GraphicsApiTests",
      "kind": "class",
      "path": "tests/qutip/test_qutip_graphics.py",
      "span": "L21-L65",
      "signature": "class GraphicsApiTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1ef906568402b647ae298ab294349f4333d70e1c226576375c1e338c38f3c6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests.tearDown",
      "name": "tearDown",
      "kind": "method",
      "path": "tests/qutip/test_qutip_graphics.py",
      "span": "L22-L23",
      "signature": "def tearDown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce408d2a3997c0551da280236e075f40f2bda2e18176ffa10210716f3e352886",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GraphicsApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests.test_phase_space_and_matrix_plotting_apis",
      "name": "test_phase_space_and_matrix_plotting_apis",
      "kind": "method",
      "path": "tests/qutip/test_qutip_graphics.py",
      "span": "L25-L54",
      "signature": "def test_phase_space_and_matrix_plotting_apis(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "063d50caa9f74f0ae679b0703597f70d28290b63868c3195845c7a580fad3a1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GraphicsApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests.test_result_plot_expect_current_method",
      "name": "test_result_plot_expect_current_method",
      "kind": "method",
      "path": "tests/qutip/test_qutip_graphics.py",
      "span": "L56-L65",
      "signature": "def test_result_plot_expect_current_method(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4106e8110b95b92ed1cd0df048f2341df42cb7d42d1d85f3ec27d8d7b8be0954",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GraphicsApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py",
      "name": "test_qutip_synthetic.py",
      "kind": "file",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L1-L328",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "0effd7ea1d486782faae8a3ab9f6b6c03ee27fbd456c741fa810cb492c6c7436",
      "chars": 11200,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#BundledModelTests",
      "name": "BundledModelTests",
      "kind": "class",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L80-L202",
      "signature": "class BundledModelTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0431b1489fdbe1b8670b2aef1ecdc9276245960aad1c8438abd61d7aaaac231c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_deterministic_convergence_sweep",
      "name": "test_deterministic_convergence_sweep",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L180-L202",
      "signature": "def test_deterministic_convergence_sweep(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e105877fe3303ba9b6905beccfda2b86e92fc3cc88ba93d1697be04e16b6f49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledModelTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_mcsolve_is_seed_reproducible_and_bounded",
      "name": "test_mcsolve_is_seed_reproducible_and_bounded",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L150-L178",
      "signature": "def test_mcsolve_is_seed_reproducible_and_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4664c9f3faba38da928c7bb2737d0a7732b7a357167e4a91c5c001b5eed7a76e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledModelTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_mesolve_matches_amplitude_decay_and_audits_result",
      "name": "test_mesolve_matches_amplitude_decay_and_audits_result",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L122-L148",
      "signature": "def test_mesolve_matches_amplitude_decay_and_audits_result(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9570f03f2a8488a04ba10642df1080fe2a2471841b32e2da266fc430a292e4a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledModelTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_qobj_model_validator_accepts_physical_two_level_model",
      "name": "test_qobj_model_validator_accepts_physical_two_level_model",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L81-L120",
      "signature": "def test_qobj_model_validator_accepts_physical_two_level_model(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "21cb5ee41f24c868feb5e8a656174babb1d8f0df8c118b33ec4af7b512093dc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BundledModelTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests",
      "name": "PhysicsApiTests",
      "kind": "class",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L205-L323",
      "signature": "class PhysicsApiTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a91c96224aa122afae2da172873a48a3fcc36d1a5142189c0543265119e9139",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_brmesolve_and_stochastic_solver_synthetic_runs",
      "name": "test_brmesolve_and_stochastic_solver_synthetic_runs",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L242-L270",
      "signature": "def test_brmesolve_and_stochastic_solver_synthetic_runs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8d4d64282c19c419692ed0abeac64227c675e6cd645fd869ccdc43182b8a062",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PhysicsApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_brmesolve_and_stochastic_solver_synthetic_runs.spectrum",
      "name": "spectrum",
      "kind": "function",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L245-L246",
      "signature": "def spectrum(w)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e2ea789de070cb0388c60f7d4d3a7fff75588468315171d60470c00cab524ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_floquet_heom_and_piqs_current_namespaces",
      "name": "test_floquet_heom_and_piqs_current_namespaces",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L272-L323",
      "signature": "def test_floquet_heom_and_piqs_current_namespaces(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6db2346fb969a6ae75e83804588229a29b0b5e6aeb368807d9707ba71a75843e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PhysicsApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_floquet_heom_and_piqs_current_namespaces.drive",
      "name": "drive",
      "kind": "function",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L273-L274",
      "signature": "def drive(t, amplitude, omega)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17bf77f22a94f2e636718f863cc060835407c1ba4af36cc4a83b27fbd9c81bd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_steady_state_correlation_and_spectrum_are_finite",
      "name": "test_steady_state_correlation_and_spectrum_are_finite",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L206-L240",
      "signature": "def test_steady_state_correlation_and_spectrum_are_finite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9f674be4c1e9cf98106221d9defd6a7096042096279b41288e0ebfe27eff02f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PhysicsApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests",
      "name": "VersionAndApiTests",
      "kind": "class",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L32-L77",
      "signature": "class VersionAndApiTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a1dd5be82b83961f3a414c81cad092f465b896b424e631a58d7929be76349f2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_exact_version_and_current_solver_boundaries",
      "name": "test_exact_version_and_current_solver_boundaries",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L33-L47",
      "signature": "def test_exact_version_and_current_solver_boundaries(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c854e503d7b197ff36732e84752c600d3c545fa9981bfc669a39caeef01c4d3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VersionAndApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qfunc_is_called_with_state_and_axis_order_is_y_x",
      "name": "test_qfunc_is_called_with_state_and_axis_order_is_y_x",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L68-L77",
      "signature": "def test_qfunc_is_called_with_state_and_axis_order_is_y_x(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf0938ed824f5fba6932119646c3a7d5f7ee775f3d95c5661662b0057b4b6a10",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VersionAndApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qobj_dims_tensor_order_and_qobjevo",
      "name": "test_qobj_dims_tensor_order_and_qobjevo",
      "kind": "method",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L49-L66",
      "signature": "def test_qobj_dims_tensor_order_and_qobjevo(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0bcfff247e0e03966994df4c8c8a99e91d55169eb2205d5178adc29c4d7540b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VersionAndApiTests"
    },
    {
      "id": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qobj_dims_tensor_order_and_qobjevo.coefficient",
      "name": "coefficient",
      "kind": "function",
      "path": "tests/qutip/test_qutip_synthetic.py",
      "span": "L55-L56",
      "signature": "def coefficient(t, amplitude)",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e8df7b7b6a0a5a16a94d327b1bc5649375b10a12d2e8a62260009c30f13b6de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/qutip/test_scripts.py",
      "span": "L1-L209",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "56b007d2e7c41bffb42f5bc6031ac61101af8f5991c0061775a603b86db076f8",
      "chars": 7999,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_scripts.py#CommonSafetyTests",
      "name": "CommonSafetyTests",
      "kind": "class",
      "path": "tests/qutip/test_scripts.py",
      "span": "L26-L72",
      "signature": "class CommonSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0dcc89a7672cb19ba056e782291dd2b8028ad229034ee4154f03bdaa5290a918",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_scripts.py#CommonSafetyTests.test_limits_and_nonfinite_values_are_enforced",
      "name": "test_limits_and_nonfinite_values_are_enforced",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L61-L72",
      "signature": "def test_limits_and_nonfinite_values_are_enforced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f344b8ef884fd9c043b77cd003443c906f788fe3951b525f5836e64e47727050",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#CommonSafetyTests.test_private_output_refuses_overwrite",
      "name": "test_private_output_refuses_overwrite",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L52-L59",
      "signature": "def test_private_output_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cb647ceeb1480780ab5b78944d533225b2fbbc6410288c97145b96a0884cf4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#CommonSafetyTests.test_strict_json_rejects_urls_duplicates_nan_and_symlinks",
      "name": "test_strict_json_rejects_urls_duplicates_nan_and_symlinks",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L27-L50",
      "signature": "def test_strict_json_rejects_urls_duplicates_nan_and_symlinks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4963e4b4ce872555505f07144ccfdf13ec193cea643ca63d713f16c941bce24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#HelpTests",
      "name": "HelpTests",
      "kind": "class",
      "path": "tests/qutip/test_scripts.py",
      "span": "L75-L90",
      "signature": "class HelpTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d386b67a8705368cbf06278cd4d42d5d1aaefafaf22570d7054da7fe46cd784e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_scripts.py#HelpTests.test_every_cli_has_dependency_free_help",
      "name": "test_every_cli_has_dependency_free_help",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L76-L90",
      "signature": "def test_every_cli_has_dependency_free_help(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b8886be7cf442c754b9c3ca22f1cfa4cf7069569f520440c764fa5a3580de84",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "HelpTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#PlannerTests",
      "name": "PlannerTests",
      "kind": "class",
      "path": "tests/qutip/test_scripts.py",
      "span": "L93-L162",
      "signature": "class PlannerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ccfc19b05fcc78f973e557656443bc3595e95f513cd4687682d79e7670dcc3d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_scripts.py#PlannerTests.test_lindblad_and_stochastic_solver_selection",
      "name": "test_lindblad_and_stochastic_solver_selection",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L94-L118",
      "signature": "def test_lindblad_and_stochastic_solver_selection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "595be1af091978822a98e94b9c0b635d6af9b917413d236043d29e4fb30778f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#PlannerTests.test_planners_reject_unbounded_requests",
      "name": "test_planners_reject_unbounded_requests",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L157-L162",
      "signature": "def test_planners_reject_unbounded_requests(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3725d8015183296af7aba777065d88581ac602dcb24393f92529f8d65e9441e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#PlannerTests.test_specialized_plans_surface_missing_assumptions",
      "name": "test_specialized_plans_surface_missing_assumptions",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L120-L134",
      "signature": "def test_specialized_plans_surface_missing_assumptions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fc9d7f14979aeb938f7abd5a31fa21543ef247d03c34953b00439221d507d49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#PlannerTests.test_steady_spectrum_plan_computes_bounded_fft_grid",
      "name": "test_steady_spectrum_plan_computes_bounded_fft_grid",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L136-L155",
      "signature": "def test_steady_spectrum_plan_computes_bounded_fft_grid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c632e145d4aaa92a72118a182b18ee69dbca697f914db19a6c815b8c0b51af54",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlannerTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#PortableAuditTests",
      "name": "PortableAuditTests",
      "kind": "class",
      "path": "tests/qutip/test_scripts.py",
      "span": "L165-L204",
      "signature": "class PortableAuditTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "54699fee091556b4c9f41e36b288ef8aeec38434175afc60a1ef7a05862ae265",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_scripts.py#PortableAuditTests.test_audit_rejects_out_of_range_population",
      "name": "test_audit_rejects_out_of_range_population",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L190-L204",
      "signature": "def test_audit_rejects_out_of_range_population(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "047b75821903158aaa36fe4d55d2276e47436c204e59b4e3aaedb6b12405bd77",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PortableAuditTests"
    },
    {
      "id": "tests/qutip/test_scripts.py#PortableAuditTests.test_simulation_report_audit_passes_without_qutip",
      "name": "test_simulation_report_audit_passes_without_qutip",
      "kind": "method",
      "path": "tests/qutip/test_scripts.py",
      "span": "L166-L188",
      "signature": "def test_simulation_report_audit_passes_without_qutip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "10f87049bb150357f7014fef04736533369fc602e85d468dc28f5675e5f3bc23",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PortableAuditTests"
    },
    {
      "id": "tests/qutip/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/qutip/test_static.py",
      "span": "L1-L187",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7cc38993a167a5431e40cf7456b7f2361d338909bedebaef78e060a0b70b7d29",
      "chars": 7327,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests",
      "name": "DocumentationTests",
      "kind": "class",
      "path": "tests/qutip/test_static.py",
      "span": "L38-L124",
      "signature": "class DocumentationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "20f07b5d7ae0dec83a182f100fbba1c6b75f5b9c16c5abd2c426f6594fbdce62",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests.test_documented_cli_inventory_exists",
      "name": "test_documented_cli_inventory_exists",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L97-L102",
      "signature": "def test_documented_cli_inventory_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4deb085469fd1b3bbc39c380c1d608beb64e3dbf6c936dda1651eaa43f11021f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationTests"
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests.test_frontmatter_version_license_compatibility_and_size",
      "name": "test_frontmatter_version_license_compatibility_and_size",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L39-L48",
      "signature": "def test_frontmatter_version_license_compatibility_and_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e20f0c01d34a40715587071b786997fc32acd6e4567aa8e2e7ab6663fac0613",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationTests"
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests.test_quitp4_patterns_are_removed",
      "name": "test_quitp4_patterns_are_removed",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L66-L84",
      "signature": "def test_quitp4_patterns_are_removed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc753f78469aeba2b5b6f492996ede8863c2b7fda774764684de6d703d340029",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationTests"
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests.test_reference_inventory_and_dates",
      "name": "test_reference_inventory_and_dates",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L86-L95",
      "signature": "def test_reference_inventory_and_dates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee7c7b27e2206fea224218fb4e33655e1e8c2b33ac7395e5b0d7d41cd0e14c35",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationTests"
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests.test_relative_links_exist_and_web_sources_are_official",
      "name": "test_relative_links_exist_and_web_sources_are_official",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L104-L124",
      "signature": "def test_relative_links_exist_and_web_sources_are_official(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1db261b100ec4513dcb178e990912e66e626f5755e7d80335d4774a9cec425e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationTests"
    },
    {
      "id": "tests/qutip/test_static.py#DocumentationTests.test_snapshot_and_extension_boundaries_are_pinned",
      "name": "test_snapshot_and_extension_boundaries_are_pinned",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L50-L64",
      "signature": "def test_snapshot_and_extension_boundaries_are_pinned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6dd85c18d190ef8fac955ed889e09b74714be755b725acc9d27f7003e17d1104",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentationTests"
    },
    {
      "id": "tests/qutip/test_static.py#ScriptSafetyTests",
      "name": "ScriptSafetyTests",
      "kind": "class",
      "path": "tests/qutip/test_static.py",
      "span": "L127-L182",
      "signature": "class ScriptSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2c2eeb72ade93e6d3248cdf42061c2a280cf3ce57fa86f74b7cc8c52c6913d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/qutip/test_static.py#ScriptSafetyTests.test_no_generated_or_research_artifacts",
      "name": "test_no_generated_or_research_artifacts",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L174-L182",
      "signature": "def test_no_generated_or_research_artifacts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "028d4e1dc113cdf2c2779b6b503e2dae86480d81ebff2f601e105c83ce29bc0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/qutip/test_static.py#ScriptSafetyTests.test_qutip_and_numpy_imports_are_lazy",
      "name": "test_qutip_and_numpy_imports_are_lazy",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L160-L172",
      "signature": "def test_qutip_and_numpy_imports_are_lazy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbf803a08c1040ad4512bcc8ea96993a9d750e163b9d173acdaee89650a42735",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/qutip/test_static.py#ScriptSafetyTests.test_scripts_parse_without_network_or_dynamic_execution",
      "name": "test_scripts_parse_without_network_or_dynamic_execution",
      "kind": "method",
      "path": "tests/qutip/test_static.py",
      "span": "L128-L158",
      "signature": "def test_scripts_parse_without_network_or_dynamic_execution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "891455e1ae23a8843fdd12a910ccb888d0d7518f062de34d012fa1055de72a45",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptSafetyTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L1-L274",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "52412dd946d9c70b846f1a00d8488ffc1311240943b2cdc4c3565c73d691c98f",
      "chars": 11529,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests",
      "name": "FilterTests",
      "kind": "class",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L105-L177",
      "signature": "class FilterTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1c12f936d134a3d5f1afecf5437d902fa6cb685aae35ecd39b2f151e5460122",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests._names",
      "name": "_names",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L121-L122",
      "signature": "def _names(self, molecules) -> set",
      "exported": false,
      "origin": "ast",
      "body_hash": "024d679cfd1251a64a67d9a3eee4888af6c93ff36f39e53565e8bf683efa54c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "name": "pattern",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L118-L119",
      "signature": "def pattern(name: str, smarts: str) -> tuple",
      "exported": true,
      "origin": "ast",
      "body_hash": "be060d5ff313caaf9d1341da6f99a51e0dfec5f36bf294249ab49578163f809f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L108-L115",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e7059fabaa96b46ff701027a5f0213a152f27e713ff43bf55e3b2b9e232cea84",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_an_exclude_pattern_removes_matching_molecules",
      "name": "test_an_exclude_pattern_removes_matching_molecules",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L130-L134",
      "signature": "def test_an_exclude_pattern_removes_matching_molecules(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22820374f1a7afe794e692e3a4db0ed948d77a7e69685153d2dbb1493491b98a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_an_include_pattern_keeps_only_matching_molecules",
      "name": "test_an_include_pattern_keeps_only_matching_molecules",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L124-L128",
      "signature": "def test_an_include_pattern_keeps_only_matching_molecules(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d0c54acbf7707e8221bbbf935a2baf050bd059f6c2d33c4679d72d138462337e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_exclusion_wins_over_inclusion",
      "name": "test_exclusion_wins_over_inclusion",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L136-L142",
      "signature": "def test_exclusion_wins_over_inclusion(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8083ea7cba60aec8331db7416f4e645b39afd731ca920d116f79a54172200d54",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_match_all_include_requires_every_pattern",
      "name": "test_match_all_include_requires_every_pattern",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L148-L160",
      "signature": "def test_match_all_include_requires_every_pattern(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8fd12f9b130234f44ebec722590af05100883d80d0ae5188e7d80d68cf582959",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_no_patterns_keeps_everything",
      "name": "test_no_patterns_keeps_everything",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L144-L146",
      "signature": "def test_no_patterns_keeps_everything(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a719e21b0f6e5e425bb91cab9f406a49bdd6bfeea9e60d5f8c456988ec08abc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_the_report_records_a_status_for_every_molecule",
      "name": "test_the_report_records_a_status_for_every_molecule",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L162-L170",
      "signature": "def test_the_report_records_a_status_for_every_molecule(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee7f8ad00eafa21e1a42254ea8693c105611ca0c0c7c1e68391a49e6ed19f50c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FilterTests.test_unparseable_molecules_are_skipped_rather_than_crashing",
      "name": "test_unparseable_molecules_are_skipped_rather_than_crashing",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L172-L177",
      "signature": "def test_unparseable_molecules_are_skipped_rather_than_crashing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fec09f42653c00ab1307d4edc14bcb3be039c330875dee4f2502bb6f41317f2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FilterTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests",
      "name": "FingerprintTests",
      "kind": "class",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L208-L250",
      "signature": "class FingerprintTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7a0c66fccd8f995112b4fd7c62a3ab97e5d6d552b3bba8c3ff431590d3a4bf4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L209-L211",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3387910328028b7a67d3a871c72fdc7892c28be579e7ecbb6f119a9c477896ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_a_molecule_is_maximally_similar_to_itself",
      "name": "test_a_molecule_is_maximally_similar_to_itself",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L232-L239",
      "signature": "def test_a_molecule_is_maximally_similar_to_itself(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf0c83149fbc9da8f45493f60a6b4cff96e8d6b07058e6ad2921ab78615e9cb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_a_null_molecule_yields_no_fingerprint",
      "name": "test_a_null_molecule_yields_no_fingerprint",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L229-L230",
      "signature": "def test_a_null_molecule_yields_no_fingerprint(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b014a2978827f7bb65652e3de925107717a5c3ee68a89d1e770f66421f173981",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_an_unknown_method_is_refused_by_name",
      "name": "test_an_unknown_method_is_refused_by_name",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L225-L227",
      "signature": "def test_an_unknown_method_is_refused_by_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b17d9e096065004a0e8922e15afb77dc3fa7f5d215700bec2b74e81770309633",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_different_molecules_are_less_similar_than_identical_ones",
      "name": "test_different_molecules_are_less_similar_than_identical_ones",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L241-L246",
      "signature": "def test_different_molecules_are_less_similar_than_identical_ones(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0efc25ea1db076924b49dcb49c1bc612289c03f1264fc993ea796866e18c3ce8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_every_advertised_method_produces_a_fingerprint",
      "name": "test_every_advertised_method_produces_a_fingerprint",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L213-L218",
      "signature": "def test_every_advertised_method_produces_a_fingerprint(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5b5412c4204599e4ceea8c7328c7417a962957fcd55a7f49313721fba5eb121",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_the_bit_size_is_honoured",
      "name": "test_the_bit_size_is_honoured",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L248-L250",
      "signature": "def test_the_bit_size_is_honoured(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9dc5a2cd99e7669b922ca1ba374411360abdaa2f5fbd05549e473ed2a80c21f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#FingerprintTests.test_the_method_name_is_case_insensitive",
      "name": "test_the_method_name_is_case_insensitive",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L220-L223",
      "signature": "def test_the_method_name_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff38032f7f40772867b8542df44502e1b7acd895ce614a3699ecbccdd37c4782",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FingerprintTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#MoleculeLoadingTests",
      "name": "MoleculeLoadingTests",
      "kind": "class",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L253-L269",
      "signature": "class MoleculeLoadingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "875d5fa6e6a3191e46df6cd20d218717375a01747ccf497d5bee8f5b01ae4de9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#MoleculeLoadingTests.test_a_smiles_file_is_read",
      "name": "test_a_smiles_file_is_read",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L254-L259",
      "signature": "def test_a_smiles_file_is_read(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8c747c07ca7ff0076e7b8bc554f3048106b1f3518f5cb52711a0c519b5a66a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MoleculeLoadingTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#MoleculeLoadingTests.test_an_unreadable_line_does_not_abort_the_whole_file",
      "name": "test_an_unreadable_line_does_not_abort_the_whole_file",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L261-L269",
      "signature": "def test_an_unreadable_line_does_not_abort_the_whole_file(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ce01839868f33e6cc54831d935efe9add74c774a6f880c87901fe6d524cd4f32",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MoleculeLoadingTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PatternLibraryTests",
      "name": "PatternLibraryTests",
      "kind": "class",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L44-L90",
      "signature": "class PatternLibraryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3ff83ca09d9bf0341be272648ac4c620348bbb1aad14329f9a48c6a057e2b284",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_a_pattern_does_not_match_a_molecule_that_lacks_it",
      "name": "test_a_pattern_does_not_match_a_molecule_that_lacks_it",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L85-L90",
      "signature": "def test_a_pattern_does_not_match_a_molecule_that_lacks_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "af15dca2a94e7378667fcca8c3ae7859fc875d57a7128a2c23395add7cb41559",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PatternLibraryTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_every_shipped_smarts_pattern_compiles",
      "name": "test_every_shipped_smarts_pattern_compiles",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L45-L53",
      "signature": "def test_every_shipped_smarts_pattern_compiles(self) -> None: # Chem.MolFromSmarts returns None rather than raising, so a typo would # silently disable the pattern.",
      "exported": true,
      "origin": "ast",
      "body_hash": "87c13ccb9143e9794109fe43a3351b02cfbc24389085a3fe434f770d02da43bb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PatternLibraryTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_representative_patterns_match_the_chemistry_they_name",
      "name": "test_representative_patterns_match_the_chemistry_they_name",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L64-L83",
      "signature": "def test_representative_patterns_match_the_chemistry_they_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b20f4c0df7ab1b1ba1ccb7c3764a97cb92bf7ac0a7fb8bcdd1e4aefb4c9a956",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PatternLibraryTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_the_documented_libraries_are_all_present_and_non_empty",
      "name": "test_the_documented_libraries_are_all_present_and_non_empty",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L55-L62",
      "signature": "def test_the_documented_libraries_are_all_present_and_non_empty(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d811ee1f6e69942023643c8e0af510b868e2c6975ad1d676973864b175c2d812",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PatternLibraryTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PropertyTests",
      "name": "PropertyTests",
      "kind": "class",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L180-L205",
      "signature": "class PropertyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "06f7ed3b46b7dbfff82b8955fca9f682201e06f8cf0baeb91b0fec25763af803",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#PropertyTests.test_an_unparseable_smiles_is_reported_rather_than_crashing",
      "name": "test_an_unparseable_smiles_is_reported_rather_than_crashing",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L203-L205",
      "signature": "def test_an_unparseable_smiles_is_reported_rather_than_crashing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e729336f4a352486e04d12b8016ba1caa3e4401619c24364d7938422d8b8ade",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropertyTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PropertyTests.test_aspirin_reports_its_formula_and_hydrogen_bonding",
      "name": "test_aspirin_reports_its_formula_and_hydrogen_bonding",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L189-L196",
      "signature": "def test_aspirin_reports_its_formula_and_hydrogen_bonding(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbecbb574b80618f1b860e503f35fbcfafcadee4d32c58dc432df841690d3261",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropertyTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PropertyTests.test_benzene_has_one_aromatic_ring_and_no_rotatable_bonds",
      "name": "test_benzene_has_one_aromatic_ring_and_no_rotatable_bonds",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L181-L187",
      "signature": "def test_benzene_has_one_aromatic_ring_and_no_rotatable_bonds(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "088d8f06058675f42e7d52dc00215d882fe15b33f2b64be0d0cca8495a1b0798",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropertyTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#PropertyTests.test_heavier_molecules_have_larger_molecular_weight",
      "name": "test_heavier_molecules_have_larger_molecular_weight",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L198-L201",
      "signature": "def test_heavier_molecules_have_larger_molecular_weight(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8651e4a798c89121a1fc93f351dd92f0da724bcbb3508b6dcb1ca2750d5ff1fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropertyTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#QueryTests",
      "name": "QueryTests",
      "kind": "class",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L93-L102",
      "signature": "class QueryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "82cd7262cc023a26da91e3c9717c609278974c723b2063386360b40cf6fa28e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/rdkit/test_scripts.py#QueryTests.test_a_plain_smiles_string_is_accepted_as_a_fallback",
      "name": "test_a_plain_smiles_string_is_accepted_as_a_fallback",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L97-L99",
      "signature": "def test_a_plain_smiles_string_is_accepted_as_a_fallback(self) -> None: # SMARTS first, SMILES second -- so a user can paste either.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d602cdebc675ee7cbbea72c0af39c3785921cab9fcd117f88ec6181d2442ee1f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueryTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#QueryTests.test_a_smarts_string_is_compiled",
      "name": "test_a_smarts_string_is_compiled",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L94-L95",
      "signature": "def test_a_smarts_string_is_compiled(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4349746bdd0c909d58f5b944651d809844152e098bbbebd512fb7951bde11f22",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueryTests"
    },
    {
      "id": "tests/rdkit/test_scripts.py#QueryTests.test_an_uninterpretable_pattern_is_refused",
      "name": "test_an_uninterpretable_pattern_is_refused",
      "kind": "method",
      "path": "tests/rdkit/test_scripts.py",
      "span": "L101-L102",
      "signature": "def test_an_uninterpretable_pattern_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54b5c237f2b4af0f8fab091d63432c2ad40656c24ab14b38bfc010c2e45f65e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QueryTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L1-L618",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "a901e0e4415681112eb9b7ee12eb10b7fc7f433fd3dc799d541e965ded4bbfea",
      "chars": 28367,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "name": "DataPreparationTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L274-L352",
      "signature": "class DataPreparationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b1904ae48d9c6c2074dc03a7c46ffa742e71638eadff42a6de35d09a021961a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_baseline_window_averages_several_time_points",
      "name": "test_baseline_window_averages_several_time_points",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L287-L292",
      "signature": "def test_baseline_window_averages_several_time_points(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a9d06375c5180b811974b3a136cafe079075d341f4222470b26b45023d0eba9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_changing_variable_composition_warns",
      "name": "test_changing_variable_composition_warns",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L326-L344",
      "signature": "def test_changing_variable_composition_warns(self) -> None: # The published-sepsis trap: a variable measured only at the last time point.",
      "exported": true,
      "origin": "ast",
      "body_hash": "99a03f8973c0a353d13ca9082fa7e946b98b3eecc0ab53add9912053cd7d1aab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_duplicate_id_time_rows_are_fatal",
      "name": "test_duplicate_id_time_rows_are_fatal",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L320-L324",
      "signature": "def test_duplicate_id_time_rows_are_fatal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "36bf6d5f57ec0cd24a679780d2f9a2efe92fc01c25054b69702e62fde9ccd162",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_normalization_is_per_animal_and_lands_on_100",
      "name": "test_normalization_is_per_animal_and_lands_on_100",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L275-L285",
      "signature": "def test_normalization_is_per_animal_and_lands_on_100(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "174538d9dce044321d21de445a84f76613b8c44857309f2c0e3a18a1fcc24a51",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_handles_a_lower_is_worse_scale",
      "name": "test_score_to_percent_handles_a_lower_is_worse_scale",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L311-L314",
      "signature": "def test_score_to_percent_handles_a_lower_is_worse_scale(self) -> None: # A nesting score where a well-built nest is 5 and no nest is 0.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a97dd47ec40f6fbc0f004b0a7412a121c6c5e797535e1104e1786b58ab11bb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_honours_a_nonzero_healthy_score",
      "name": "test_score_to_percent_honours_a_nonzero_healthy_score",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L307-L309",
      "signature": "def test_score_to_percent_honours_a_nonzero_healthy_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6820bec7565205acbd40fb32aaf97a03103bc3083f5a5aa8607c2be0e427d93",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_maps_the_scale_not_the_ratio",
      "name": "test_score_to_percent_maps_the_scale_not_the_ratio",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L303-L305",
      "signature": "def test_score_to_percent_maps_the_scale_not_the_ratio(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f90a890afeb71bee451106966b7f9d740ddfc5564f0d0b819958a1a5789dc902",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_rejects_a_zero_width_scale",
      "name": "test_score_to_percent_rejects_a_zero_width_scale",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L316-L318",
      "signature": "def test_score_to_percent_rejects_a_zero_width_scale(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b97f6c802ad1b713d3c32a06c5a0c2dbf51024e9852b0e5d69c01848434d0ec2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_time_column_alias_is_detected",
      "name": "test_time_column_alias_is_detected",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L346-L352",
      "signature": "def test_time_column_alias_is_detected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "07118ae1bb2525ac8e2c47df56abc4636bed84fa651952cd294b43fa39a0e977",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_zero_baseline_yields_nan_and_warns",
      "name": "test_zero_baseline_yields_nan_and_warns",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L294-L301",
      "signature": "def test_zero_baseline_yields_nan_and_warns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1b6efd95e9d9ae469c3103fdc38804f129f2fda66fb1e791bb89610c0e44cf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DataPreparationTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "name": "DirectionalityTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L170-L231",
      "signature": "class DirectionalityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d60841a0b44d769af5ed57c532a65c1a5781a15f1691ee48a2bcb5904a7b6e47",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests._frame",
      "name": "_frame",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L171-L174",
      "signature": "def _frame(self, rising: bool) -> pd.DataFrame: # One animal whose single variable either rises or falls from baseline.",
      "exported": false,
      "origin": "ast",
      "body_hash": "b4b3e3a8a1a347edac89af804c6dce7f3d1d2e004a688a59d6efb912edecd2e8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DirectionalityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_all_rising_variable_left_unturned_is_rejected_outright",
      "name": "test_all_rising_variable_left_unturned_is_rejected_outright",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L203-L208",
      "signature": "def test_all_rising_variable_left_unturned_is_rejected_outright(self) -> None: # When nothing in the reference set ever falls, the degenerate denominator # is caught rather than producing a scale of zeros.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d097fd97dec83c1a0b5119be2aa72e71271acfd68c90ad3c6a9a284bfead3e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DirectionalityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_recovery_below_baseline_is_floored_at_zero",
      "name": "test_recovery_below_baseline_is_floored_at_zero",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L225-L231",
      "signature": "def test_recovery_below_baseline_is_floored_at_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "067f09628ed385b4dd3e67d52610ad0f1fdf1bfceffd2a2e1709a540fc85a22c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DirectionalityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_rising_variable_left_unturned_scores_zero_throughout",
      "name": "test_rising_variable_left_unturned_scores_zero_throughout",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L183-L201",
      "signature": "def test_rising_variable_left_unturned_scores_zero_throughout(self) -> None: # The silent failure this skill warns about: wrong directionality does not # error, it erases the variable's contribution. A second animal dips # slightly below baseline so the reference set is not degenerate.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9611953b02b68a32ba22a16c82103e0c47a208ecca316e262f6d113ea5718a72",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DirectionalityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_turned_variable_registers_an_increase",
      "name": "test_turned_variable_registers_an_increase",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L176-L181",
      "signature": "def test_turned_variable_registers_an_increase(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab5462ab9c67ee4bf3d6e87bc8d69abed2e2dbc4399916ba2509e15a7482ec0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DirectionalityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_variable_that_only_ever_rises_and_is_not_turned_warns",
      "name": "test_variable_that_only_ever_rises_and_is_not_turned_warns",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L210-L223",
      "signature": "def test_variable_that_only_ever_rises_and_is_not_turned_warns(self) -> None: # The realistic mistake: a biomarker left out of --turned. Its baseline row # is absent, so every observed value is above 100 and the mismatch is # detectable rather than merely suspicious.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cf1ddcf67a9b0d0a92d000b5430082123eaa9d862a0db23cf8da3d0c2a8b8b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DirectionalityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests",
      "name": "EndToEndCliTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L537-L613",
      "signature": "class EndToEndCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d1eccad95a8623910bac92679296c03a0e61092e193e21a11f55582c32b03fcf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L544-L551",
      "signature": "def _run(self, *args: str, cwd: Path) -> subprocess.CompletedProcess",
      "exported": false,
      "origin": "ast",
      "body_hash": "8c13e0db08de2103d0c314f53e50e53b1ef8aac4a84845c0469d8ed34574b211",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndCliTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L540-L542",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0b202d0b2ce09c4dae1b34c02c3994d914e12b0864015a087687813f0595365",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndCliTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.test_documented_pipeline_runs_end_to_end",
      "name": "test_documented_pipeline_runs_end_to_end",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L553-L600",
      "signature": "def test_documented_pipeline_runs_end_to_end(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dec3e5fbdb6e610827f234252e1eef2ea9fd1eb9350d2220b2dbc11386be5613",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndCliTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.test_score_scale_is_required_for_a_zero_baseline_score",
      "name": "test_score_scale_is_required_for_a_zero_baseline_score",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L602-L613",
      "signature": "def test_score_scale_is_required_for_a_zero_baseline_score(self) -> None: # Without --score-scale the 0-baseline clinical score cannot be normalized, # and the run must say so rather than quietly producing a score.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5881f3b728100e78aa4adff24ea223e69453ed7d6b688cc4acee022a6791712b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndCliTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "name": "ForecastTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L442-L533",
      "signature": "class ForecastTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9a79e1671a18a860b6817b8522a0e96eaecc2d9c1297cd9c071c35d95a0e826",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L443-L448",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "adbbc2b7dd3668010818880f2d8c03ab6eb7903e463c1f42adda1904f19f3448",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_auto_arima_selects_differencing_for_a_trending_series",
      "name": "test_auto_arima_selects_differencing_for_a_trending_series",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L494-L499",
      "signature": "def test_auto_arima_selects_differencing_for_a_trending_series(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "30f7a0286823d14414f025bc841c6596fa5af70ef17afe14b0c388e44acaaae3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_forecast_of_a_linear_ramp_continues_the_ramp",
      "name": "test_forecast_of_a_linear_ramp_continues_the_ramp",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L458-L464",
      "signature": "def test_forecast_of_a_linear_ramp_continues_the_ramp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7397a0fe59ae634be43a54ea691dc61628cb969946b8e58a7b9c0d00174b39f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_interpolation_hits_the_observed_points",
      "name": "test_interpolation_hits_the_observed_points",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L450-L456",
      "signature": "def test_interpolation_hits_the_observed_points(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5dcb4125d315820c288b00358807641cb5ebcc23dd8d450dc3c66554b15d687",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_interpolation_note_is_recorded_when_interpolating",
      "name": "test_interpolation_note_is_recorded_when_interpolating",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L483-L492",
      "signature": "def test_interpolation_note_is_recorded_when_interpolating(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f4ea0df674c4e369b295f0bef52ff11953305e28e0fc1ea861b99ed65d3be0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_predict_endpoint_scores_against_the_actual_value",
      "name": "test_predict_endpoint_scores_against_the_actual_value",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L501-L512",
      "signature": "def test_predict_endpoint_scores_against_the_actual_value(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29a2827c6c2530a2aa13753a6716750c139ee046a465e29f339d537842b23bf5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_relsa_forecast_and_interval_are_non_negative",
      "name": "test_relsa_forecast_and_interval_are_non_negative",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L466-L471",
      "signature": "def test_relsa_forecast_and_interval_are_non_negative(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccd7d38a417e7e8940ea3f83ce9901413975468402705b3cd6e7946c45028c10",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_rolling_forecast_produces_one_row_per_step",
      "name": "test_rolling_forecast_produces_one_row_per_step",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L528-L533",
      "signature": "def test_rolling_forecast_produces_one_row_per_step(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae36547a37861cc483ba358bc072f6d3b674c008f2f882a7b216ecce47eda6b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_short_series_records_a_warning_note",
      "name": "test_short_series_records_a_warning_note",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L477-L481",
      "signature": "def test_short_series_records_a_warning_note(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfd4e15300bc951b0ae4288ee6c1a2bd0d7aee4ff8f317ddede4ffa12801e53c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_summarize_reports_per_animal_rows_and_an_overall_row",
      "name": "test_summarize_reports_per_animal_rows_and_an_overall_row",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L514-L526",
      "signature": "def test_summarize_reports_per_animal_rows_and_an_overall_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9523626f982598af9005ccd97d0d15b73baa11d95a8f17e990dbe6cea5d04b7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_target_before_the_last_observation_is_rejected",
      "name": "test_target_before_the_last_observation_is_rejected",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L473-L475",
      "signature": "def test_target_before_the_last_observation_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ed72fa7b728aad95729dad283455bc857f6cd763fa7cf53a6c679136da5d4331",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests",
      "name": "MetricsTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L355-L380",
      "signature": "class MetricsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "784f56a2a59fc52160c403eb42e7f7fc509d75a2a6402d0555404a689070d489",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests.test_metrics_match_hand_computed_values",
      "name": "test_metrics_match_hand_computed_values",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L356-L367",
      "signature": "def test_metrics_match_hand_computed_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "14706547b892e3c318c2887360df09e323ffa70561a8a0ce912d9fd27db0f955",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricsTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests.test_metrics_without_an_interval_report_nan_coverage",
      "name": "test_metrics_without_an_interval_report_nan_coverage",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L376-L380",
      "signature": "def test_metrics_without_an_interval_report_nan_coverage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ec81f45cae0f13abf208ec042a8e57b981768f6c56dac9944837bddfb891cbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricsTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests.test_picp_counts_values_outside_the_interval",
      "name": "test_picp_counts_values_outside_the_interval",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L369-L374",
      "signature": "def test_picp_counts_values_outside_the_interval(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49ee1ca690fdbe3b38d9a6ec7f2eaf4323845f74c3efa42d0378f598c1ca683d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricsTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#r_normalized_frame",
      "name": "r_normalized_frame",
      "kind": "function",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L104-L110",
      "signature": "def r_normalized_frame() -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8b1ef72d9d602a6ffb4e8869143eb830238f5b74b2d0f57eb75b88d76bcf87c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#r_reference",
      "name": "r_reference",
      "kind": "function",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L92-L101",
      "signature": "def r_reference() -> \"relsa_score.ReferenceModel\"",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0006d8bf50264700f4ec80c9d2ddd5a83f8ca703cf07ffbd48f0a77d6008d31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests",
      "name": "ReferenceModelTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L234-L271",
      "signature": "class ReferenceModelTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ac45641ba553555f3ce2903d15fba59e2018b7f7e89b120e3e35f5fa1937693",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_flat_variable_in_reference_set_is_rejected",
      "name": "test_flat_variable_in_reference_set_is_rejected",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L250-L254",
      "signature": "def test_flat_variable_in_reference_set_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4a07d3f41ba2b611ae54a10b6042b9360f00401041b238e0db90cb2241e7a2b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModelTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_reference_extrema_use_min_or_max_by_direction",
      "name": "test_reference_extrema_use_min_or_max_by_direction",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L235-L248",
      "signature": "def test_reference_extrema_use_min_or_max_by_direction(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4e805684bc9aa30277fc0db10e178adc0e494e47e22f7dc7d5ecd760f91cd83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModelTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_reference_model_round_trips_through_json",
      "name": "test_reference_model_round_trips_through_json",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L256-L265",
      "signature": "def test_reference_model_round_trips_through_json(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "833ed9cc65587db1506f248bd09b92c9b1a1b12223f98387ac8b39723b55973d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModelTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_test_set_missing_a_reference_variable_errors",
      "name": "test_test_set_missing_a_reference_variable_errors",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L267-L271",
      "signature": "def test_test_set_missing_a_reference_variable_errors(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71a52f1814ff0725ef54f1e219b3f25a4c7a9cd2f0b13f4703ac2585ae5b33e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReferenceModelTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "name": "RParityTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L113-L167",
      "signature": "class RParityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8af119db164ace08ff08dfb8022ed0ab676fbf6dfa86c09d6ae925a28139272f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L116-L118",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "335cd17676e9cd27e6e55ac6d6e15be06455fdbfda1d0870fff59212136cc551",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_baseline_row_scores_zero_rather_than_missing",
      "name": "test_baseline_row_scores_zero_rather_than_missing",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L148-L149",
      "signature": "def test_baseline_row_scores_zero_rather_than_missing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3455c58a2570caa325b3a39dcc45ccc997aa63ba2e79602e4aff55a8b9d53100",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_full_precision_stays_close_to_the_rounded_score",
      "name": "test_full_precision_stays_close_to_the_rounded_score",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L158-L167",
      "signature": "def test_full_precision_stays_close_to_the_rounded_score(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8da34ef64f3198b9096da1a3f340fad49f30eba6ef72325f21b456ffd951447",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_missing_variable_is_dropped_from_the_mean_not_zeroed",
      "name": "test_missing_variable_is_dropped_from_the_mean_not_zeroed",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L141-L146",
      "signature": "def test_missing_variable_is_dropped_from_the_mean_not_zeroed(self) -> None: # Day 3 has burON missing: 5 variables enter the score, not 6.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3927b7760062b033ed7e3410296da3e75a485c8d81260b946dcf5d8bc8a16b94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_relsa_scores_match_the_published_values",
      "name": "test_relsa_scores_match_the_published_values",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L134-L139",
      "signature": "def test_relsa_scores_match_the_published_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "180cf4425bd610d4d5174aa8abb121b745f2b27bca3277e4925f2f49e7b53247",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_root_mean_square_not_arithmetic_mean",
      "name": "test_root_mean_square_not_arithmetic_mean",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L151-L156",
      "signature": "def test_root_mean_square_not_arithmetic_mean(self) -> None: # Day 0 weights: RMS = 0.73, arithmetic mean would be 0.645.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec9bbfafb29ab3d06b6fd44a00454c9fc75dbcef37bad899fe0b57e172aed689",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_weights_match_the_published_matrix",
      "name": "test_weights_match_the_published_matrix",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L120-L132",
      "signature": "def test_weights_match_the_published_matrix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "290285205e8dad4e4b7ce913aef1abc0a871f20beebd12128a8f48a7cbc82f27",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RParityTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "name": "ThresholdTests",
      "kind": "class",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L383-L439",
      "signature": "class ThresholdTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab75516dd6719d74492f1e21da021eee8dfc6bd9dd6d26d489ac8ff8c1a65e0a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L384-L388",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "07959727a533c718553f5515cc36077114cd22200b349c9fd0bbb6df8286d293",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_bimodal_scores_yield_a_threshold_between_the_modes",
      "name": "test_bimodal_scores_yield_a_threshold_between_the_modes",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L397-L405",
      "signature": "def test_bimodal_scores_yield_a_threshold_between_the_modes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1113e5ab8592c16182498784d438c0443a7193d5f2a9d09310b02f4566eed8e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_bw_nrd0_matches_the_r_formula",
      "name": "test_bw_nrd0_matches_the_r_formula",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L390-L395",
      "signature": "def test_bw_nrd0_matches_the_r_formula(self) -> None: # x = 1..10: sd = 3.02765, IQR = 4.5 -> 0.9 * min(sd, 4.5/1.349) * 10^-0.2",
      "exported": true,
      "origin": "ast",
      "body_hash": "db9de187effdae679fc6b398d56ab18cdac285c751e2d7b8fec0cbf9e5b6e0e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_thresholds_are_bandwidth_dependent",
      "name": "test_thresholds_are_bandwidth_dependent",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L430-L439",
      "signature": "def test_thresholds_are_bandwidth_dependent(self) -> None: # The skill's central caveat: a wider bandwidth can erase the minima.",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f6a8ed3f3fde8d28d3252f09c5381a3bef1d39dcfdaac47023fc329e56cfc73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_unimodal_scores_yield_no_threshold",
      "name": "test_unimodal_scores_yield_no_threshold",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L407-L417",
      "signature": "def test_unimodal_scores_yield_no_threshold(self) -> None: # Tail wiggle in the density estimate produces a minimum isolating a # single observation; the zone-mass filter must reject it.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e0db37f45bbbe526f1ca8dc4b9b7c45d214e8440f3cea840a35e6635598c86f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdTests"
    },
    {
      "id": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_zone_assignment_and_names",
      "name": "test_zone_assignment_and_names",
      "kind": "method",
      "path": "tests/relsa-severity-assessment/test_scripts.py",
      "span": "L419-L428",
      "signature": "def test_zone_assignment_and_names(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39b6cf062984a3c1151e3de99fa3093279ef69e15a36f7290480f6d0daf3a760",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ThresholdTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py",
      "name": "test_research_lookup.py",
      "kind": "file",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L1-L388",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3509abd965750ac0d421daef4e68243e84386a73ed428e731b30fc40be796b10",
      "chars": 14976,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "name": "PacketTests",
      "kind": "class",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L259-L378",
      "signature": "class PacketTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1d2affca535e95c6b389c3dc1d4112b7549c6c40aca61461367b68563e1ef92",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#PacketTests.test_deduplication_merges_doi_url_and_title_records",
      "name": "test_deduplication_merges_doi_url_and_title_records",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L260-L281",
      "signature": "def test_deduplication_merges_doi_url_and_title_records(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "26c7b67208a0af470cd3689b3e8f314bd46c73811b0b43082fc9a35232ec9562",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PacketTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#PacketTests.test_existing_citation_extraction_remains_available",
      "name": "test_existing_citation_extraction_remains_available",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L371-L378",
      "signature": "def test_existing_citation_extraction_remains_available(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b59f67ac758d871bcc8335102979e58deaadc6aa77a18aea8a50c1a657016607",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PacketTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#PacketTests.test_packet_has_manuscript_artifacts_and_never_pads_shortfall",
      "name": "test_packet_has_manuscript_artifacts_and_never_pads_shortfall",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L283-L314",
      "signature": "def test_packet_has_manuscript_artifacts_and_never_pads_shortfall(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "353f4505c9274d9792f8812e54f0d3a134d9a304ee4285fd51e1f28b9f431e94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PacketTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#PacketTests.test_retracted_reference_is_marked_for_exclusion",
      "name": "test_retracted_reference_is_marked_for_exclusion",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L316-L337",
      "signature": "def test_retracted_reference_is_marked_for_exclusion(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2932aaf338beeb7a3732ccba663c1d61db0d06db5038b955344d1230888ee47f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PacketTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#PacketTests.test_save_packet_writes_all_expected_artifacts",
      "name": "test_save_packet_writes_all_expected_artifacts",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L339-L369",
      "signature": "def test_save_packet_writes_all_expected_artifacts(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bd3b957e2d537eb960a892e9722bc2bb68d1c9b08c833c607fb7f01d22b7dc8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PacketTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "name": "RoutingTests",
      "kind": "class",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L54-L256",
      "signature": "class RoutingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "08c05db423d024b2568cee7f5fa0fcc317bc2ae4202777e0c7f532e804e40099",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract",
      "name": "test_academic_lookup_runs_facets_and_batched_extract",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L166-L232",
      "signature": "def test_academic_lookup_runs_facets_and_batched_extract(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c826f6e7ddfb23012639d5677312175d1246d6680119929946cb75d447b8dc2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract.fake_cli",
      "name": "fake_cli",
      "kind": "function",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L177-L210",
      "signature": "def fake_cli(args, *, timeout=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "08a6e4a6bc8a637bfb6d238e35ccee1e0e981989df3db92c0dfc12838ac11e05",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_chat_is_available_but_never_selected_by_default",
      "name": "test_chat_is_available_but_never_selected_by_default",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L65-L70",
      "signature": "def test_chat_is_available_but_never_selected_by_default(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fb7760846e4dda0ccaeb3b8184bdf8d1985cdef16a4847952cba022e82cc2321",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_default_backend_is_search_and_parallel_alias_is_research",
      "name": "test_default_backend_is_search_and_parallel_alias_is_research",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L56-L61",
      "signature": "def test_default_backend_is_search_and_parallel_alias_is_research(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa1b91d106d227e2a85e79adbfaa7cbc7878d9e86ac5e8d35943240f0df1ea47",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations",
      "name": "test_explicit_chat_preserves_content_basis_and_citations",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L74-L123",
      "signature": "def test_explicit_chat_preserves_content_basis_and_citations(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "36b0df96208dc5d7ff3d65b6c547645bf71eeb5d792e7cb841d28b167eb48a0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse",
      "name": "FakeResponse",
      "kind": "class",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L77-L103",
      "signature": "class FakeResponse",
      "exported": true,
      "origin": "ast",
      "body_hash": "f14876122faf5b33922a100c1b1391e25f84c87199d40c6186619af08b1ef4a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse.json",
      "name": "json",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L81-L103",
      "signature": "def json(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5940c359f843a9c775234ec77436342c2eab78dcc09c235fea997eb31b6c960",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse.raise_for_status",
      "name": "raise_for_status",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L78-L79",
      "signature": "def raise_for_status(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "974ca14d18ca75ec59ed6b6ecc637773df6846ca9342461d2fa2961d7d831ba7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FakeResponse"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract",
      "name": "test_nonacademic_lookup_uses_one_search_without_extract",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L140-L163",
      "signature": "def test_nonacademic_lookup_uses_one_search_without_extract(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "658087ccaaa0069f937edcc2b570fd623dd23b2064ef4d4a743451696f867a5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract.fake_cli",
      "name": "fake_cli",
      "kind": "function",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L144-L153",
      "signature": "def fake_cli(args, *, timeout=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "111941481b81b1babcd32c0c3b45139450aebff7c546213efec14a99ce21f9eb",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_parser_and_class_default_to_sixty_references",
      "name": "test_parser_and_class_default_to_sixty_references",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L126-L137",
      "signature": "def test_parser_and_class_default_to_sixty_references(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7370763c1d6120ef6ad89ac0eef670d437972267f2c6fe7a6130bb236322dd0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_perplexity_failure_fallback_is_opt_in",
      "name": "test_perplexity_failure_fallback_is_opt_in",
      "kind": "method",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L236-L256",
      "signature": "def test_perplexity_failure_fallback_is_opt_in(self, _which)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd3ef705f49c4c7aeb9d922c83a91b9ae7655ae18a6a29a90d7a99483a4bdcdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoutingTests"
    },
    {
      "id": "tests/research-lookup/test_research_lookup.py#source",
      "name": "source",
      "kind": "function",
      "path": "tests/research-lookup/test_research_lookup.py",
      "span": "L30-L51",
      "signature": "def source( index: int, *, title: str | None = None, text: str | None = None, extracted: bool = False, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a954829881e49b5bce1f18e2b70462db2331167eab8e305742f7daac84c6613",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/run_all.py",
      "name": "run_all.py",
      "kind": "file",
      "path": "tests/run_all.py",
      "span": "L1-L176",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "10647d84c27ada7f3d65172e57f26d017b6cc455e382a85f3149f3422933941a",
      "chars": 6916,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/run_all.py#discover",
      "name": "discover",
      "kind": "function",
      "path": "tests/run_all.py",
      "span": "L47-L65",
      "signature": "def discover(names: list[str]) -> list[Path]: # Underscore-prefixed directories are infrastructure, not skills: # `_contract/` is the shared library and `_meta/` is the repo-wide guard, # run separately by `run_meta()` because it spans every skill at once.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec93043be098f25d92fb8de27a431b6c9ca5f00d263aa0953831ca8517d31390",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/run_all.py#isolated_command",
      "name": "isolated_command",
      "kind": "function",
      "path": "tests/run_all.py",
      "span": "L77-L89",
      "signature": "def isolated_command( entry: dict, default_python: str, target: str, pytest_args: list[str] ) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "a68672021a1e4f7b8b0142cb56e6cc75af02dad39716cbbad41a32882b1cbba7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/run_all.py#load_requirements",
      "name": "load_requirements",
      "kind": "function",
      "path": "tests/run_all.py",
      "span": "L68-L74",
      "signature": "def load_requirements() -> tuple[dict[str, dict], str, dict[str, str]]",
      "exported": true,
      "origin": "ast",
      "body_hash": "f77cfc32a6db682e527c5de1381ecf1134e4ceab6e2642c9403f4ed2da06a634",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/run_all.py#main",
      "name": "main",
      "kind": "function",
      "path": "tests/run_all.py",
      "span": "L108-L171",
      "signature": "def main(argv: list[str]) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd2cf1d759741ff95463ae32dea793d28b2ec8f201d515a73b145a437e936934",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/run_all.py#run_meta",
      "name": "run_meta",
      "kind": "function",
      "path": "tests/run_all.py",
      "span": "L92-L105",
      "signature": "def run_meta(pytest_args: list[str]) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "018df838fa5e372cc5d0f8418d2804c1ee7f22c699a840d9dcb7cc3b0f40f40b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L1-L222",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "c9451e7b69748273617eefd7f29b1ec346a6f452068cbdb7b4bb3356ffc9fbaf",
      "chars": 8536,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#ArgumentTests",
      "name": "ArgumentTests",
      "kind": "class",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L148-L173",
      "signature": "class ArgumentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fef37b239bcaa965689c45ce6427f15398416eb6f4b2bc78e8b9cc174cb58875",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#ArgumentTests.test_a_default_output_is_advertised_in_the_help",
      "name": "test_a_default_output_is_advertised_in_the_help",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L158-L165",
      "signature": "def test_a_default_output_is_advertised_in_the_help(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35e17812338ee4d78a5c0942be93ec9a7ead36467b0c34510fd94febd446005b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#ArgumentTests.test_the_output_flag_overrides_the_default",
      "name": "test_the_output_flag_overrides_the_default",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L167-L173",
      "signature": "def test_the_output_flag_overrides_the_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49e1cce4972993cd0a9cb29ab7a18a6aa1d314c31e4f552f3221bf126dfba0d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#ArgumentTests.test_the_shared_io_arguments_are_attached",
      "name": "test_the_shared_io_arguments_are_attached",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L149-L156",
      "signature": "def test_the_shared_io_arguments_are_attached(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e4359b5847b0597eb8685665b0a5969f066b06052aacb89abdf70dad99fbbe50",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#ConfigurationTests",
      "name": "ConfigurationTests",
      "kind": "class",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L176-L188",
      "signature": "class ConfigurationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3989362068df00868c6a7bd843e8ac8a04aff8233c0e31042c3c848a27fba55d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#ConfigurationTests.test_configuring_scanpy_creates_the_figure_directory",
      "name": "test_configuring_scanpy_creates_the_figure_directory",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L177-L181",
      "signature": "def test_configuring_scanpy_creates_the_figure_directory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0290438c3f91ac1f323216feb3385d9c0f087b896a44383d55b38168cc746bbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigurationTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#ConfigurationTests.test_the_dpi_and_verbosity_reach_scanpy",
      "name": "test_the_dpi_and_verbosity_reach_scanpy",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L183-L188",
      "signature": "def test_the_dpi_and_verbosity_reach_scanpy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b80abc289b03e11dd394e80aa32ac581fa92f5b5090f0379323285973111831",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConfigurationTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#PipelineCliTests",
      "name": "PipelineCliTests",
      "kind": "class",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L191-L217",
      "signature": "class PipelineCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e8790e544af2accb9438ce4f3e40c661538608b1951d51868ab0c471b6ff69c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#PipelineCliTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L194-L197",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineCliTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#PipelineCliTests.test_each_cli_reports_a_missing_input_cleanly",
      "name": "test_each_cli_reports_a_missing_input_cleanly",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L199-L217",
      "signature": "def test_each_cli_reports_a_missing_input_cleanly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3944c8641bffc8ac771a852a37df77943014be6dbca214f1a6027e8be8099d81",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PipelineCliTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests",
      "name": "RoundTripTests",
      "kind": "class",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L55-L107",
      "signature": "class RoundTripTests(SharedIoTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "86527b246a78be09570526ca97828bbebab3292d838f60e592a91124ea76df59",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests.test_a_csv_is_dispatched_to_the_csv_reader",
      "name": "test_a_csv_is_dispatched_to_the_csv_reader",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L73-L77",
      "signature": "def test_a_csv_is_dispatched_to_the_csv_reader(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc7a76082e1215848c80fa618be4d9b820790641de463008793d278071a55b0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoundTripTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests.test_a_missing_input_exits_with_a_message",
      "name": "test_a_missing_input_exits_with_a_message",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L79-L89",
      "signature": "def test_a_missing_input_exits_with_a_message(self) -> None: # `die` prints to stderr and exits with a code, so check both.",
      "exported": true,
      "origin": "ast",
      "body_hash": "12d78461ab71cb549fbdc81e814cc39a1b3c8d65142118126f2b9060065efab3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoundTripTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests.test_an_h5ad_round_trips_through_save_and_load",
      "name": "test_an_h5ad_round_trips_through_save_and_load",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L56-L65",
      "signature": "def test_an_h5ad_round_trips_through_save_and_load(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bbcbb4c94d26fd8a3ac0948f830f668e5872f00489d5b2f8ede8124aa11d295",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoundTripTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests.test_an_unrecognised_extension_exits_rather_than_guessing",
      "name": "test_an_unrecognised_extension_exits_rather_than_guessing",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L91-L101",
      "signature": "def test_an_unrecognised_extension_exits_rather_than_guessing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2255947685fd2adbf9b15b209d744df0e14614b6dca2a03b958620900f82cb4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoundTripTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests.test_saving_creates_the_parent_directory",
      "name": "test_saving_creates_the_parent_directory",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L67-L71",
      "signature": "def test_saving_creates_the_parent_directory(self) -> None: # Pipelines write to results/step3/out.h5ad before that tree exists.",
      "exported": true,
      "origin": "ast",
      "body_hash": "731f2331d8df9f7c57c158a4f4e392d5cbc40afbbde3b7545ed4f3429b25a157",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoundTripTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#RoundTripTests.test_the_extension_check_is_case_insensitive",
      "name": "test_the_extension_check_is_case_insensitive",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L103-L107",
      "signature": "def test_the_extension_check_is_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a539734e2ab0bfdb4e55d7b6f2f038cf62a6d20edcf91547448e2c243c61c9df",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RoundTripTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#SharedIoTestCase",
      "name": "SharedIoTestCase",
      "kind": "class",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L48-L52",
      "signature": "class SharedIoTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "453fc72973962641e7a2f5a65093dc76875c36fe9848ec9cb1772ea35da12821",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#SharedIoTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L49-L52",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SharedIoTestCase"
    },
    {
      "id": "tests/scanpy/test_scripts.py#SummaryTests",
      "name": "SummaryTests",
      "kind": "class",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L110-L145",
      "signature": "class SummaryTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6cbad62b6d533872e197daf4791211bd8f38bf29d4543fa783050f4b6571b9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scanpy/test_scripts.py#SummaryTests.test_a_bare_matrix_summarises_to_one_line",
      "name": "test_a_bare_matrix_summarises_to_one_line",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L126-L129",
      "signature": "def test_a_bare_matrix_summarises_to_one_line(self) -> None: # anndata >= 0.13 reports an unnamed `None` key on `.layers` standing # for X, which must not be rendered as a layer (and must not raise).",
      "exported": true,
      "origin": "ast",
      "body_hash": "4c5112d40b8635fd46260e99eab88e0a493fca59f6295964c9f112db0bc61216",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#SummaryTests.test_annotations_and_embeddings_are_listed",
      "name": "test_annotations_and_embeddings_are_listed",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L115-L124",
      "signature": "def test_annotations_and_embeddings_are_listed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16f54e6c7679e3ca346e09bc1e187a70780c7da61af40c2c6623f43cb9a08597",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#SummaryTests.test_the_obs_listing_is_capped",
      "name": "test_the_obs_listing_is_capped",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L136-L145",
      "signature": "def test_the_obs_listing_is_capped(self) -> None: # A dataset with hundreds of obs columns must not print all of them.",
      "exported": true,
      "origin": "ast",
      "body_hash": "22cfbd7466a7cc0a237bfc28375dbe160f04124e05c80fdba8c212fa8cde84e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#SummaryTests.test_the_summary_leads_with_the_matrix_shape",
      "name": "test_the_summary_leads_with_the_matrix_shape",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L111-L113",
      "signature": "def test_the_summary_leads_with_the_matrix_shape(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ff4349dc30df75fb9c7096c616d5df4dfd093d4e968c1ee7a33ccd173ee5efec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#SummaryTests.test_the_unnamed_x_layer_is_never_listed",
      "name": "test_the_unnamed_x_layer_is_never_listed",
      "kind": "method",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L131-L134",
      "signature": "def test_the_unnamed_x_layer_is_never_listed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1dd310ff9eac9d3a44cf670a17da599c0e7a109ae706ae2bd48ae76d65846fe2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SummaryTests"
    },
    {
      "id": "tests/scanpy/test_scripts.py#synthetic",
      "name": "synthetic",
      "kind": "function",
      "path": "tests/scanpy/test_scripts.py",
      "span": "L39-L45",
      "signature": "def synthetic(n_obs: int = 20, n_vars: int = 10)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3813e5b45ad5886962f8586aeb4cffc6aa980d626bba5698bc1d05e1828caf5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L1-L408",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7be8704c0cfdaa0ee250e8199365d051c6a9ce54879d52fdeca10295fc3f6068",
      "chars": 16628,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#completed_process",
      "name": "completed_process",
      "kind": "function",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L64-L71",
      "signature": "def completed_process() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "68a59f8c3f9cede82ca9a5b92eb3dd0079907429f7babf10b96d6eb202cc3560",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#FileOutputTests",
      "name": "FileOutputTests",
      "kind": "class",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L387-L403",
      "signature": "class FileOutputTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "341988877e3e1e0a3209c63f29ff7ec1a4c58b47ce83eedda9e3a8416a4f76e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#FileOutputTests.test_output_refuses_overwrite_without_force",
      "name": "test_output_refuses_overwrite_without_force",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L388-L398",
      "signature": "def test_output_refuses_overwrite_without_force(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0418481bea9acf57e7f0d744ab60eaeceb67d3be91d99d30bc2833aeabfa4274",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileOutputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#FileOutputTests.test_validate_file_returns_minimized_report",
      "name": "test_validate_file_returns_minimized_report",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L400-L403",
      "signature": "def test_validate_file_returns_minimized_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4e18f387fb6f3ccfeef94e25a32efcd0b03879e5e7d5996873b4cb8489e342f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FileOutputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "name": "load_json_asset",
      "kind": "function",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L29-L30",
      "signature": "def load_json_asset(name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7505b163f21e9b5be0a865c7bc2aef8c5be7a1aa0feac63cf74bcc60295c010",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "name": "rated_evaluation",
      "kind": "function",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L33-L61",
      "signature": "def rated_evaluation( work_id: str = \"WORK-SYNTHETIC-001\", evaluation_id: str = \"EVALUATION-SYNTHETIC-001\", scores: list[float] | None = None, ) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea8f6f76870cf74cef99c28c24b6143343a91a0be3a0d6d9537e55711903031a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "name": "RubricAndInputTests",
      "kind": "class",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L149-L223",
      "signature": "class RubricAndInputTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1dc1074f42d8f0b4a0504d50988bdd8f2ed2d2454e99a19141c56d2bc1c3e17d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_duplicate_json_key_is_rejected",
      "name": "test_duplicate_json_key_is_rejected",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L184-L189",
      "signature": "def test_duplicate_json_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6544ee517eec1f3f6eba20d5b93213aef2711a9fcdf3733e1f5a9ada677778f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_excessive_depth_is_rejected",
      "name": "test_excessive_depth_is_rejected",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L203-L215",
      "signature": "def test_excessive_depth_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a577c7620c507bb080d45f19c97497a730d9738136d509a89a326cb5dfbb90f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_private_application_field_is_rejected",
      "name": "test_private_application_field_is_rejected",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L191-L201",
      "signature": "def test_private_application_field_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b5d9160651a75296a5a8abede031a87fd70fb55131dc8f36a465a94fd17c09d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_template_rubric_is_structurally_valid_with_warning",
      "name": "test_template_rubric_is_structurally_valid_with_warning",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L150-L161",
      "signature": "def test_template_rubric_is_structurally_valid_with_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8af1504c9fdc6bc642fd88a04f100abdafeacc700e6fae9d1e956ffdf74e857",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_unrated_template_is_valid",
      "name": "test_unrated_template_is_valid",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L217-L223",
      "signature": "def test_unrated_template_is_valid(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f2cb7afebc5ed1ba0e23167a6d5a8b95e0f6216ded7582ce26eb1b4669f9d79",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_fails_closed_on_malformed_scale",
      "name": "test_validator_fails_closed_on_malformed_scale",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L169-L173",
      "signature": "def test_validator_fails_closed_on_malformed_scale(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a07984742b9281d414fd6fb829f2adf1412ae7f46a815945705bd288e1366b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_rejects_proxy_criterion",
      "name": "test_validator_rejects_proxy_criterion",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L175-L182",
      "signature": "def test_validator_rejects_proxy_criterion(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e96a6001f5aaff6237f7abc89bd7c2e6b6a67252bc2fe6f98fa86f5ea251dd2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_rejects_unknown_field",
      "name": "test_validator_rejects_unknown_field",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L163-L167",
      "signature": "def test_validator_rejects_unknown_field(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9209d9b20b9a157948896f72455ea02d23ddd7e3d67524745f0e82c45409a13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RubricAndInputTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "name": "ScoringAndTraceabilityTests",
      "kind": "class",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L226-L299",
      "signature": "class ScoringAndTraceabilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "29d7b884b92a8fdfcbc4ca8a53c74f5d167d0e29b35c1411d06f4040c723fa31",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L227-L228",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51a19b75f3867784a6801f24ce37f366a2843aeb40749d5fcbb627bcd3dcebe0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoringAndTraceabilityTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_missing_and_not_applicable_are_reported_not_zeroed",
      "name": "test_missing_and_not_applicable_are_reported_not_zeroed",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L241-L266",
      "signature": "def test_missing_and_not_applicable_are_reported_not_zeroed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f856a9e6bbcf0352a06f876b32db4bac2ef8d2acf8860ebe3bfa1973852fe48b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoringAndTraceabilityTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_traceability_passes_and_never_copies_content",
      "name": "test_traceability_passes_and_never_copies_content",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L276-L285",
      "signature": "def test_traceability_passes_and_never_copies_content(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fdd2f48d025dfcc91c931ddd437748d2e6f98415e298907b1438fdd4200e09b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoringAndTraceabilityTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_uncertainty_is_clamped_to_scale",
      "name": "test_uncertainty_is_clamped_to_scale",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L268-L274",
      "signature": "def test_uncertainty_is_clamped_to_scale(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc25231ca75e363b10c9e30f2e47fa64b336c20e48418f6e30399cbcc6ad3762",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoringAndTraceabilityTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_unresolved_evidence_fails",
      "name": "test_unresolved_evidence_fails",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L287-L299",
      "signature": "def test_unresolved_evidence_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "de189a698c6d3cae1a5d401f7c9bc350cf9e11f0826d2dc5aeb4475df5a63256",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoringAndTraceabilityTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_weighted_math_is_bounded_and_has_no_recommendation",
      "name": "test_weighted_math_is_bounded_and_has_no_recommendation",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L230-L239",
      "signature": "def test_weighted_math_is_bounded_and_has_no_recommendation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a43d05b8ce77bb0231f11f999c10b700f9c86086d63a5fbd4723db059f4b6ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScoringAndTraceabilityTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "name": "SensitivityAgreementAndProcessTests",
      "kind": "class",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L302-L384",
      "signature": "class SensitivityAgreementAndProcessTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a07e93bef5c515f1eb5c8d6264e1c99d0cb542d46a912727fed72a2710b77a85",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L303-L304",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51a19b75f3867784a6801f24ce37f366a2843aeb40749d5fcbb627bcd3dcebe0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_agreement_rejects_extra_csv_column",
      "name": "test_agreement_rejects_extra_csv_column",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L334-L345",
      "signature": "def test_agreement_rejects_extra_csv_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f9368d7c3a1e0a092a57a273adf2ef1b1f72afcb0cefe1b4e92d16f85ccff448",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_agreement_summary_is_pseudonymous_and_descriptive",
      "name": "test_agreement_summary_is_pseudonymous_and_descriptive",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L323-L332",
      "signature": "def test_agreement_summary_is_pseudonymous_and_descriptive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3aad854268f6dc2cd26c8f8c06c78e3c3aaf96e728228503fb08a3b9ba29e045",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_completed_low_stakes_process_passes",
      "name": "test_completed_low_stakes_process_passes",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L354-L358",
      "signature": "def test_completed_low_stakes_process_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cd977133f499dd3e2e52a4f09e34c77fbcb2619ab01e41aedd45aad2509efe15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_high_impact_process_is_blocked",
      "name": "test_high_impact_process_is_blocked",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L360-L365",
      "signature": "def test_high_impact_process_is_blocked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5aab8539d1525a6d16ad497ae9d2885164cc56b16e1f9aec49c0af5c68c7bc4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_report_scaffold_contains_only_safe_placeholders",
      "name": "test_report_scaffold_contains_only_safe_placeholders",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L367-L384",
      "signature": "def test_report_scaffold_contains_only_safe_placeholders(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bff51014f9bfbdca7b73dfc68b474f0cdb1d7f19334ea32b53587232db82646",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_unconfirmed_process_is_blocked",
      "name": "test_unconfirmed_process_is_blocked",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L347-L352",
      "signature": "def test_unconfirmed_process_is_blocked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d5e906be1bb9255da9326e565968195c1abecaa16ed0c7a19a8a608804743536",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_weight_sensitivity_detects_order_instability",
      "name": "test_weight_sensitivity_detects_order_instability",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L306-L321",
      "signature": "def test_weight_sensitivity_detects_order_instability(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae1a7928dd93ff36a6335e86f6dfbfc0faa4457b4f521aa7b00cc72a7e8e03a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SensitivityAgreementAndProcessTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "name": "StaticSafetyTests",
      "kind": "class",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L74-L146",
      "signature": "class StaticSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "54712cc17b0cf6314fe6df5512700afc91636ce9b95d47ad571f8224005d706e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_all_script_help_is_dependency_free",
      "name": "test_all_script_help_is_dependency_free",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L134-L146",
      "signature": "def test_all_script_help_is_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "df8f44bec76e09da5b175c77ad0f64b6815ffd98f7deca733c2cc616f50662d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_expected_assets_only",
      "name": "test_expected_assets_only",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L123-L132",
      "signature": "def test_expected_assets_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2fd8c09919712948522671631b9ddd7fe58f12f19e07c5a879fa3a4f672fce03",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_external_schematic_scripts_are_absent",
      "name": "test_external_schematic_scripts_are_absent",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L111-L113",
      "signature": "def test_external_schematic_scripts_are_absent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "899364885749b52153954ac3576078c857ca2b0f8f7f53e9342cfb23abf09f95",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_scripts_have_no_network_dynamic_process_or_executable_serialization",
      "name": "test_scripts_have_no_network_dynamic_process_or_executable_serialization",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L75-L109",
      "signature": "def test_scripts_have_no_network_dynamic_process_or_executable_serialization(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ddff11e0b553f58cd6bc622280bd6cf8b936b355f262b2550cee7016f9ee981",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_skill_is_versioned_and_under_500_lines",
      "name": "test_skill_is_versioned_and_under_500_lines",
      "kind": "method",
      "path": "tests/scholar-evaluation/test_scripts.py",
      "span": "L115-L121",
      "signature": "def test_skill_is_versioned_and_under_500_lines(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6579dd1ff2a212f4dc9d5ce0751e95e7f2836e73f063f4d0f0d03c08d047b4c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L1-L286",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "62bbbad06a7f8b162b1a2d4ae290ca8f4742feb167a6794c223bc80edceed2fd",
      "chars": 11276,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#MatrixTests",
      "name": "MatrixTests",
      "kind": "class",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L185-L276",
      "signature": "class MatrixTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab389bc93f1f6f7980d209d730c0675e94f4f786a5e50f22e31b99d5d8bbb909",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#MatrixTests._write_inputs",
      "name": "_write_inputs",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L186-L224",
      "signature": "def _write_inputs(self, root: Path) -> tuple[Path, Path]",
      "exported": false,
      "origin": "ast",
      "body_hash": "1f2f0c40879a74bab1e7016b3541c7347747bd25dcaa5ee07f9bd76a59850de8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatrixTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_discloses_formula_context_and_no_decision",
      "name": "test_matrix_discloses_formula_context_and_no_decision",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L226-L249",
      "signature": "def test_matrix_discloses_formula_context_and_no_decision(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c00c322a042be5da8691eacd8bccb88c9e293d93beaec1092e84c6968d2bb69",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatrixTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_preserves_input_uncertainty_interval",
      "name": "test_matrix_preserves_input_uncertainty_interval",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L251-L264",
      "signature": "def test_matrix_preserves_input_uncertainty_interval(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "63401821735713a7b045f6f2077c196adfd826897390c73d76e2183c8890fd99",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatrixTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_rejects_out_of_range_score",
      "name": "test_matrix_rejects_out_of_range_score",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L266-L276",
      "signature": "def test_matrix_rejects_out_of_range_score(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "98459322a6586d0c08ac4cbdcd6c34441a5f72ace9b4b9e534bb3a5507378c0d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MatrixTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#populated_register",
      "name": "populated_register",
      "kind": "function",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L24-L63",
      "signature": "def populated_register() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa1a356a024a2561f35ce7dc4310c35aab924d198621f2e5b275a5f035ec4a87",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests",
      "name": "RegisterValidationTests",
      "kind": "class",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L152-L182",
      "signature": "class RegisterValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7272b56ef7d471bb49cabf85274a44ec1966d4c030220e01404f2f0442af3190",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_duplicate_warning_disclaims_semantic_equivalence",
      "name": "test_duplicate_warning_disclaims_semantic_equivalence",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L172-L182",
      "signature": "def test_duplicate_warning_disclaims_semantic_equivalence(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "df991ab298b4270e3acafcc79ae0810d714efe359e7da0f57996422bfe7299b3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegisterValidationTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_missing_ai_provenance_and_assumption_are_errors",
      "name": "test_missing_ai_provenance_and_assumption_are_errors",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L160-L170",
      "signature": "def test_missing_ai_provenance_and_assumption_are_errors(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a20a1c4cc2ab329beccc63a39ea816d0efa8eca39a2e5bcbfc51a0ee6b96e577",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegisterValidationTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_valid_register_passes_without_warnings",
      "name": "test_valid_register_passes_without_warnings",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L153-L158",
      "signature": "def test_valid_register_passes_without_warnings(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "103ef9c06912bc285f3eff85df898db0927c45a8d3e831f8d0c8301c85816603",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegisterValidationTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests",
      "name": "SafeInputTests",
      "kind": "class",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L130-L149",
      "signature": "class SafeInputTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "23a52e44ce1ceeb216c745e79c72e5d35db5f60fe4ef67dc7b61a492b29d923e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests.test_json_input_symlink_is_rejected",
      "name": "test_json_input_symlink_is_rejected",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L131-L142",
      "signature": "def test_json_input_symlink_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "992b6d5f0ad9aaaea63a004bab0eab4f8824b1ba9ac64e24ea06f1f51bf092e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafeInputTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests.test_oversized_input_is_rejected_before_parsing",
      "name": "test_oversized_input_is_rejected_before_parsing",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L144-L149",
      "signature": "def test_oversized_input_is_rejected_before_parsing(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c909018a0550aab80906e65a708e575b23eb4e2050dcb6012e494af5d2ccac3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafeInputTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests",
      "name": "SafeOutputTests",
      "kind": "class",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L104-L127",
      "signature": "class SafeOutputTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a57fd2157864765cbead8de801e523dcc60c49fdc4de98ff881c3b8d81fd296c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests.test_output_symlink_is_rejected",
      "name": "test_output_symlink_is_rejected",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L116-L127",
      "signature": "def test_output_symlink_is_rejected(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ebea5e4b8703df79372d44abaff671ca5ebe45950055feb43e16d61e65f12ed3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafeOutputTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests.test_private_json_output_refuses_implicit_overwrite",
      "name": "test_private_json_output_refuses_implicit_overwrite",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L105-L114",
      "signature": "def test_private_json_output_refuses_implicit_overwrite(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17d903db685bcaffb5bbf97bf96cd566f91180a304d06bfd71b76d8ada5f3009",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafeOutputTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests",
      "name": "ScaffoldTests",
      "kind": "class",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L66-L101",
      "signature": "class ScaffoldTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d779277d6e527a6d5dddec6e777796ab99c9cb14d58c6a558a3b865f5de3f76c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests.test_scaffold_is_deterministic_and_has_required_order",
      "name": "test_scaffold_is_deterministic_and_has_required_order",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L67-L92",
      "signature": "def test_scaffold_is_deterministic_and_has_required_order(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3c42ad6d45060fe2a922e88b1c9aa7ceddb2712955c6628670b481d12e234f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldTests"
    },
    {
      "id": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests.test_scaffold_rejects_duplicate_participant_ids",
      "name": "test_scaffold_rejects_duplicate_participant_ids",
      "kind": "method",
      "path": "tests/scientific-brainstorming/test_scripts.py",
      "span": "L94-L101",
      "signature": "def test_scaffold_rejects_duplicate_participant_ids(self)",
      "exported": true,
      "origin": "ast",
      "body_hash": "82dfa8fbee2dbab37b798099a803b3ee399b6887c0a39858759d0c04c6667958",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScaffoldTests"
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L1-L85",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "607a796f935c254e838468585388127e30149ad75b2d7b58106ec7b853f65203",
      "chars": 3354,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests",
      "name": "DocumentTypeTests",
      "kind": "class",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L33-L58",
      "signature": "class DocumentTypeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "81632b6c2d13cc58826b7cd0ba2f20a6a04b04abc3ef92b85bcc1e791a7e18f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests.test_every_advertised_document_type_is_an_accepted_choice",
      "name": "test_every_advertised_document_type_is_an_accepted_choice",
      "kind": "method",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L34-L48",
      "signature": "def test_every_advertised_document_type_is_an_accepted_choice(self) -> None: # The help epilogue lists thresholds per document type; a type named # there but absent from `choices` fails only at the user's keyboard.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d18afb1c9b4498704b37127e7ad1f1773d3b7c218c41aa1f0c8e028a73f675a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentTypeTests"
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests.test_the_output_flag_is_required",
      "name": "test_the_output_flag_is_required",
      "kind": "method",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L50-L58",
      "signature": "def test_the_output_flag_is_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc90f270507425fdf443087d216cece9e58af18b1f792d10146a39c411914156",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DocumentTypeTests"
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests",
      "name": "ExampleScriptTests",
      "kind": "class",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L61-L80",
      "signature": "class ExampleScriptTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "453b19cb1f2211da40467bb50c14419b7c591c517343af856cd21202d258897a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests.test_the_bundled_example_is_executable_shell",
      "name": "test_the_bundled_example_is_executable_shell",
      "kind": "method",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L62-L72",
      "signature": "def test_the_bundled_example_is_executable_shell(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e678bee29b16d12823694d349154c867696207903cb0a24f889ddf9d79a162d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExampleScriptTests"
    },
    {
      "id": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests.test_the_example_only_invokes_scripts_the_skill_ships",
      "name": "test_the_example_only_invokes_scripts_the_skill_ships",
      "kind": "method",
      "path": "tests/scientific-schematics/test_scripts.py",
      "span": "L74-L80",
      "signature": "def test_the_example_only_invokes_scripts_the_skill_ships(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06b8d80d774043796a0c0e96806a5b964a9da42dc24a8b5735b0dfef24996743",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExampleScriptTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L1-L1020",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "fb273d6ccc21f5e95ea8577037360615ff560038c4b6aa1ab0d88855d874b633",
      "chars": 46078,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "name": "AiCliValidationTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L969-L1015",
      "signature": "class AiCliValidationTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "902fc6f85013620170336a98f9ff2cd59f8c989ee0017e432aba2ed9d490bfe4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "name": "invoke",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L972-L986",
      "signature": "def invoke(self, *arguments, key=\"sk-or-test\")",
      "exported": true,
      "origin": "ast",
      "body_hash": "3161544f0a0e39cd7e5bb92cfa75600ae93454a58de91f570df4d140d000b359",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AiCliValidationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_a_missing_attachment_is_named_before_any_request",
      "name": "test_a_missing_attachment_is_named_before_any_request",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L1003-L1009",
      "signature": "def test_a_missing_attachment_is_named_before_any_request(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8908dae89bb9e3aeb622dc257caf07f440ce5dcb50c20fa4af648269d0dc1105",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AiCliValidationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_a_missing_credential_is_reported_without_a_traceback",
      "name": "test_a_missing_credential_is_reported_without_a_traceback",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L1011-L1015",
      "signature": "def test_a_missing_credential_is_reported_without_a_traceback(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6d0f7ca25831f5dc36d993f3611a81262c4583961888351c013d2880e1502be2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AiCliValidationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_more_iterations_than_allowed_is_refused",
      "name": "test_more_iterations_than_allowed_is_refused",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L988-L994",
      "signature": "def test_more_iterations_than_allowed_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4a442e17e1fc591dd9d5dea9e172ce75f2f20ed206f8f8332949085d2e95d9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AiCliValidationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_zero_iterations_is_refused",
      "name": "test_zero_iterations_is_refused",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L996-L1001",
      "signature": "def test_zero_iterations_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "496dec866bbccfdb666b8db4ca967eae44cc8906597e7dd9228057091bf32174",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AiCliValidationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ApiKeyTests",
      "name": "ApiKeyTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L678-L698",
      "signature": "class ApiKeyTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3410599c54c78ac92e9c78cfda6edb2296091694c09a771c82b6002911a681de",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ApiKeyTests.test_a_generator_without_a_credential_refuses_to_start",
      "name": "test_a_generator_without_a_credential_refuses_to_start",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L679-L690",
      "signature": "def test_a_generator_without_a_credential_refuses_to_start(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8442a0a6360c8cb3ddaab10ecca016e41161073bf8f8cde94b841908f46e0381",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ApiKeyTests.test_the_environment_variable_is_accepted_in_place_of_an_argument",
      "name": "test_the_environment_variable_is_accepted_in_place_of_an_argument",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L692-L698",
      "signature": "def test_the_environment_variable_is_accepted_in_place_of_an_argument(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fd550c105a9dc1fe187e5fac575dbf05f33fa287a6efd4134580c9cfe669d20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ApiKeyTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests",
      "name": "AttachmentEncodingTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L796-L826",
      "signature": "class AttachmentEncodingTests(SlideGeneratorTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c968cb770c2c2f5f6e8a4ec07f877319882fecbbf82a4243fe0ed6e28979a3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests.test_an_unknown_extension_falls_back_to_png",
      "name": "test_an_unknown_extension_falls_back_to_png",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L815-L820",
      "signature": "def test_an_unknown_extension_falls_back_to_png(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dbe24b05efecb6f07080587e0984c9f336f40a7c3f3c47f331e9c66691c729e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AttachmentEncodingTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests.test_the_encoded_payload_round_trips",
      "name": "test_the_encoded_payload_round_trips",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L822-L826",
      "signature": "def test_the_encoded_payload_round_trips(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c329f652f1ec2d3d2e65e3daefd1fd14773ffe305974d8c9522651c5cc1b7ba8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AttachmentEncodingTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests.test_the_mime_type_follows_the_file_extension",
      "name": "test_the_mime_type_follows_the_file_extension",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L797-L813",
      "signature": "def test_the_mime_type_follows_the_file_extension(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca48de53e96c7b53789d2fb35338f48540a7d3dfe22519a3f7d90ee31b619a55",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AttachmentEncodingTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#child_environment",
      "name": "child_environment",
      "kind": "function",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L81-L85",
      "signature": "def child_environment() -> dict[str, str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "d738c3ffff85e942359a81659d8d5bc6b9abcd331edc1b81af0338d10c954242",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "name": "GuidelineTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L701-L730",
      "signature": "class GuidelineTests(SlideGeneratorTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a1c3725e6601ab7cc06b08f76c36a79825d83840a91fac35b4a6b61bbe04769",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_a_full_slide_prompt_asks_for_slide_structure",
      "name": "test_a_full_slide_prompt_asks_for_slide_structure",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L706-L710",
      "signature": "def test_a_full_slide_prompt_asks_for_slide_structure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "315eb6c575d8db654f52da4b0b34e12761339b483274a76219a4315218e64273",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GuidelineTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_a_visual_only_prompt_does_not_ask_for_slide_furniture",
      "name": "test_a_visual_only_prompt_does_not_ask_for_slide_furniture",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L712-L717",
      "signature": "def test_a_visual_only_prompt_does_not_ask_for_slide_furniture(self) -> None: # In the PPT workflow the text is added in PowerPoint, so a generated # title baked into the image would be duplicated.",
      "exported": true,
      "origin": "ast",
      "body_hash": "825cc30a468dd0570c7bb72ea094212eae5dac4f8a0761f0fefda783497f3e52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GuidelineTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_the_improved_prompt_carries_the_critique_and_the_right_guidelines",
      "name": "test_the_improved_prompt_carries_the_critique_and_the_right_guidelines",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L719-L730",
      "signature": "def test_the_improved_prompt_carries_the_critique_and_the_right_guidelines(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "23aa5d59292f0b4b60ac4201535a1c4a51d2bdec88ba3636dd8f9455bc2374dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GuidelineTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_the_presentation_threshold_is_lower_than_a_paper_figure",
      "name": "test_the_presentation_threshold_is_lower_than_a_paper_figure",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L702-L704",
      "signature": "def test_the_presentation_threshold_is_lower_than_a_paper_figure(self) -> None: # Documented as deliberately below the journal/conference bar.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ccd60adb550a752b34e6c1861fdb28671ba14e6059fd27fe7ac5fee9e2f5b33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GuidelineTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "name": "ImageCollectionTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L451-L491",
      "signature": "class ImageCollectionTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c0d6e82f72295c771ebf53a08fb45de675270f431b798be23f81814d9a7a456",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_directory_yields_every_supported_image",
      "name": "test_a_directory_yields_every_supported_image",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L462-L466",
      "signature": "def test_a_directory_yields_every_supported_image(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31f5a0e92c99dcd1d1fd4dba7d6c21ec01f342eebb450da75da58faeb900dada",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageCollectionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_glob_pattern_is_expanded",
      "name": "test_a_glob_pattern_is_expanded",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L483-L488",
      "signature": "def test_a_glob_pattern_is_expanded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "478a9577737363d8782681c65eebf15beff814fdff26c3b541aa3b30c4ab5828",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageCollectionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_non_image_file_is_skipped_with_a_warning",
      "name": "test_a_non_image_file_is_skipped_with_a_warning",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L468-L476",
      "signature": "def test_a_non_image_file_is_skipped_with_a_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37af8716e0ff4861665473b226908f2efb0ebf0db93fe508f40ad5a683bb839a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageCollectionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_path_that_matches_nothing_yields_nothing",
      "name": "test_a_path_that_matches_nothing_yields_nothing",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L490-L491",
      "signature": "def test_a_path_that_matches_nothing_yields_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "54dd4b9f17634b80dc6721b3501b93fcf231bedf8b444f8f1af8b150ecd31d43",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageCollectionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_files_are_ordered_by_name_so_numbering_decides_the_deck",
      "name": "test_files_are_ordered_by_name_so_numbering_decides_the_deck",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L452-L460",
      "signature": "def test_files_are_ordered_by_name_so_numbering_decides_the_deck(self) -> None: # Zero-padded names sort correctly; \"10\" must not precede \"2\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "93d88f73994fbae2dbb5a9958cc0ddc71ed51c0d309a815bc49f6a0bcd6324c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageCollectionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_the_same_file_named_twice_appears_once",
      "name": "test_the_same_file_named_twice_appears_once",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L478-L481",
      "signature": "def test_the_same_file_named_twice_appears_once(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "59b27092e7eb573bdcc6204291c4938aed7f525081629fd1eeec0617df525242",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageCollectionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "name": "ImageExtractionTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L733-L793",
      "signature": "class ImageExtractionTests(SlideGeneratorTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9f86254f63acb3f042ee0cccc7370a1778cc510ce47a43d158831741300da43d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "name": "response",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L736-L737",
      "signature": "def response(self, message: dict) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "5583fc3a8dc5f4273190306589ca8d0bfa6409a5b99eee1fe52d8619f3ae1cb4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_refusal_with_no_choices_yields_none",
      "name": "test_a_refusal_with_no_choices_yields_none",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L786-L787",
      "signature": "def test_a_refusal_with_no_choices_yields_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd88ae0b90833bd5e02807e7cf945de6b761cf659d344868d9786a39ae7f764c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_response_with_no_image_yields_none",
      "name": "test_a_response_with_no_image_yields_none",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L779-L784",
      "signature": "def test_a_response_with_no_image_yields_none(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06e15bd2f8f017e41192970acab59aa7ddbe67a582ab8a4176b008a443bf6736",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_truncated_data_url_yields_none_rather_than_raising",
      "name": "test_a_truncated_data_url_yields_none_rather_than_raising",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L789-L793",
      "signature": "def test_a_truncated_data_url_yields_none_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "08310f14c78666d1521fad4284e73eb303f5bfb974a27887b40d2de8ef44079a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_embedded_in_the_content_string_is_found",
      "name": "test_an_image_embedded_in_the_content_string_is_found",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L760-L766",
      "signature": "def test_an_image_embedded_in_the_content_string_is_found(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bf1fcb6bfd313e0afe790c96b50541b12ebe0bf081e5c715b1581106cf33478c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_a_content_block_is_found",
      "name": "test_an_image_in_a_content_block_is_found",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L768-L777",
      "signature": "def test_an_image_in_a_content_block_is_found(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8d5c95d971a62d32b7b4618a33bfd4180e3173505cc17ddcd1726e073e2735fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_the_images_field_is_decoded",
      "name": "test_an_image_in_the_images_field_is_decoded",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L739-L746",
      "signature": "def test_an_image_in_the_images_field_is_decoded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc78a07a467afb271447d3b58f3213ea8ff5ee9ba57a46521a6722bd385c1698",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_wrapped_base64_is_reassembled",
      "name": "test_wrapped_base64_is_reassembled",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L748-L758",
      "signature": "def test_wrapped_base64_is_reassembled(self) -> None: # Some responses arrive hard-wrapped; the newlines are not data.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1864d0030542729b33b7a8f9fabe1ae039b2bf01803f2c59a938c0aa9cdb059f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ImageExtractionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "name": "PdfToImagesTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L386-L448",
      "signature": "class PdfToImagesTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ed51557fc910ee35af0642e6c1a1f8fbdfb4fe2a7842979b9b936462b1f4076",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "name": "convert",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L409-L417",
      "signature": "def convert(self, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "18d73bbdd970e61eea8783fe213f150ab05bf5458ef65f0675c29c843666f88c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_a_missing_pdf_is_refused_before_any_conversion",
      "name": "test_a_missing_pdf_is_refused_before_any_conversion",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L401-L407",
      "signature": "def test_a_missing_pdf_is_refused_before_any_conversion(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f5f14ab9286025df24719097cbe679eb6f718dd7d636ed8b6ffc596b9dc53312",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_a_page_range_converts_only_those_slides",
      "name": "test_a_page_range_converts_only_those_slides",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L438-L443",
      "signature": "def test_a_page_range_converts_only_those_slides(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0436c54b81141092157184f40a82b23824972d3f773c5b8925a2b71664b18799",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_every_page_becomes_one_zero_padded_image",
      "name": "test_every_page_becomes_one_zero_padded_image",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L419-L426",
      "signature": "def test_every_page_becomes_one_zero_padded_image(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "77a1bb351eb8ff5a5cab3aef557283da3714dc87edf25920be20220c023fbd74",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_only_jpeg_and_png_are_accepted",
      "name": "test_only_jpeg_and_png_are_accepted",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L387-L399",
      "signature": "def test_only_jpeg_and_png_are_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20d35b2e177e2cacfbcd6e4de47a498ef55a6805c854b7ed0e5d0d1a2135cc97",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_format_decides_the_encoding_not_just_the_suffix",
      "name": "test_the_format_decides_the_encoding_not_just_the_suffix",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L445-L448",
      "signature": "def test_the_format_decides_the_encoding_not_just_the_suffix(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33861d5ea3b212198f0c1067ae4f5b0d3f52654f21bed53a9285555970a364b0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_output_directory_is_created_on_demand",
      "name": "test_the_output_directory_is_created_on_demand",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L428-L430",
      "signature": "def test_the_output_directory_is_created_on_demand(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e82e61a1cec1b9ff53f28764103105661d7c33fea5975235c48cf2b7d33bf90",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_requested_dpi_sets_the_pixel_size",
      "name": "test_the_requested_dpi_sets_the_pixel_size",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L432-L436",
      "signature": "def test_the_requested_dpi_sets_the_pixel_size(self) -> None: # A 720-point-tall slide at 144 dpi is 1440 pixels: zoom = dpi / 72.",
      "exported": true,
      "origin": "ast",
      "body_hash": "217e0b6600ace91e3e4a8eb3f6beb475b60982bedd658f4676f76e4e6a759fab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PdfToImagesTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "name": "RefinementLoopTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L897-L966",
      "signature": "class RefinementLoopTests(SlideGeneratorTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "accde8690c8239017bfba46e933fef9430c65f987695345eba646aabf0a39441",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "name": "generate",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L907-L915",
      "signature": "def generate(self, images, reviews, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3d71bb73a9576bb28dd20e64ab3035ca8ea1b08c08594bd89b59277db6d870f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.reviewed",
      "name": "reviewed",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L901-L905",
      "signature": "def reviewed(self, critique, score, needs_improvement)",
      "exported": true,
      "origin": "ast",
      "body_hash": "715e5419488941cff38ead6e62082c1339904113d328878637f2587a640d0539",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_failed_generation_writes_no_file_and_reports_failure",
      "name": "test_a_failed_generation_writes_no_file_and_reports_failure",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L953-L958",
      "signature": "def test_a_failed_generation_writes_no_file_and_reports_failure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b4fde3360d6d6d7d47c9c9188528520c39bc0b9fdaf819eb6667f4dd48e288f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_good_first_image_stops_early_and_is_written",
      "name": "test_a_good_first_image_stops_early_and_is_written",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L917-L927",
      "signature": "def test_a_good_first_image_stops_early_and_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f29fdd4cf4fbe6ac149aa34db9ee4f82fd5dad687b175c8655349f4e70d6e43a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_weak_image_is_regenerated_from_an_improved_prompt",
      "name": "test_a_weak_image_is_regenerated_from_an_improved_prompt",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L929-L939",
      "signature": "def test_a_weak_image_is_regenerated_from_an_improved_prompt(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4522dafc3d35b0d6b81a444546033adcb8d67b80e9872dfa56cb551ced5421aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_iteration_ceiling_still_keeps_the_last_image",
      "name": "test_the_iteration_ceiling_still_keeps_the_last_image",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L941-L951",
      "signature": "def test_the_iteration_ceiling_still_keeps_the_last_image(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4772331473ad643969ebef568f7f1be62089b26a0815e9bf41343ffa1ad8165",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_mode_and_threshold_are_recorded_in_the_results",
      "name": "test_the_mode_and_threshold_are_recorded_in_the_results",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L960-L966",
      "signature": "def test_the_mode_and_threshold_are_recorded_in_the_results(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9369e0eaf4f3836505f518b6c7c11799419e46db03957c0fd79c0982afbaddb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RefinementLoopTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "name": "ReviewDecisionTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L829-L894",
      "signature": "class ReviewDecisionTests(SlideGeneratorTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc36f2c176611117a745b74b9e0794a3b08d1db814fff0685068b609a0ccc34e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "name": "review",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L835-L839",
      "signature": "def review(self, message: dict)",
      "exported": true,
      "origin": "ast",
      "body_hash": "41a9269e5b52139af9e02d9d56b938c6a38403c0467880d6b20250f713e85942",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L830-L833",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea770af37d1e1fc4e011f6b88e5e83f5e9b878f870476ce20e97684f9c20bb62",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_failed_review_is_not_treated_as_a_bad_image",
      "name": "test_a_failed_review_is_not_treated_as_a_bad_image",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L885-L894",
      "signature": "def test_a_failed_review_is_not_treated_as_a_bad_image(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "816d6550b5b6497ea25fbc62c630d9893b4c78d2cf18a5d3311f334bca17dee7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_loosely_worded_score_is_still_read",
      "name": "test_a_loosely_worded_score_is_still_read",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L858-L860",
      "signature": "def test_a_loosely_worded_score_is_still_read(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c998e6d6f49489a0331b96efe42f348a957d5d31284e6cf05186aaed4bac155c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_reasoning_only_reply_is_used_as_the_critique",
      "name": "test_a_reasoning_only_reply_is_used_as_the_critique",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L880-L883",
      "signature": "def test_a_reasoning_only_reply_is_used_as_the_critique(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5156366eaeab8764773bc4205a0359f34b06e594b53d02302254f06b21b62de7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_review_returned_as_content_blocks_is_flattened",
      "name": "test_a_review_returned_as_content_blocks_is_flattened",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L872-L878",
      "signature": "def test_a_review_returned_as_content_blocks_is_flattened(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b99d691d0e33fc45c0367b36cb71e9c4a735db66509ede4f4d09d92b3841000e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_score_at_the_threshold_is_accepted",
      "name": "test_a_score_at_the_threshold_is_accepted",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L841-L845",
      "signature": "def test_a_score_at_the_threshold_is_accepted(self) -> None: # 6.5 is the threshold itself, so it must not trigger another round.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9ebc2c85ec5a7eac7ba7a28b623c87de03c432f79b7fc8b95aa7be49665de48",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_score_below_the_threshold_asks_for_another_round",
      "name": "test_a_score_below_the_threshold_asks_for_another_round",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L847-L850",
      "signature": "def test_a_score_below_the_threshold_asks_for_another_round(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7e5232d96336e7fe28977adb23bb8cc3b8e35fe930c710110433dd927b45f2c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_an_explicit_verdict_overrides_a_high_score",
      "name": "test_an_explicit_verdict_overrides_a_high_score",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L852-L856",
      "signature": "def test_an_explicit_verdict_overrides_a_high_score(self) -> None: # The reviewer's words win: a 9 with NEEDS_IMPROVEMENT is not accepted.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e0938a503b19e634676c5c3febb1f0fac7e512f1639b001c5a2a4d2867568b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_an_unscored_review_does_not_block_the_pipeline",
      "name": "test_an_unscored_review_does_not_block_the_pipeline",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L862-L870",
      "signature": "def test_an_unscored_review_does_not_block_the_pipeline(self) -> None: # No parseable score and no verdict: still no extra round, because a # reviewer that said nothing measurable says nothing about the image. # The score stays None -- a stand-in number here would reach the review # log indistinguishable from one the reviewer actually gave.",
      "exported": true,
      "origin": "ast",
      "body_hash": "eece015ad6e84f48c65f251d1bc3dafbbb6bbd4843e5e3362a0c70da485b3376",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReviewDecisionTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "name": "SlideBudgetTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L119-L195",
      "signature": "class SlideBudgetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "04678d50cc64dc26dfd5170cceb93db9643bf3829cf8fe5858d1db4f4f884595",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "name": "counted",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L122-L125",
      "signature": "def counted(self, slides: int, duration: int) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "bb2d478c393c6015a071cc4a7e6a45669a88d733e3d038f8db9af87f15f5866d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_a_deck_inside_the_range_is_reported_as_fine",
      "name": "test_a_deck_inside_the_range_is_reported_as_fine",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L164-L170",
      "signature": "def test_a_deck_inside_the_range_is_reported_as_fine(self) -> None: # 16 slides for a 15-minute talk: squarely inside 13-20.",
      "exported": true,
      "origin": "ast",
      "body_hash": "14fc358f032da51d3764c563646b1150ab95a705288aed8243b26fad7dce94bd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_an_untabulated_duration_borrows_the_nearest_one",
      "name": "test_an_untabulated_duration_borrows_the_nearest_one",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L188-L195",
      "signature": "def test_an_untabulated_duration_borrows_the_nearest_one(self) -> None: # 12 minutes is closest to the 10-minute row, and the substitution has # to be stated or the numbers look wrong to the user.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ee7764f254fcf4fda0a428b4ffd6fd30f601afbd22dbc77aacc16e345f35565",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_every_duration_brackets_its_recommendation",
      "name": "test_every_duration_brackets_its_recommendation",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L127-L131",
      "signature": "def test_every_duration_brackets_its_recommendation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "861273b729cbd839b51878259fdc30cbf4ee6a7bbf6be3fa8c24894c876a4d3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_boundaries_themselves_are_acceptable",
      "name": "test_the_boundaries_themselves_are_acceptable",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L182-L186",
      "signature": "def test_the_boundaries_themselves_are_acceptable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b48be6576539501b6b49ed07286c5a3c39db720d3007f1330237eebd2e886cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_budget_grows_with_the_talk_length",
      "name": "test_the_budget_grows_with_the_talk_length",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L133-L135",
      "signature": "def test_the_budget_grows_with_the_talk_length(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "240138b4966839a5023960684dc5f6e15a85999da2d53d78447696afa615a045",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_ranges_overlap_the_shipped_timing_asset",
      "name": "test_the_ranges_overlap_the_shipped_timing_asset",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L145-L162",
      "signature": "def test_the_ranges_overlap_the_shipped_timing_asset(self) -> None: # assets/timing_guidelines.md tabulates \"Duration | Total Slides\"; the # validator must not call a deck too long when that table calls it right.",
      "exported": true,
      "origin": "ast",
      "body_hash": "43dca16c92639a49cb524af2671e5d55506bd860aea327112982a98b32269038",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_recommendations_track_one_slide_per_minute",
      "name": "test_the_recommendations_track_one_slide_per_minute",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L137-L143",
      "signature": "def test_the_recommendations_track_one_slide_per_minute(self) -> None: # The rule the skill's own timing_guidelines.md is built on; a table that # drifted far from it would contradict the guidance it ships with.",
      "exported": true,
      "origin": "ast",
      "body_hash": "42c597b198521ca66aeba19bfd85b776532ee3c75914c5e3918152795ab698a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_too_few_slides_warns_about_the_empty_time",
      "name": "test_too_few_slides_warns_about_the_empty_time",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L172-L175",
      "signature": "def test_too_few_slides_warns_about_the_empty_time(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ddd084138a65ce6f32f2664135a85ae94599219f9ddd735c7725b77cc976f40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_too_many_slides_warns_about_running_over",
      "name": "test_too_many_slides_warns_about_running_over",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L177-L180",
      "signature": "def test_too_many_slides_warns_about_running_over(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f18641ed5a1df88d2675d59223a72ad3167278f254c8b81db2bc4ef6ec92b44",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideBudgetTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "name": "SlideGeneratorTestCase",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L660-L675",
      "signature": "class SlideGeneratorTestCase(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec99e6973d5ea4f344961a67d82a9bf45d1b7e3dcf64b6091df1ea2bffa79b42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.data_url",
      "name": "data_url",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L674-L675",
      "signature": "def data_url(payload: bytes) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "571294c76001fa66144b7fb4b809b8b28a68d78eb68ab59fd5f15cba79e86452",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideGeneratorTestCase"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L663-L671",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa44aea5bf4a8de4c27af7505ccfe53c684143753c45af6c3dd6ce184850c9fd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideGeneratorTestCase"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "name": "SlideImageEnvironmentTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L544-L587",
      "signature": "class SlideImageEnvironmentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cddc74e8a447742a65beb58992b626523ce3667100884543d27357130558bcd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_no_key_means_no_key_variable_rather_than_an_empty_one",
      "name": "test_no_key_means_no_key_variable_rather_than_an_empty_one",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L563-L571",
      "signature": "def test_no_key_means_no_key_variable_rather_than_an_empty_one(self) -> None: # An empty value would look configured and fail deep inside the request.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0cd4f4758792d8cc44f76c22e3b1b4103cf8bad7d6608549a9d0194fd072477",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageEnvironmentTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_only_allowlisted_variables_reach_the_subprocess",
      "name": "test_only_allowlisted_variables_reach_the_subprocess",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L547-L556",
      "signature": "def test_only_allowlisted_variables_reach_the_subprocess(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1bf3c17ecb13117fab579c5c5a267a1177c586bac91400a2e0fb2543fc325ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageEnvironmentTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_the_allowlist_carries_no_credential_variables",
      "name": "test_the_allowlist_carries_no_credential_variables",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L573-L577",
      "signature": "def test_the_allowlist_carries_no_credential_variables(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "29e203fc06e12868e046d272bf22db2835ee360f8c91b5f7abc5802dae0ec132",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageEnvironmentTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_the_allowlist_matches_the_schematic_wrapper_in_this_skill",
      "name": "test_the_allowlist_matches_the_schematic_wrapper_in_this_skill",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L579-L587",
      "signature": "def test_the_allowlist_matches_the_schematic_wrapper_in_this_skill(self) -> None: # Both wrappers in this skill spawn an AI child the same way; a variable # added to one and not the other breaks proxies or TLS in half the tools.",
      "exported": true,
      "origin": "ast",
      "body_hash": "32715e85b6995296710a32fd200a533bcf9f592074a2e22fa4daa23704d6ba4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageEnvironmentTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_the_api_key_is_injected_under_the_expected_name",
      "name": "test_the_api_key_is_injected_under_the_expected_name",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L558-L561",
      "signature": "def test_the_api_key_is_injected_under_the_expected_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab601f43207d527ea19b8856ecf4cf47c55b2351ff688ef9393bf613c03dcce2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageEnvironmentTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "name": "SlideImageInvocationTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L590-L657",
      "signature": "class SlideImageInvocationTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fc16160b64aa2d92b978213ae328d8d510e719bf25b787951aa79a9a5532789",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "name": "invoke",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L593-L603",
      "signature": "def invoke(self, *arguments)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6877562fbddd5cef094df67e00a94f4a4e48c749c3558cec3857e6c15f1312b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_each_attachment_is_forwarded_in_order",
      "name": "test_each_attachment_is_forwarded_in_order",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L621-L628",
      "signature": "def test_each_attachment_is_forwarded_in_order(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5239505a39a04d74220a39e2674848bf463ceef6299a6a255c2be352b8380ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_credential_never_appears_on_the_command_line",
      "name": "test_the_credential_never_appears_on_the_command_line",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L612-L615",
      "signature": "def test_the_credential_never_appears_on_the_command_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e8d8e71b3dffa2fba516bd9ffa303e25517a350868ee7e62a003cdc85fce09f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_generator_script_beside_it_is_what_runs",
      "name": "test_the_generator_script_beside_it_is_what_runs",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L605-L610",
      "signature": "def test_the_generator_script_beside_it_is_what_runs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f8f9f79c587ddfc575ad353ba3fb26d6d0e77bdde10da888d3d03d9e26605a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_iteration_ceiling_is_enforced_by_the_wrapper",
      "name": "test_the_iteration_ceiling_is_enforced_by_the_wrapper",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L630-L638",
      "signature": "def test_the_iteration_ceiling_is_enforced_by_the_wrapper(self) -> None: # Two is the documented maximum; a larger request is clamped, and the # default is left implicit rather than passed through.",
      "exported": true,
      "origin": "ast",
      "body_hash": "db1b39697dd090968e7f39b905af87bd42074b9383aca974786d86034fc57f30",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_visual_only_mode_is_forwarded",
      "name": "test_the_visual_only_mode_is_forwarded",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L617-L619",
      "signature": "def test_the_visual_only_mode_is_forwarded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1ff95115b61342299135061ae621327373f51a6365bf1bbe02ee803de53d98e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_without_a_key_nothing_is_spawned",
      "name": "test_without_a_key_nothing_is_spawned",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L640-L657",
      "signature": "def test_without_a_key_nothing_is_spawned(self) -> None: # The wrapper also resolves a credential from any .env file at or above the # working directory, so the temporary root stands in for a machine that has # none -- otherwise a developer's own .env would satisfy the lookup.",
      "exported": true,
      "origin": "ast",
      "body_hash": "79eaa7b986e9ac909c3b5627752fe2340cce915fe1b2b9572826006c1b6d2c56",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlideImageInvocationTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "name": "SlidesToPdfTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L494-L541",
      "signature": "class SlidesToPdfTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbf908d6784266d42b6012225e4c338a62c1867e32047e71770524ff58a3162a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "name": "combine",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L495-L499",
      "signature": "def combine(self, images, name=\"talk.pdf\", **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "31614840849caef5fd31bfc60525310496829894da1affa9f545542c577fb199",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.page_count",
      "name": "page_count",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L501-L506",
      "signature": "def page_count(self, path: Path) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "d757dc4984d74e0fa96142fb4928be9af9319a5b2daaffd222116ab07479cdab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_greyscale_slide_is_converted_rather_than_rejected",
      "name": "test_a_greyscale_slide_is_converted_rather_than_rejected",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L531-L533",
      "signature": "def test_a_greyscale_slide_is_converted_rather_than_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6e61f2a962cadabac36c556a69c77334cb6f4186f843f61c402fd9a4a78efb58",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_transparent_slide_is_flattened_onto_white",
      "name": "test_a_transparent_slide_is_flattened_onto_white",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L525-L529",
      "signature": "def test_a_transparent_slide_is_flattened_onto_white(self) -> None: # PDF has no alpha channel; without the flattening step Pillow raises.",
      "exported": true,
      "origin": "ast",
      "body_hash": "73bc5a36800b0fb418044daf57aabfc61696599ca2da34357321abe50cfee8e9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_an_unreadable_slide_aborts_instead_of_producing_a_short_deck",
      "name": "test_an_unreadable_slide_aborts_instead_of_producing_a_short_deck",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L535-L541",
      "signature": "def test_an_unreadable_slide_aborts_instead_of_producing_a_short_deck(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "157e8344fb1e03bd1be05a3031255dc0ae41dc67cabb45df07327ac8a578125a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_no_images_is_refused_rather_than_writing_an_empty_pdf",
      "name": "test_no_images_is_refused_rather_than_writing_an_empty_pdf",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L519-L523",
      "signature": "def test_no_images_is_refused_rather_than_writing_an_empty_pdf(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d370f8fcc6dbc347b1a4ff0e3b62facee03102040a3fb6773b3f0d08cbb4d8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_output_directory_is_created",
      "name": "test_the_output_directory_is_created",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L514-L517",
      "signature": "def test_the_output_directory_is_created(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbb7ead897ee06f986bb77a8dd9912d25dab0c23a6e46e2a78ddcf6838347440",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_slides_become_pages_in_the_order_given",
      "name": "test_the_slides_become_pages_in_the_order_given",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L508-L512",
      "signature": "def test_the_slides_become_pages_in_the_order_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7658a956abf35c9ce33d0437a5bd6c2d45e527d218185feb64a43842bae559f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SlidesToPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "name": "TemporaryDirectoryTestCase",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L88-L110",
      "signature": "class TemporaryDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "74c537e361c540578f1c73eee8fcf27268b20bc394c050fd4640622decca5f9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "name": "deck",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L94-L101",
      "signature": "def deck(self, pages: int = 2, size: tuple[int, int] = (1280, 720)) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "3e707c03fdea8a8fb1b50198a2e708a7fc2f2f5c00ececc71f18dbff61f20f8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "name": "image",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L106-L110",
      "signature": "def image(self, name: str, size: tuple[int, int] = (320, 180), mode=\"RGB\") -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "40f19ce8d8ce7a93b7dd56c19c236363468ec12d6f270fc8fa958c57146ff8ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L89-L92",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TemporaryDirectoryTestCase"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#validated",
      "name": "validated",
      "kind": "function",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L113-L116",
      "signature": "def validated(path, duration=None) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "be6af82e3cc9e6c3485a0f07e363bf891647e1402d302398f6346dca7049e9fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "name": "ValidatorFileTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L198-L238",
      "signature": "class ValidatorFileTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6276786f3c62587326eb1052cc4cd622314e62fa6982425bbe4979958191536a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.sized",
      "name": "sized",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L215-L222",
      "signature": "def sized(self, megabytes: float) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac8c1b22834418bc927c8be0e7dee60233ec147368b89643e07a2c81b276a5c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_a_large_deck_warns_about_sharing_it",
      "name": "test_a_large_deck_warns_about_sharing_it",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L230-L233",
      "signature": "def test_a_large_deck_warns_about_sharing_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "002773b2fcc130c51c0f9ff23b307215a3bed5c2771cf0024fd968dc3d9c371b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_a_missing_file_is_the_only_thing_reported",
      "name": "test_a_missing_file_is_the_only_thing_reported",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L199-L202",
      "signature": "def test_a_missing_file_is_the_only_thing_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "14316886c383b3988c14bee36c63f0837535896bbcaa1e57246fa0128cc18157",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_enormous_deck_is_an_issue_not_a_warning",
      "name": "test_an_enormous_deck_is_an_issue_not_a_warning",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L235-L238",
      "signature": "def test_an_enormous_deck_is_an_issue_not_a_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ced06eaa82a599cdbd2f9dd3da96eece7a7855eb608a4838e1038adfc788d619",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_ordinary_deck_size_is_only_reported",
      "name": "test_an_ordinary_deck_size_is_only_reported",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L224-L228",
      "signature": "def test_an_ordinary_deck_size_is_only_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4236c96dc29fcb7d4d0785595541cb866c0ef95b386eb3dbe7517f71d8d737ee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_unsupported_extension_warns_but_does_not_fail",
      "name": "test_an_unsupported_extension_warns_but_does_not_fail",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L204-L209",
      "signature": "def test_an_unsupported_extension_warns_but_does_not_fail(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b469b660930e4b0c0089d03c2b3cfafc88831bce92ba768512f8fbf5dfa3eedc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_the_file_type_is_recognised_case_insensitively",
      "name": "test_the_file_type_is_recognised_case_insensitively",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L211-L213",
      "signature": "def test_the_file_type_is_recognised_case_insensitively(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "470631d011d3b38acfc6ee3fdb3fb66e0b256cbf578dc5f9f58c18730bbdbac8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorFileTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "name": "ValidatorLatexTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L283-L318",
      "signature": "class ValidatorLatexTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5953feb01dcc488dd05abf93516155b35af777f88eba38ed8e0d706ce7f8f1c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.source",
      "name": "source",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L286-L289",
      "signature": "def source(self) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b9800f9b41c9607d7e11656f652033da170dbf0cdcc3c7eda121b6ec578896d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorLatexTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_failed_compile_is_an_issue_pointing_at_the_log",
      "name": "test_a_failed_compile_is_an_issue_pointing_at_the_log",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L291-L296",
      "signature": "def test_a_failed_compile_is_an_issue_pointing_at_the_log(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9eeb60d3eb421ecd375a6f47070ae01efd1096a2a20e0f81837946ee6876663a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorLatexTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_successful_compile_folds_in_the_pdf_report",
      "name": "test_a_successful_compile_folds_in_the_pdf_report",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L298-L310",
      "signature": "def test_a_successful_compile_folds_in_the_pdf_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "27a719bc017c18b4f3959728d884fc0e3d7227a8ac52913ce389b2f87a37ec83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorLatexTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_the_compile_never_enables_shell_escape",
      "name": "test_the_compile_never_enables_shell_escape",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L312-L318",
      "signature": "def test_the_compile_never_enables_shell_escape(self) -> None: # Shell escape in a LaTeX source would run arbitrary commands.",
      "exported": true,
      "origin": "ast",
      "body_hash": "da23116ce8d178889618c64b014f9e4b6620a593f76bc5816361eae4cb9e4521",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorLatexTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "name": "ValidatorPdfTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L241-L280",
      "signature": "class ValidatorPdfTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "14754278999f7b5c64a10c824a880685a0017773210b9cc3ed634057ed366e9a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L242-L245",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b294b3bfc0242375bba673ebb5c328c07f7911ce7ff22ea5b13fea614cab8f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_corrupt_pdf_is_an_issue_rather_than_a_traceback",
      "name": "test_a_corrupt_pdf_is_an_issue_rather_than_a_traceback",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L275-L280",
      "signature": "def test_a_corrupt_pdf_is_an_issue_rather_than_a_traceback(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dea0054f997d995df0598b9503766828764577dab24eeeaa524fea03c4555349",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_four_by_three_deck_is_recognised",
      "name": "test_a_four_by_three_deck_is_recognised",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L256-L258",
      "signature": "def test_a_four_by_three_deck_is_recognised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d23929ade1c26a4de6d2e33fc048c2a816840291af2ffe2f2f5b762be8494997",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_widescreen_deck_reports_its_page_count_and_ratio",
      "name": "test_a_widescreen_deck_reports_its_page_count_and_ratio",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L247-L254",
      "signature": "def test_a_widescreen_deck_reports_its_page_count_and_ratio(self) -> None: # Regression: with only pypdf installed this whole branch used to be # skipped, and the validator reported nothing about the deck at all.",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f95c0a6636b2061074f8563264dd1156502e47f202821caaa4a0ad0f3b8a515",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_an_unusual_aspect_ratio_is_flagged_for_the_venue",
      "name": "test_an_unusual_aspect_ratio_is_flagged_for_the_venue",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L260-L264",
      "signature": "def test_an_unusual_aspect_ratio_is_flagged_for_the_venue(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4e8015187730964d68c5ffc573f0a0e5e5545975555849294a1a7f40a0c43dc6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_page_count_is_measured_against_the_duration",
      "name": "test_the_page_count_is_measured_against_the_duration",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L271-L273",
      "signature": "def test_the_page_count_is_measured_against_the_duration(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "12e388d244ecd40edba3b6e46d2f8123c919af2fa86d971e01767e3e174a47a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_slide_dimensions_are_reported_in_inches",
      "name": "test_the_slide_dimensions_are_reported_in_inches",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L266-L269",
      "signature": "def test_the_slide_dimensions_are_reported_in_inches(self) -> None: # 1280 x 720 points at 72 points per inch is 17.8\" x 10.0\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "5b6a74efc8d2037491c2103f6854e92dfdc9a9c3d0889346d7ef35f0eaad0374",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPdfTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "name": "ValidatorPptxTests",
      "kind": "class",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L321-L383",
      "signature": "class ValidatorPptxTests(TemporaryDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "472d0822d4b965478000ca0e713829594529d376df09b130ba2b892d2a355ec7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "name": "build",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L327-L342",
      "signature": "def build(self, *, font_pt: int, bullets: int) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "91d48007d218d64fd818e76f05b8be75631adbd027173a3183885ac1e8b0f395",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L322-L325",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d92388b94a03ca570987f03f757ead734d5b0e484297e0399dce870e2e7f0b4e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_a_readable_uncluttered_slide_raises_nothing",
      "name": "test_a_readable_uncluttered_slide_raises_nothing",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L344-L350",
      "signature": "def test_a_readable_uncluttered_slide_raises_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c63b61da0bab6035383e30fbad2f300c3e8219ae7b875986fd23fd6be021d498",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_eighteen_point_itself_is_acceptable",
      "name": "test_eighteen_point_itself_is_acceptable",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L361-L365",
      "signature": "def test_eighteen_point_itself_is_acceptable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fc56c5a69c8469b0516ab5ca8a08fa0af2b868be1310524059dd178ca8d9fc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_more_than_six_bullets_is_flagged",
      "name": "test_more_than_six_bullets_is_flagged",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L367-L372",
      "signature": "def test_more_than_six_bullets_is_flagged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c26b8d47a870d9cc4ab090047c265f174588daec43910dba93575ab0fdb13702",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_six_bullets_is_still_acceptable",
      "name": "test_six_bullets_is_still_acceptable",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L374-L378",
      "signature": "def test_six_bullets_is_still_acceptable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "733eef93ac1db070d43d40f66bba3e1637c5f3278e2e424a3e4fa9f89744eb5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_text_below_eighteen_point_is_flagged_with_the_slide_number",
      "name": "test_text_below_eighteen_point_is_flagged_with_the_slide_number",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L352-L359",
      "signature": "def test_text_below_eighteen_point_is_flagged_with_the_slide_number(self) -> None: # 18 pt is the projection floor the skill documents.",
      "exported": true,
      "origin": "ast",
      "body_hash": "151035c9661dd8fcb52736e720c9ecc9d02f2f7e8aa2cef375d00e87905b3868",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_the_slide_geometry_is_reported",
      "name": "test_the_slide_geometry_is_reported",
      "kind": "method",
      "path": "tests/scientific-slides/test_scripts.py",
      "span": "L380-L383",
      "signature": "def test_the_slide_geometry_is_reported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51e9169369e7ced44f84d97b96f27476407153a3c14a2b93790c21a85a6c7763",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorPptxTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L1-L353",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "35482935e86e2ffbbcf2cf22216de641261a9b75aa8b14afb67f4a51bb1fb539",
      "chars": 13606,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests",
      "name": "CommonSafetyTests",
      "kind": "class",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L30-L53",
      "signature": "class CommonSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c32baaa241ba5a430ee126ef7f80750c561dd04abf50b23a05858538f3a09040",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests.test_input_and_output_symlinks_are_rejected",
      "name": "test_input_and_output_symlinks_are_rejected",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L40-L53",
      "signature": "def test_input_and_output_symlinks_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c0171dc07b616dd96ded4537c63ff4ac1fd13f016e761a06927fdeba4e98393",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests.test_json_output_is_private_and_refuses_overwrite",
      "name": "test_json_output_is_private_and_refuses_overwrite",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L31-L38",
      "signature": "def test_json_output_is_private_and_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2623cbee39cfe8bad2e7c951dd77ac4d6f10715a73adaf5659f79d90f1d5204",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#ExportTests",
      "name": "ExportTests",
      "kind": "class",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L284-L343",
      "signature": "class ExportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e3503d47bdeef2d10060c065790d994b554839bd6c78d42a34e0e6a27883cee",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#ExportTests.test_atomic_export_and_manifest",
      "name": "test_atomic_export_and_manifest",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L300-L343",
      "signature": "def test_atomic_export_and_manifest(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8609285b86d4bc5201be7346f05d63af2edfe44780994636fe5871605845307b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExportTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#ExportTests.test_profile_export_requires_explicit_confirmation",
      "name": "test_profile_export_requires_explicit_confirmation",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L285-L298",
      "signature": "def test_profile_export_requires_explicit_confirmation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d73027c082e5eb02bd7b3da6a6785ba59da7c3a6ef875e452c1c7cdb735ad831",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExportTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "name": "MetadataTests",
      "kind": "class",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L90-L178",
      "signature": "class MetadataTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "38170d82ca2de78ecdb50d4d2cf7ddf681a3da0f977fdd112ad68991b9f7ffde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_effective_dpi_tolerates_binary_float_roundoff",
      "name": "test_effective_dpi_tolerates_binary_float_roundoff",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L159-L178",
      "signature": "def test_effective_dpi_tolerates_binary_float_roundoff(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "36b644d8c3d50aab4272d9088916189737a759aa6639caec019c2ded5b9ab97e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_eps_bounding_box",
      "name": "test_eps_bounding_box",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L110-L121",
      "signature": "def test_eps_bounding_box(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4859f5e79617a48d3a034987a85b593ca8e47592d383d44fe32c91a7323f740",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_raster_dimensions_dpi_mode_and_screen",
      "name": "test_raster_dimensions_dpi_mode_and_screen",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L134-L157",
      "signature": "def test_raster_dimensions_dpi_mode_and_screen(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3a5eaae3a2c7473b8b890a8c79b2db6cb1fd4e0678bfc243c3ab07addbb7540",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_svg_dimensions_and_external_resource_count",
      "name": "test_svg_dimensions_and_external_resource_count",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L91-L108",
      "signature": "def test_svg_dimensions_and_external_resource_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9267b76b4c1cee8101ff08f7e5f3820309f893d906e4d4d864f30c0e56054c9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_svg_dtd_is_rejected",
      "name": "test_svg_dtd_is_rejected",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L123-L132",
      "signature": "def test_svg_dtd_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "caceedc27ce0ca45a8ae5dcf370b2251cab2650f9426936e4e4830b80ed05612",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetadataTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PaletteTests",
      "name": "PaletteTests",
      "kind": "class",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L56-L87",
      "signature": "class PaletteTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "acd1485ad9f3c2bb4c95da9e43b3f86d9be58ddb87c51a6be8cd491c544fefc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_grayscale_screen_is_explicitly_heuristic",
      "name": "test_grayscale_screen_is_explicitly_heuristic",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L81-L87",
      "signature": "def test_grayscale_screen_is_explicitly_heuristic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7dbe7d13cc66c55cd03c1a22bca4b7e4b777087a8f162e3aceb7867b6a81fab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaletteTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_on_white_subset_meets_graphical_threshold",
      "name": "test_on_white_subset_meets_graphical_threshold",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L64-L71",
      "signature": "def test_on_white_subset_meets_graphical_threshold(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfd17a67ebb302c37afd0a5c80ccef783000c297c89dbd14eecc388892fc1ef1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaletteTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_tol_palettes_match_current_issue",
      "name": "test_tol_palettes_match_current_issue",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L73-L79",
      "signature": "def test_tol_palettes_match_current_issue(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1848322928fcc7cb7f190ea469caf40931c7954979c469055d15c0595f8ecb21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaletteTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_wcag_contrast_reference_values",
      "name": "test_wcag_contrast_reference_values",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L57-L62",
      "signature": "def test_wcag_contrast_reference_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0ece7802e970bf7781a62cc205f24637819511036f37e1c17903ab9c5b9dfc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PaletteTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests",
      "name": "PublisherProfileTests",
      "kind": "class",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L181-L244",
      "signature": "class PublisherProfileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1018a072deb19e4892c201bcdde987b60ee61a1bd34924805369320db00975d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_acs_profile_does_not_invent_formats_or_dpi",
      "name": "test_acs_profile_does_not_invent_formats_or_dpi",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L216-L223",
      "signature": "def test_acs_profile_does_not_invent_formats_or_dpi(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cf23685edc0e0d4f000730157c6928b50a5a6e8137e29703e70136e27f291ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PublisherProfileTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_phase_mismatch_is_not_silenced",
      "name": "test_phase_mismatch_is_not_silenced",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L207-L214",
      "signature": "def test_phase_mismatch_is_not_silenced(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "152f3bdb610a906dba4c06743825618a39badcb2a28e64f85b2168b53a29b5a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PublisherProfileTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_plos_synthetic_tiff_matches_recorded_properties",
      "name": "test_plos_synthetic_tiff_matches_recorded_properties",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L225-L244",
      "signature": "def test_plos_synthetic_tiff_matches_recorded_properties(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f97a25151aa37c0f574d14b585bcafa0a807b4ce96b7f92d50388ff33f60bd87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PublisherProfileTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_profiles_capture_phase_and_current_dimensions",
      "name": "test_profiles_capture_phase_and_current_dimensions",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L182-L205",
      "signature": "def test_profiles_capture_phase_and_current_dimensions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16eb8390f02dc6d08374ae225332a04bafbffd3e9508f32cae9a84c382cb161b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PublisherProfileTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#StyleTests",
      "name": "StyleTests",
      "kind": "class",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L247-L281",
      "signature": "class StyleTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2688ea59eb0ef13e43d03c5bbbe11b39f81df5134bcbed95c27b440c5a5fee65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#StyleTests.test_all_mplstyle_assets_parse_when_matplotlib_available",
      "name": "test_all_mplstyle_assets_parse_when_matplotlib_available",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L254-L266",
      "signature": "def test_all_mplstyle_assets_parse_when_matplotlib_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7925f486a18e7a4e8cbb3fd3aed13750abe0fff1f737a71cd63f233591e9e6b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#StyleTests.test_generated_style_parses_when_matplotlib_available",
      "name": "test_generated_style_parses_when_matplotlib_available",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L268-L281",
      "signature": "def test_generated_style_parses_when_matplotlib_available(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd2ed34ef9c31635bc878b374a1e6317333f4822b63ce73ed8c0418708d5678f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleTests"
    },
    {
      "id": "tests/scientific-visualization/test_scripts.py#StyleTests.test_plain_style_has_dimension_preserving_export_default",
      "name": "test_plain_style_has_dimension_preserving_export_default",
      "kind": "method",
      "path": "tests/scientific-visualization/test_scripts.py",
      "span": "L248-L252",
      "signature": "def test_plain_style_has_dimension_preserving_export_default(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fd6ede109e674bf200148b38d5a05ad3a5d4c0bfba2236ca21ad5763386f347a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StyleTests"
    },
    {
      "id": "tests/scientific-writing/synthetic_manuscript.py",
      "name": "synthetic_manuscript.py",
      "kind": "file",
      "path": "tests/scientific-writing/synthetic_manuscript.py",
      "span": "L1-L188",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "8da700d7c645bace17960ccbdc03d6b1501ba9ccf0e32c10daec1736d64135b8",
      "chars": 6118,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/synthetic_manuscript.py#valid_authorship_manifest",
      "name": "valid_authorship_manifest",
      "kind": "function",
      "path": "tests/scientific-writing/synthetic_manuscript.py",
      "span": "L100-L147",
      "signature": "def valid_authorship_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "37856a8bc16d742cab0b2a320ee55fc0ceb1ee4be38ea35c1e769e1ea0313a02",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/synthetic_manuscript.py#valid_claim_csv",
      "name": "valid_claim_csv",
      "kind": "function",
      "path": "tests/scientific-writing/synthetic_manuscript.py",
      "span": "L38-L45",
      "signature": "def valid_claim_csv() -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "58d01e8256b8f96faeac52f6063f9fbdf1dcbe35d4cab4b1c6963fd768ed3faf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/synthetic_manuscript.py#valid_consistency_manifest",
      "name": "valid_consistency_manifest",
      "kind": "function",
      "path": "tests/scientific-writing/synthetic_manuscript.py",
      "span": "L48-L97",
      "signature": "def valid_consistency_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "900fc9998340e7edc9a85ec5910fa3ce8a7602b6cc14fdd6fd0e60354b71527b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/synthetic_manuscript.py#valid_manuscript_manifest",
      "name": "valid_manuscript_manifest",
      "kind": "function",
      "path": "tests/scientific-writing/synthetic_manuscript.py",
      "span": "L150-L187",
      "signature": "def valid_manuscript_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "064a79200313ed9b2ecfabc86d1f968717c09a80b0abe7026cf29fbcd88ac58d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/synthetic_manuscript.py#valid_source_manifest",
      "name": "valid_source_manifest",
      "kind": "function",
      "path": "tests/scientific-writing/synthetic_manuscript.py",
      "span": "L8-L35",
      "signature": "def valid_source_manifest() -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "b90557de07a16ead2cbf2a88a7ee4ebc380055320d7f7f017757e70888729ef9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L1-L226",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1e16e6e267cf6e36dffc99ebe5e353fe5066b8fa760fc5eee86a522b3c5e8908",
      "chars": 8741,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "name": "ScriptTests",
      "kind": "class",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L37-L216",
      "signature": "class ScriptTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "35b89a63bc3bb50d36f5611df8e6282523e6193d06a9875e2f636ebcc4f69a6c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_authorship_validator_requires_human_accountability",
      "name": "test_authorship_validator_requires_human_accountability",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L179-L192",
      "signature": "def test_authorship_validator_requires_human_accountability(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c7fac2df0d9b4e9575992a35ee1abe96ee1a1b29f10d00560b45e478c8aba8a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_accepts_verified_mappings",
      "name": "test_claim_audit_accepts_verified_mappings",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L115-L135",
      "signature": "def test_claim_audit_accepts_verified_mappings(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "51121e8c0f88a455cb880849d692e3db8eacda450ca444b148c79bd0d669b8a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_flags_untagged_number",
      "name": "test_claim_audit_flags_untagged_number",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L137-L143",
      "signature": "def test_claim_audit_flags_untagged_number(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "653576caf9648652568af09e4892315302cddea286e0ba6e8772db7be6477be8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_consistency_checks_methods_results_and_numbers",
      "name": "test_consistency_checks_methods_results_and_numbers",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L145-L165",
      "signature": "def test_consistency_checks_methods_results_and_numbers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a6050423ae76abf74cf13fe152e979261b3174145f8bce7b2e1b1398fa47e0c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_json_reader_rejects_nonfinite_values",
      "name": "test_json_reader_rejects_nonfinite_values",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L56-L61",
      "signature": "def test_json_reader_rejects_nonfinite_values(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b05f690a65e175aa41a1b591df5d51908c00cc98b8bee1fbeb0ac0b30e2821c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_lint_flags_placeholders_without_echoing_text",
      "name": "test_lint_flags_placeholders_without_echoing_text",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L194-L200",
      "signature": "def test_lint_flags_placeholders_without_echoing_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "367632692c016503c37605650d5be4df2db6be5018881ab3a603192e13e6281f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_reference_checker_is_offline_and_detects_duplicate",
      "name": "test_reference_checker_is_offline_and_detects_duplicate",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L167-L177",
      "signature": "def test_reference_checker_is_offline_and_detects_duplicate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "56ffa439ee2ef85de519a101c81ccc2656e93d92a92ea45ee1c1417e99d42d53",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_reporting_selector_and_non_scoring_coverage",
      "name": "test_reporting_selector_and_non_scoring_coverage",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L75-L113",
      "signature": "def test_reporting_selector_and_non_scoring_coverage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad4083272b70e1467f3c0053e5ba02a64873a2a68457508f50754fe1f89ba9ab",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_scaffold_is_local_and_not_submission_ready",
      "name": "test_scaffold_is_local_and_not_submission_ready",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L202-L216",
      "signature": "def test_scaffold_is_local_and_not_submission_ready(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "edcd258a918b7b0cc5d7fc97e3f681dfe04778fefc2c3fcc3c317e430c4e3aca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_source_template_fails_closed",
      "name": "test_source_template_fails_closed",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L63-L73",
      "signature": "def test_source_template_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a397c19835e44b25ee865591364887bc15f09c48b2a09905c0ca700e37b4ac3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.test_valid_manuscript_and_source_manifests",
      "name": "test_valid_manuscript_and_source_manifests",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L43-L54",
      "signature": "def test_valid_manuscript_and_source_manifests(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6b84c027b72c914583331e92024f193359db18ef135f4fc4255107bdac2259fb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_scripts.py#ScriptTests.write_json",
      "name": "write_json",
      "kind": "method",
      "path": "tests/scientific-writing/test_scripts.py",
      "span": "L38-L41",
      "signature": "def write_json(self, directory: Path, name: str, value: object) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "fbfb1b46483fbdfee2d4440f1212a6a71393dc706abd1c41b33e4426a77d941a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScriptTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py",
      "name": "test_static.py",
      "kind": "file",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L1-L176",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "1d8bf7ba6e023899c6c9313b6042b115cedd5707d302d632a3932dfba2eb1348",
      "chars": 6791,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests",
      "name": "StaticTests",
      "kind": "class",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L18-L171",
      "signature": "class StaticTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e7fda290c9cf948d6949026cd1b4952b40a1f3058d86161ad0e08d1d6acd4ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_all_python_is_parseable",
      "name": "test_all_python_is_parseable",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L40-L43",
      "signature": "def test_all_python_is_parseable(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "686cee2f05559104e321e2ff40e08e66109a03bd5a04f7c078d550175e533fdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_changes_remain_scoped_to_skill",
      "name": "test_changes_remain_scoped_to_skill",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L170-L171",
      "signature": "def test_changes_remain_scoped_to_skill(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71d93e2c1d452785535ec424178d821a1495a8f2a14b022660a618b96d5b01db",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_json_and_csv_assets_are_well_formed",
      "name": "test_json_and_csv_assets_are_well_formed",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L89-L97",
      "signature": "def test_json_and_csv_assets_are_well_formed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "332b96dc3d59636079f599e819576d0bc73c01ca8a0d9b5d299953a0b86d6970",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_no_bytecode_or_cache_artifacts",
      "name": "test_no_bytecode_or_cache_artifacts",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L162-L168",
      "signature": "def test_no_bytecode_or_cache_artifacts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "458e49b885f687bd1c868706620d405bf599e2862f1057813c2912dba765c97f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_no_cross_skill_calls_or_external_image_workflows",
      "name": "test_no_cross_skill_calls_or_external_image_workflows",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L142-L160",
      "signature": "def test_no_cross_skill_calls_or_external_image_workflows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c165c94e26f5dcaf893f98ea987db06876bce20ca42d32b78252f277a84976ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_registry_sources_exist_in_dated_ledger",
      "name": "test_registry_sources_exist_in_dated_ledger",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L112-L124",
      "signature": "def test_registry_sources_exist_in_dated_ledger(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ebbd5759f42bc2d31b734d2b53dea676aa104ed5c382c51e22587d914a2bfc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_relative_markdown_links_resolve",
      "name": "test_relative_markdown_links_resolve",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L126-L140",
      "signature": "def test_relative_markdown_links_resolve(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "44d4dac2c3462c4668941fcb949cd70f5deba2a55ed04b50c5697634732ea1f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_removed_external_generation_files_stay_removed",
      "name": "test_removed_external_generation_files_stay_removed",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L29-L38",
      "signature": "def test_removed_external_generation_files_stay_removed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6db9cb027d429776ab30e4cce55f6697d78b8b3a1abd586cda79d09a3dc11d0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_runtime_scripts_do_not_read_environment",
      "name": "test_runtime_scripts_do_not_read_environment",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L75-L87",
      "signature": "def test_runtime_scripts_do_not_read_environment(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f25db76f51b2525d13f871520a7a8f94d60084226a90a09945b22638b9a5ad8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_runtime_scripts_have_no_network_dynamic_eval_or_process_imports",
      "name": "test_runtime_scripts_have_no_network_dynamic_eval_or_process_imports",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L45-L73",
      "signature": "def test_runtime_scripts_have_no_network_dynamic_eval_or_process_imports( self, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ba120c33c72325898b877af655e2977e82accfbf5a0e652a85639f72ad0139b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_skill_frontmatter_and_length",
      "name": "test_skill_frontmatter_and_length",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L19-L27",
      "signature": "def test_skill_frontmatter_and_length(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35b2226819a857910267e4923b4f4aded09981e5ebeec8655bf82873426f11ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scientific-writing/test_static.py#StaticTests.test_templates_are_explicitly_incomplete",
      "name": "test_templates_are_explicitly_incomplete",
      "kind": "method",
      "path": "tests/scientific-writing/test_static.py",
      "span": "L99-L110",
      "signature": "def test_templates_are_explicitly_incomplete(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f090f1b60d8163436ecde1d61aded1a4f0b43b3df60948c32a69ced266d01e92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L1-L263",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "7b37e74e2e1051ef4128b80f76d013bd523180bacf3fae5b86e8ce7dbbe2517d",
      "chars": 10527,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests",
      "name": "AlgorithmComparisonTests",
      "kind": "class",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L204-L231",
      "signature": "class AlgorithmComparisonTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d9621ae7779526457e10c3cdb34a0ac2dd2ecd6f4cbed384707fa9566bd4416",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L205-L209",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9135dc6812e1cc640e59327a7144e04161537b49dd402b50eddc6171948c8b4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlgorithmComparisonTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests.test_kmeans_recovers_the_planted_structure",
      "name": "test_kmeans_recovers_the_planted_structure",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L218-L231",
      "signature": "def test_kmeans_recovers_the_planted_structure(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e85e8a47fbc2fe008b146f4930bc59094e774b6f775990c6b31107385a3e3ad1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlgorithmComparisonTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests.test_several_algorithms_are_compared",
      "name": "test_several_algorithms_are_compared",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L211-L216",
      "signature": "def test_several_algorithms_are_compared(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "67a93a3f60f2ef4fd8e57dfa242903e40471b5d698faeda6f43fd6f49e3e99a6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AlgorithmComparisonTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "name": "ClusteringPreprocessTests",
      "kind": "class",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L129-L155",
      "signature": "class ClusteringPreprocessTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "50ced3214f5fa44fb436496fea8eb9c38ed93b2bcd2683415ceef9f472e6e47c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L130-L133",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "acb89b6a0416f882efb355d95dd8177ce1d78a85ee0f3792b1fac0622d3deefc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusteringPreprocessTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_pca_reduces_to_the_requested_number_of_components",
      "name": "test_pca_reduces_to_the_requested_number_of_components",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L146-L150",
      "signature": "def test_pca_reduces_to_the_requested_number_of_components(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0de419c29174ecff868e97976a7eafc5f056d21b63634affd74e3718265c8e63",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusteringPreprocessTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_scaling_can_be_turned_off",
      "name": "test_scaling_can_be_turned_off",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L140-L144",
      "signature": "def test_scaling_can_be_turned_off(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "27db3249679f8aba4187de40e53713bbeab34ab97256f9949e479a82a24bf645",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusteringPreprocessTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_scaling_standardises_every_feature",
      "name": "test_scaling_standardises_every_feature",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L135-L138",
      "signature": "def test_scaling_standardises_every_feature(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c76f5104519b1ddfd4a6efbbe58c53fed33a4371dccd7a03b11b295f7bdd6332",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusteringPreprocessTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_the_input_matrix_is_not_mutated",
      "name": "test_the_input_matrix_is_not_mutated",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L152-L155",
      "signature": "def test_the_input_matrix_is_not_mutated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "017d2f2bc6ac492a2a2e7dcb0983b859e0ebe95f99c5bd62907f2dfa0ffcc61e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ClusteringPreprocessTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#EndToEndTests",
      "name": "EndToEndTests",
      "kind": "class",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L234-L258",
      "signature": "class EndToEndTests(ScratchDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f731b87ec26f153aef1f754d9c543c70d15b62e81bed1e29903ee33d15e283aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#EndToEndTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L235-L237",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e1c288d27fee6bb57a40cc52d3eae2bca4f2ad0f23dd9492d1f5786f8e6c7ab8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#EndToEndTests.test_the_classification_pipeline_trains_and_scores",
      "name": "test_the_classification_pipeline_trains_and_scores",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L248-L258",
      "signature": "def test_the_classification_pipeline_trains_and_scores(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9269e0d355bb4dff85439590a40e13cc580c9f5e0a6418a9c3d615573689353",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#EndToEndTests.test_the_full_clustering_analysis_runs",
      "name": "test_the_full_clustering_analysis_runs",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L239-L246",
      "signature": "def test_the_full_clustering_analysis_runs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33ca6952ad0fa8d9550cb2fd125f55ec0b7ce14af4900da0cae5d9dcb572a1a9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EndToEndTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#mixed_frame",
      "name": "mixed_frame",
      "kind": "function",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L43-L52",
      "signature": "def mixed_frame(n: int = 60) -> pd.DataFrame",
      "exported": true,
      "origin": "ast",
      "body_hash": "190f30b87be81c073742ad53ab47bfdb8d868f45791196b3e5ea11aaf74965c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#OptimalKTests",
      "name": "OptimalKTests",
      "kind": "class",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L175-L201",
      "signature": "class OptimalKTests(ScratchDirectoryTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6983d6be0a868399fdd916a17c826a97198a660dd9888c9eb271f1249209cffc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#OptimalKTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L176-L181",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d9632fac9315b7dc1a5e8fd9ae45a334d7c96bbd3940f847437b7e86f2b6ee91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimalKTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#OptimalKTests.test_the_search_covers_every_k_it_was_given",
      "name": "test_the_search_covers_every_k_it_was_given",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L192-L201",
      "signature": "def test_the_search_covers_every_k_it_was_given(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ab40d6cb533ec3934530f3a2a4f5549c316c3a98acb0892d24a55a851bada87",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimalKTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#OptimalKTests.test_three_well_separated_blobs_are_found",
      "name": "test_three_well_separated_blobs_are_found",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L183-L190",
      "signature": "def test_three_well_separated_blobs_are_found(self) -> None: # A silhouette search that cannot recover an obvious k=3 is not usable.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f1be1af33763f6f619f9fa2997dff30dee7c400e5df97bf08a3e9d8fea440ef7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OptimalKTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "name": "PreprocessingPipelineTests",
      "kind": "class",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L59-L126",
      "signature": "class PreprocessingPipelineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7e976852fb2b5807cf5957dd3c3112e0df27645529a9d7bf1af03cb369bfe834",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L60-L64",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d30d0cd994d09b5a90836d46ebd5f61943aa2b8054c3908159cb05f82eb74fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_a_missing_categorical_value_is_filled_rather_than_dropped",
      "name": "test_a_missing_categorical_value_is_filled_rather_than_dropped",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L104-L108",
      "signature": "def test_a_missing_categorical_value_is_filled_rather_than_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "852c66608bda4f8166d1e14cb6f8a67ecb619eaa5d342e3bc40b237ae42cdeb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_an_unseen_category_does_not_raise_at_transform_time",
      "name": "test_an_unseen_category_does_not_raise_at_transform_time",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L93-L102",
      "signature": "def test_an_unseen_category_does_not_raise_at_transform_time(self) -> None: # handle_unknown='ignore' -- a category that appears only in the test # fold must not blow up the whole cross-validation run.",
      "exported": true,
      "origin": "ast",
      "body_hash": "38b6d45d59c32369a91eff769c039c5727b6aeb2a9213fd36639f2da9e61e955",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_categorical_columns_become_one_hot_indicators",
      "name": "test_categorical_columns_become_one_hot_indicators",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L86-L91",
      "signature": "def test_categorical_columns_become_one_hot_indicators(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eccc0ca4639c9f9e3db6f9c5918b46f80c6b659cb6f7d975bcf34fad7cdc33dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_columns_outside_the_two_lists_are_dropped",
      "name": "test_columns_outside_the_two_lists_are_dropped",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L122-L126",
      "signature": "def test_columns_outside_the_two_lists_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4dd1e05a003351dd5b7feeba3e53bcef995c110f7bf37d290b33e81f78a5054d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_it_can_be_composed_into_a_single_estimator",
      "name": "test_it_can_be_composed_into_a_single_estimator",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L110-L120",
      "signature": "def test_it_can_be_composed_into_a_single_estimator(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7b0f54c50fdb0a8bef836cb275dcd7c7ccb4260bb84bad92525e257eccb5760b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_it_returns_an_unfitted_column_transformer",
      "name": "test_it_returns_an_unfitted_column_transformer",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L66-L73",
      "signature": "def test_it_returns_an_unfitted_column_transformer(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64071b5a94cbb44664e864bd80bf00be747fb214f4e061dd66248a37fe446394",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_numeric_columns_are_imputed_and_standardised",
      "name": "test_numeric_columns_are_imputed_and_standardised",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L75-L84",
      "signature": "def test_numeric_columns_are_imputed_and_standardised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "12853d023ab8f3ab6ae72eeec71b59b44e49bcf13b7f3ec4c8e1aa1fd09cb138",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreprocessingPipelineTests"
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase",
      "name": "ScratchDirectoryTestCase",
      "kind": "class",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L158-L172",
      "signature": "class ScratchDirectoryTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "952c00a28591ca87cc4f4c24373cab89729d822e6925a395f4284ee65cd9bee8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scikit-learn/test_scripts.py",
      "span": "L167-L172",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "988dfc3ffe2a310b1531d9b20fd3fb2affd678f4bcf2bc3da3ff46257c456571",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScratchDirectoryTestCase"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L1-L261",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "d11ec31140a1687710895e3093724ccd2a0b46c38ab5becfa2b62424c0ecf807",
      "chars": 10605,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CommonSafetyTests",
      "name": "CommonSafetyTests",
      "kind": "class",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L33-L97",
      "signature": "class CommonSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6042c907d40a9c3b1007943d9d32e8facc9daa01f5e862fedc534eb5d0d78df",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_help_is_available_without_running_workflows",
      "name": "test_help_is_available_without_running_workflows",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L85-L97",
      "signature": "def test_help_is_available_without_running_workflows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8600fb0363617ac2968c9ff9f7e2d2e228e917a79feccad6f033147a5cca4f0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_json_output_is_private_and_refuses_overwrite",
      "name": "test_json_output_is_private_and_refuses_overwrite",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L34-L41",
      "signature": "def test_json_output_is_private_and_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb29ef7411f866aee57006500d3609f4882bd66ba722387b51333aa204c20fdd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_local_paths_reject_urls_and_symlinks",
      "name": "test_local_paths_reject_urls_and_symlinks",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L43-L58",
      "signature": "def test_local_paths_reject_urls_and_symlinks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f433ea51bc96c4207d2ceb792cb1347351343ec21ab36cad4cb21ba14e96d23b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_no_shadow_modules_network_or_environment_reads",
      "name": "test_no_shadow_modules_network_or_environment_reads",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L60-L83",
      "signature": "def test_no_shadow_modules_network_or_environment_reads(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22bf34ab0b634bd6ebb7a259ce4272c0c09d6b1c361aa9e5e0c1c231b69c65e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CompetingRiskTests",
      "name": "CompetingRiskTests",
      "kind": "class",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L224-L242",
      "signature": "class CompetingRiskTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "265abbb8259c4b1fc057103f1cf11e9ddf64ca19567a3d955fc27f22e437ec41",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CompetingRiskTests.test_cif_shapes_and_sum_identity",
      "name": "test_cif_shapes_and_sum_identity",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L225-L238",
      "signature": "def test_cif_shapes_and_sum_identity(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6f76fb0c262e20cdb213f9de0e00b9ec5654bdd436c2d10ca5c837771a52589",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompetingRiskTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#CompetingRiskTests.test_noncontiguous_cause_codes_are_rejected",
      "name": "test_noncontiguous_cause_codes_are_rejected",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L240-L242",
      "signature": "def test_noncontiguous_cause_codes_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f4d4064a00770aa364c09141348170b02393fbdb380bc5136e09c82c3182a295",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CompetingRiskTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#MetricTests",
      "name": "MetricTests",
      "kind": "class",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L199-L221",
      "signature": "class MetricTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ec121128ef6b1e6cef9ae606b086ddde55288c72bde8715d2aa7ab706acc6f73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#MetricTests.test_risk_and_survival_shapes_are_distinct",
      "name": "test_risk_and_survival_shapes_are_distinct",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L210-L214",
      "signature": "def test_risk_and_survival_shapes_are_distinct(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c371efcbd6a95d2b9b127397f50c35a405c24d5dd0816c564a9563a043fa072",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#MetricTests.test_synthetic_metrics_cover_risk_and_probability_inputs",
      "name": "test_synthetic_metrics_cover_risk_and_probability_inputs",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L200-L208",
      "signature": "def test_synthetic_metrics_cover_risk_and_probability_inputs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3788ff92045544cad7cb9f685c0a716305ed6072f86b6e8275a067908472de11",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#MetricTests.test_time_grid_outside_training_support_is_rejected",
      "name": "test_time_grid_outside_training_support_is_rejected",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L216-L221",
      "signature": "def test_time_grid_outside_training_support_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "376636d5fa378bf3af6f232443cce653e6f0907907faeb004b0431aecfb9f1e6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetricTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#ReportTests",
      "name": "ReportTests",
      "kind": "class",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L245-L256",
      "signature": "class ReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "314635cdf377d55940ac9bed9ab61d4a19031a82dc439769ba060a374bfff18d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#ReportTests.test_report_distinguishes_metrics_and_disclaims_utility",
      "name": "test_report_distinguishes_metrics_and_disclaims_utility",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L246-L256",
      "signature": "def test_report_distinguishes_metrics_and_disclaims_utility(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d1a8d7417de06bf2bce55499ca4a95003d2d76380691dffb6a1662e02138973",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#TrainingTests",
      "name": "TrainingTests",
      "kind": "class",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L139-L196",
      "signature": "class TrainingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2411a6ca80b5ef188e49c64b6506b123ec26b8cd096323f58445cfce43b5e65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#TrainingTests.test_cox_pipeline_splits_before_learned_preprocessing",
      "name": "test_cox_pipeline_splits_before_learned_preprocessing",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L140-L166",
      "signature": "def test_cox_pipeline_splits_before_learned_preprocessing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2c0e29ae30939f87cd48b2ff9a2b28ac4003864216fa8318744fe54f430fd97",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#TrainingTests.test_explicit_schema_is_required",
      "name": "test_explicit_schema_is_required",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L187-L196",
      "signature": "def test_explicit_schema_is_required(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c72f49f0bea0b62e0b5205aff4f75abc58912a7baddad1c900f933a332b4331",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#TrainingTests.test_nested_tuning_runs_inside_training_data",
      "name": "test_nested_tuning_runs_inside_training_data",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L168-L185",
      "signature": "def test_nested_tuning_runs_inside_training_data(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a4dcaa1f2738c4e23449a08588470fe9ce0acc6e71c8bb5b59cdced21d61017b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#ValidationTests",
      "name": "ValidationTests",
      "kind": "class",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L100-L136",
      "signature": "class ValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1de5f9d5296285cf0142e121b6132fd65271c8943c87bef3d0f34c07f551a82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#ValidationTests.test_outcome_feature_leakage_is_rejected",
      "name": "test_outcome_feature_leakage_is_rejected",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L113-L121",
      "signature": "def test_outcome_feature_leakage_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "85db3f7b68e9b70439e88b5b37f4f51df541633b4b5d46a0618e3560ffb27c2a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#ValidationTests.test_structured_output_disables_pickle",
      "name": "test_structured_output_disables_pickle",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L123-L136",
      "signature": "def test_structured_output_disables_pickle(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b448cd71df471752ee209a160536d0af7aebac07536a90f97d49baa7cb1b6e13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/scikit-survival/test_scripts.py#ValidationTests.test_synthetic_csv_schema_converts_to_structured_array",
      "name": "test_synthetic_csv_schema_converts_to_structured_array",
      "kind": "method",
      "path": "tests/scikit-survival/test_scripts.py",
      "span": "L101-L111",
      "signature": "def test_synthetic_csv_schema_converts_to_structured_array(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f855988b8bee5c313e093e88a1f6d1e72cc60c8072835f41d445c5ab3bf91248",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidationTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L1-L405",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17750baf94939872da9e2be3992fd8350a0159f957a2cdeac82b013dcac04609",
      "chars": 16445,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder",
      "name": "FigureRecorder",
      "kind": "class",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L88-L123",
      "signature": "class FigureRecorder",
      "exported": true,
      "origin": "ast",
      "body_hash": "05e55e1d460bffd3ec03a33322b75b437aa0bd04d8c452747404d514db9df760",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L91-L92",
      "signature": "def __init__(self) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "47f3220ca2f8f34f4648ed3efaca661267541afa1203b791e2caae770365a48f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureRecorder"
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.install",
      "name": "install",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L100-L109",
      "signature": "def install(self, test: unittest.TestCase) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93689dedaa034aa25d5e61a0e48696a186775a89c71b9c3fe996494eff544793",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureRecorder"
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.kwargs_for",
      "name": "kwargs_for",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L119-L123",
      "signature": "def kwargs_for(self, name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "b95b8805c0404a6b62dcef3be9bd8412fe25c65aafb34949cae4071a72480e3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureRecorder"
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.names",
      "name": "names",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L112-L113",
      "signature": "def names(self) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "1840261287e7c5bc0fe8b389402284b59a1ba17b2a6a8832c4c31e9a3331de42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureRecorder"
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.saved",
      "name": "saved",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L116-L117",
      "signature": "def saved(self) -> list[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e93fd198b3733de7168d1b81b40bbd6dfabc16ea7b33a831ae6be8d19fc1965",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureRecorder"
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.stub",
      "name": "stub",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L94-L98",
      "signature": "def stub(self, name: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "044f50732a0607a5b0395c7757aca1d74387dbf140ca21de39a20752771c39ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureRecorder"
    },
    {
      "id": "tests/scvelo/test_scripts.py#FigureRecorder.stub.record",
      "name": "record",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L95-L96",
      "signature": "def record(adata=None, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fa733e016d4b410c7ce768660b96de3e3fa136116427804cbac8ff79f4086ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "name": "LayerRequirementTests",
      "kind": "class",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L126-L154",
      "signature": "class LayerRequirementTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "76dac626d3bf5076e11996cb752ad7b90c079a306b070706765792d8b3f9ea42",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#LayerRequirementTests.run_on",
      "name": "run_on",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L134-L136",
      "signature": "def run_on(self, adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99de52e5292430d37a5d1668b342229167a6889c4db641f99503e053f895dca1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LayerRequirementTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#LayerRequirementTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L129-L132",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3b3f7c4cf803de5a9733d5895f8eb7b520434a04ebd9030998048550640a02e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LayerRequirementTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_spliced_layer_is_refused_before_any_work",
      "name": "test_a_missing_spliced_layer_is_refused_before_any_work",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L138-L142",
      "signature": "def test_a_missing_spliced_layer_is_refused_before_any_work(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc70a8eef689023aee50ef1b6305a8112f268c7f59aa4a905313aa1f032a03f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LayerRequirementTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_unspliced_layer_is_refused",
      "name": "test_a_missing_unspliced_layer_is_refused",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L144-L148",
      "signature": "def test_a_missing_unspliced_layer_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e736b6396a80e85ece24d62b6389b06f219b0013b2ec8e9e8ac4faa632f8ca7e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LayerRequirementTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_the_message_names_the_tool_that_produces_the_layers",
      "name": "test_the_message_names_the_tool_that_produces_the_layers",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L150-L154",
      "signature": "def test_the_message_names_the_tool_that_produces_the_layers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c49c83bd58ccf558bf414eebc88f1d5d1bb322e37a08f2bb96315c0d650df86",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LayerRequirementTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#ModeValidationTests",
      "name": "ModeValidationTests",
      "kind": "class",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L385-L400",
      "signature": "class ModeValidationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c74a1e53aaddf87b422651a90060ca0f848290805cbee90029952fafc48aec63",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#ModeValidationTests.test_an_unknown_mode_is_rejected_by_scvelo",
      "name": "test_an_unknown_mode_is_rejected_by_scvelo",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L386-L400",
      "signature": "def test_an_unknown_mode_is_rejected_by_scvelo(self) -> None: # The script forwards `mode` verbatim, so a typo must surface as an # error naming the allowed estimators rather than as silent nonsense.",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4b5ba5c28ef765fda8840cef0e6b3ced6f386bad5779fb892e61438cfe8fb26",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModeValidationTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests",
      "name": "StepOrderTests",
      "kind": "class",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L273-L382",
      "signature": "class StepOrderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7cfde80f7132b900d6c623a810790a9e8b64bdff78967e2e6e2764c9cffb4e1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "name": "analyse",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L327-L337",
      "signature": "def analyse(self, **kwargs) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "267e6465c8e70f1c0943b62e9db17434390a460b334b2f68c58d0712271cbcd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L276-L325",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06fa7bfb2bff0e6d0dfbd47432bf6968f87831717c06804cead533c7e0aaa414",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_confidence",
      "name": "add_confidence",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L296-L303",
      "signature": "def add_confidence(adata): # Half the cells at 0.9 and half at 0.5: mean 0.700, and exactly # half above the 0.7 high-confidence cut used by the summary.",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa7fd4d574fc96b4dc75759dedec17c9fc0c350804fd9f998fcf0311009cfdd5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_fits",
      "name": "add_fits",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L305-L306",
      "signature": "def add_fits(adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0fc035b91a317f1fe105322e12d346e4a0d15a2d63bb1a05824aa3e36396a7ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_latent_time",
      "name": "add_latent_time",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L311-L312",
      "signature": "def add_latent_time(adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "678832316a00f53bea921f82c0911c29338e91ac157bb2181b9a3e5615d9dc73",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_pseudotime",
      "name": "add_pseudotime",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L308-L309",
      "signature": "def add_pseudotime(adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "80d659e76c7f359947cff09754f6c9a597b7c2e0d4e1f47c6789ee4de15a2a6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_velocity",
      "name": "add_velocity",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L293-L294",
      "signature": "def add_velocity(adata)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0707dd39765606848bd326bbdd5dad22814ab83373f8b8b7d1ca97c5ca0791f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.record",
      "name": "record",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L285-L291",
      "signature": "def record(name, effect=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c011fccb76ec83e184b6ca2117212ca44f092a47a91aaf32fe7a6dbb3251ff5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.record.stub",
      "name": "stub",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L286-L289",
      "signature": "def stub(adata, *args, **kwargs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9fd81fcee8dd3e17d02adb06d7a59f2701588c6dc9c07a6858796c707f232318",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_a_stochastic_run_skips_the_dynamical_only_steps",
      "name": "test_a_stochastic_run_skips_the_dynamical_only_steps",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L355-L360",
      "signature": "def test_a_stochastic_run_skips_the_dynamical_only_steps(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "569569b3d3c348688fa00c4adaa0cf52414471498a77da7b105a39d5b4d672c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_an_absent_grouping_column_skips_ranking_instead_of_failing",
      "name": "test_an_absent_grouping_column_skips_ranking_instead_of_failing",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L366-L368",
      "signature": "def test_an_absent_grouping_column_skips_ranking_instead_of_failing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "60c46454dfdfdefffbf70319de23cd6aa4fd22521b5ca84be18447cf0c2974a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_gene_ranking_needs_the_grouping_column",
      "name": "test_gene_ranking_needs_the_grouping_column",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L362-L364",
      "signature": "def test_gene_ranking_needs_the_grouping_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8055c205e515bb72042daf27904ee061f1b2b69f08b767d10e12ee6909c0a7a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_dynamical_model_adds_latent_time_and_the_driver_heatmap",
      "name": "test_the_dynamical_model_adds_latent_time_and_the_driver_heatmap",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L346-L353",
      "signature": "def test_the_dynamical_model_adds_latent_time_and_the_driver_heatmap(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "540508d095f2cd50132f1897e08121b048cb7e2c1eb96e03037b2ae2e86a5caa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_dynamical_model_recovers_dynamics_before_estimating",
      "name": "test_the_dynamical_model_recovers_dynamics_before_estimating",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L339-L344",
      "signature": "def test_the_dynamical_model_recovers_dynamics_before_estimating(self) -> None: # Reversed, `velocity(mode=\"dynamical\")` has no fitted parameters to use.",
      "exported": true,
      "origin": "ast",
      "body_hash": "951cfc993ad2802a7dade0ba69daa50be48758a21fd97e6ae0f2e6e82fb146d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_output_directory_is_created_before_anything_is_written",
      "name": "test_the_output_directory_is_created_before_anything_is_written",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L379-L382",
      "signature": "def test_the_output_directory_is_created_before_anything_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a6e221c936187a9069ab1c12ce2ed263ca538f76f3eb4e888837cec29e3b568",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_summary_statistics_are_computed_over_the_confidences",
      "name": "test_the_summary_statistics_are_computed_over_the_confidences",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L370-L377",
      "signature": "def test_the_summary_statistics_are_computed_over_the_confidences(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f54d2ca78c54f58d69ea7e4015f0f5a2df5898f07984cd17b36b83eb01af8e71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepOrderTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#synthetic",
      "name": "synthetic",
      "kind": "function",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L65-L85",
      "signature": "def synthetic(n_obs: int = N_OBS, n_vars: int = N_VARS, seed: int = 0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d6c56d604017b7cd163c2285837ab46ab9385148141910678956778f506615d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "name": "VelocityRunTests",
      "kind": "class",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L157-L270",
      "signature": "class VelocityRunTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8022fd2dfa8881f45d5919da894fe4093c03e030749dcfb2336eef541d5b1037",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L163-L196",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7daf187a19ee694de61cf12e0882e9c5304cf7527d6ea9fcc02d187c1dbc738",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_a_non_dynamical_run_skips_the_dynamical_only_results",
      "name": "test_a_non_dynamical_run_skips_the_dynamical_only_results",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L232-L234",
      "signature": "def test_a_non_dynamical_run_skips_the_dynamical_only_results(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d0d2817b2d2a30856e0019a23127864a4ca04d78b6cc1831de1b75ed842eacf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_at_least_one_gene_has_a_usable_velocity",
      "name": "test_at_least_one_gene_has_a_usable_velocity",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L212-L216",
      "signature": "def test_at_least_one_gene_has_a_usable_velocity(self) -> None: # Genes scVelo rejects are left as NaN; an all-NaN layer would mean the # run produced nothing to plot or rank.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b3aea57cff0885648c74ddc326ddafd95646e96da468507cc4ed041733fd096f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_driver_genes_are_ranked_because_the_grouping_column_exists",
      "name": "test_driver_genes_are_ranked_because_the_grouping_column_exists",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L229-L230",
      "signature": "def test_driver_genes_are_ranked_because_the_grouping_column_exists(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "202665163c8982f49a5c95ccb5c5c303e44a0597ee8847ad82e6f8d6a1e6c93e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_every_figure_is_written_inside_the_output_directory",
      "name": "test_every_figure_is_written_inside_the_output_directory",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L261-L265",
      "signature": "def test_every_figure_is_written_inside_the_output_directory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "844f5b1d3f5c80634a2212c777cfc15220d858f11c1a2977acb75853f658f769",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_annotated_object_round_trips_through_the_saved_h5ad",
      "name": "test_the_annotated_object_round_trips_through_the_saved_h5ad",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L236-L242",
      "signature": "def test_the_annotated_object_round_trips_through_the_saved_h5ad(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "62b7f21b1c2b869353bd4373f2f92574ad8d26524e193289c0e1428d4dcffe5d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_confidences_stay_inside_their_definition",
      "name": "test_the_confidences_stay_inside_their_definition",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L223-L227",
      "signature": "def test_the_confidences_stay_inside_their_definition(self) -> None: # velocity_confidence is a cosine correlation, so it cannot leave [-1, 1].",
      "exported": true,
      "origin": "ast",
      "body_hash": "111b1f78e154f6841bbd02ae695602b6d4929ffa29b10c09881a7b2be7748771",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_downstream_per_cell_annotations_are_present",
      "name": "test_the_downstream_per_cell_annotations_are_present",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L218-L221",
      "signature": "def test_the_downstream_per_cell_annotations_are_present(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "218604d873f7e4257e0cd2ddefa0a92a753c8346da908486a5be7d16372a7cfd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_embedding_figures_use_the_umap_basis_and_the_grouping",
      "name": "test_the_embedding_figures_use_the_umap_basis_and_the_grouping",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L256-L259",
      "signature": "def test_the_embedding_figures_use_the_umap_basis_and_the_grouping(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a896bb4c0107fe4e13f0a306616a16febf6842e057b3cc9257104eac85b5d1b5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_four_always_on_figures_are_requested",
      "name": "test_the_four_always_on_figures_are_requested",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L244-L254",
      "signature": "def test_the_four_always_on_figures_are_requested(self) -> None: # Stream plot, arrow plot, pseudotime, and the speed/coherence pair.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e06509dfb61e83d5d97e169fc8d7fbda39adc8c469db456455585e0d75240952",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_gene_set_is_narrowed_to_the_requested_top_genes",
      "name": "test_the_gene_set_is_narrowed_to_the_requested_top_genes",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L201-L205",
      "signature": "def test_the_gene_set_is_narrowed_to_the_requested_top_genes(self) -> None: # 40 genes in, 15 requested: the count is decided by the HVG step, which # is exactly what the scVelo 0.3 preprocessing change moved to Scanpy.",
      "exported": true,
      "origin": "ast",
      "body_hash": "578e90be8e6ef1290dbb361c6c3a7ef9469a30379c05fe0c5a892d438ab48474",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_input_object_is_annotated_in_place",
      "name": "test_the_input_object_is_annotated_in_place",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L198-L199",
      "signature": "def test_the_input_object_is_annotated_in_place(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cbc2d8ac4e4824b7e067cce92f2561b4c009c8ebc6f5a7c6f5119ad8ce74e0ec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_moments_and_velocity_layers_are_added",
      "name": "test_the_moments_and_velocity_layers_are_added",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L207-L210",
      "signature": "def test_the_moments_and_velocity_layers_are_added(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dcac4f01d40da068ac182ea60d1a818cc970bbd24cbd3f090eecdc737d86d1d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_summary_reports_the_cell_and_gene_counts_it_finished_with",
      "name": "test_the_summary_reports_the_cell_and_gene_counts_it_finished_with",
      "kind": "method",
      "path": "tests/scvelo/test_scripts.py",
      "span": "L267-L270",
      "signature": "def test_the_summary_reports_the_cell_and_gene_counts_it_finished_with(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "038a5bf41a05fafcbec021fd3df31c80934a5c04565f9fea3dcf1bfdd24a83e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VelocityRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/shap/test_scripts.py",
      "span": "L1-L343",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "16252b103959e2604a73d8cd09b295f74e61c001c64954e44465e53ab363800b",
      "chars": 15186,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#ArgumentBoundTests",
      "name": "ArgumentBoundTests",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L53-L73",
      "signature": "class ArgumentBoundTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a07a98dbc51b87417e9dbad4ec368b11780701b3f4d381c1a92093e2f5f57283",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#ArgumentBoundTests.test_a_positive_integer_is_accepted_and_zero_is_not",
      "name": "test_a_positive_integer_is_accepted_and_zero_is_not",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L54-L61",
      "signature": "def test_a_positive_integer_is_accepted_and_zero_is_not(self) -> None: # --background-size 0 would build an empty background, which makes every # SHAP value meaningless rather than merely wrong.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e32d4f3ba288320ccaf1a9404e4ddf3a4193c28fa6a048378c8281ae4d1a7d78",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentBoundTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ArgumentBoundTests.test_tolerances_must_be_strictly_positive",
      "name": "test_tolerances_must_be_strictly_positive",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L68-L73",
      "signature": "def test_tolerances_must_be_strictly_positive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8682423ba8cec03dfa7613fe96b0aa0cdf0723e7183fc9ea74800187fabbb326",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentBoundTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ArgumentBoundTests.test_zero_is_a_valid_class_index_but_a_negative_one_is_not",
      "name": "test_zero_is_a_valid_class_index_but_a_negative_one_is_not",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L63-L66",
      "signature": "def test_zero_is_a_valid_class_index_but_a_negative_one_is_not(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c94fe5d96d071a4ba9c52abb872342caf806540850a501cfdc9ece14cde9895c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ArgumentBoundTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests",
      "name": "ExplanationTests",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L115-L180",
      "signature": "class ExplanationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2923f9b58ff53c2ba6c9e55989447243e20ef975a74cdd8ba9d088720d95ee29",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L119-L133",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0a505005ebeae1c338fd63fcec03f3a1e51db62e7fd259577413604608a6369c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExplanationTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests.test_selecting_a_class_takes_that_slice_and_no_other",
      "name": "test_selecting_a_class_takes_that_slice_and_no_other",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L140-L148",
      "signature": "def test_selecting_a_class_takes_that_slice_and_no_other(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "91b09b00d6708cf709003d1588900cf2f0f5ba5042cd1cfe21b93f987ff125ad",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExplanationTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests.test_shap_values_reconstruct_the_predicted_probability",
      "name": "test_shap_values_reconstruct_the_predicted_probability",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L150-L161",
      "signature": "def test_shap_values_reconstruct_the_predicted_probability(self) -> None: # The defining property: base value + contributions = model output. The # script asserts this with np.testing.assert_allclose; here the target # is recomputed from predict_proba so the check is independent.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f272b60d37eb89790b49e94a2bab62d87b1201f496b46c82a014ec36a3427bbe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExplanationTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests.test_the_base_value_is_the_background_mean_prediction",
      "name": "test_the_base_value_is_the_background_mean_prediction",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L169-L180",
      "signature": "def test_the_base_value_is_the_background_mean_prediction(self) -> None: # With an interventional masker the base value is the model's average # output over the background sample, and it is identical for every row.",
      "exported": true,
      "origin": "ast",
      "body_hash": "81577a0952928cfc84afb916735b503b8d8ec38d226d58d530995aa56b44975c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExplanationTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests.test_the_explainer_produces_one_slice_per_class",
      "name": "test_the_explainer_produces_one_slice_per_class",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L135-L138",
      "signature": "def test_the_explainer_produces_one_slice_per_class(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b134f5d6d85e91d2b1c1e69d8cd59db883749a03bfee412d4f69a72bbc8dc5aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExplanationTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ExplanationTests.test_the_two_class_slices_are_mirror_images",
      "name": "test_the_two_class_slices_are_mirror_images",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L163-L167",
      "signature": "def test_the_two_class_slices_are_mirror_images(self) -> None: # Binary probabilities sum to one, so each feature's contribution to # class 1 must be the negative of its contribution to class 0.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b0ceb9a45757e3fef00e9455f93e4008e863f1ee23ace736d90288d39e207f9b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExplanationTests"
    },
    {
      "id": "tests/shap/test_scripts.py#FigureExportTests",
      "name": "FigureExportTests",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L183-L205",
      "signature": "class FigureExportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "17d747cc61070899474931b7cc84401a8013369ef4faeb4b6f057298bc2fd573",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#FigureExportTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L184-L185",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20e475bad65dd9381b5940547913b670cbced56f3dac46af3b08cedb204f6e92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureExportTests"
    },
    {
      "id": "tests/shap/test_scripts.py#FigureExportTests.test_a_missing_axis_falls_back_to_the_current_figure",
      "name": "test_a_missing_axis_falls_back_to_the_current_figure",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L198-L205",
      "signature": "def test_a_missing_axis_falls_back_to_the_current_figure(self) -> None: # Some shap.plots helpers return None and draw into gcf().",
      "exported": true,
      "origin": "ast",
      "body_hash": "34d72822255f4b2c8ad9c8bb719fb618d64f6b23a88f50d945c9d555f3311bf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureExportTests"
    },
    {
      "id": "tests/shap/test_scripts.py#FigureExportTests.test_saving_an_axis_writes_a_file_and_leaves_no_open_figure",
      "name": "test_saving_an_axis_writes_a_file_and_leaves_no_open_figure",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L187-L196",
      "signature": "def test_saving_an_axis_writes_a_file_and_leaves_no_open_figure(self) -> None: # A report that exports four figures without closing them exhausts # matplotlib's figure warning threshold and leaks memory.",
      "exported": true,
      "origin": "ast",
      "body_hash": "65e66fbaea6a5531339ec7f043836c1652aa4773568d1069cb75eed3b1cc030b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FigureExportTests"
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests",
      "name": "OutputSelectionTests",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L83-L112",
      "signature": "class OutputSelectionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7dd8145467c226c8e94d713576fd646b7d0c72866f62d90a3cce1b8cfbd6cc1d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_class_index_past_the_last_output_is_rejected",
      "name": "test_a_class_index_past_the_last_output_is_rejected",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L98-L100",
      "signature": "def test_a_class_index_past_the_last_output_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1d581c830305248f749973022623ece53d11a181d2ac465448de1396f5c2c42",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSelectionTests"
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_named_output_keeps_its_name",
      "name": "test_a_named_output_keeps_its_name",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L108-L112",
      "signature": "def test_a_named_output_keeps_its_name(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3533270aedf18404c62e91f3d6b19ac790d6041ce21f2859f1986d0b24319cd1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSelectionTests"
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_two_dimensional_explanation_is_returned_unchanged_for_class_zero",
      "name": "test_a_two_dimensional_explanation_is_returned_unchanged_for_class_zero",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L84-L86",
      "signature": "def test_a_two_dimensional_explanation_is_returned_unchanged_for_class_zero(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a2c2cf60f21bfc1137949d5297cc9062ef462905bd2327c16dd6ada1bb761d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSelectionTests"
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_two_dimensional_explanation_rejects_any_other_class",
      "name": "test_a_two_dimensional_explanation_rejects_any_other_class",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L88-L90",
      "signature": "def test_a_two_dimensional_explanation_rejects_any_other_class(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0f4690be07e82a9d3a1bb68e9e2d694f9ed5baaa7d1f8e75fc846195a8cc6fb0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSelectionTests"
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests.test_an_unexpected_rank_names_the_shape_it_got",
      "name": "test_an_unexpected_rank_names_the_shape_it_got",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L92-L96",
      "signature": "def test_an_unexpected_rank_names_the_shape_it_got(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2e88483437baa687dbd906eb01263a946edee197011fa3e082d37359ad997377",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSelectionTests"
    },
    {
      "id": "tests/shap/test_scripts.py#OutputSelectionTests.test_output_names_fall_back_to_a_positional_label",
      "name": "test_output_names_fall_back_to_a_positional_label",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L102-L106",
      "signature": "def test_output_names_fall_back_to_a_positional_label(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8e7b8d7c7269c4a3e5c06a74d8db943d5394aedeaaf1936b7df217ba4f16348",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputSelectionTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportFailureTests",
      "name": "ReportFailureTests",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L312-L338",
      "signature": "class ReportFailureTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f44c91a89060eb8e0f9437c13e8eee65177c06decc72b23b10198c79b144cdbf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#ReportFailureTests.test_a_class_index_outside_the_model_is_rejected_before_any_work",
      "name": "test_a_class_index_outside_the_model_is_rejected_before_any_work",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L313-L328",
      "signature": "def test_a_class_index_outside_the_model_is_rejected_before_any_work(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "636f581ebe2a4539cf0cf15c37c5fd42b0a644ea50612b7de32b3a31772802d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportFailureTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportFailureTests.test_a_negative_background_size_is_refused_by_the_parser",
      "name": "test_a_negative_background_size_is_refused_by_the_parser",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L330-L338",
      "signature": "def test_a_negative_background_size_is_refused_by_the_parser(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fb7d768020fbb56604b42eb69946198a461a05e149a9ea93f0cb64a38bdcb26",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportFailureTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests",
      "name": "ReportRunTests",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L208-L309",
      "signature": "class ReportRunTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "09a20e444135afc3afce22284be65c6b916d5846a6ab6bd8ca15b4f56277f030",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L212-L233",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c3b4d0c4bab59989598e82b6dd5bd9c7269d31b23f978585ce309f4ca1ba6e22",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.tearDownClass",
      "name": "tearDownClass",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L236-L237",
      "signature": "def tearDownClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7088f3df806706c16b140c1b31122179b16539d2621265a8bf95b75668d11ea2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_every_documented_artefact_is_written",
      "name": "test_every_documented_artefact_is_written",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L239-L253",
      "signature": "def test_every_documented_artefact_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6aa7e03d72f438f02c55a15ba34b0dc32a1b7fbe944ee98af6e9f2f796f66a89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_the_additivity_error_is_inside_the_tolerance_it_reports",
      "name": "test_the_additivity_error_is_inside_the_tolerance_it_reports",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L266-L270",
      "signature": "def test_the_additivity_error_is_inside_the_tolerance_it_reports(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "64abe9a997216092fd7436f457243f8c642047aa8b29ecaa818a39c18b92aa67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_the_first_row_breakdown_is_ordered_by_contribution_size",
      "name": "test_the_first_row_breakdown_is_ordered_by_contribution_size",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L295-L305",
      "signature": "def test_the_first_row_breakdown_is_ordered_by_contribution_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a859b78ddfde553056a6b54103b629fb76fd7e1eba15ec6d09268498802c1ff1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_the_importance_table_is_ranked_by_mean_absolute_shap",
      "name": "test_the_importance_table_is_ranked_by_mean_absolute_shap",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L286-L293",
      "signature": "def test_the_importance_table_is_ranked_by_mean_absolute_shap(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8e8c274b92ef10892d6ddbf205d636af9d15462732e2e4e4421c277239791c68",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_the_metadata_records_the_run_it_actually_did",
      "name": "test_the_metadata_records_the_run_it_actually_did",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L255-L264",
      "signature": "def test_the_metadata_records_the_run_it_actually_did(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a70617c61edecf66e621028d1af1aa137a9de65afd51108b145995e7bdb3ba8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_the_reconstruction_csv_adds_up_row_by_row",
      "name": "test_the_reconstruction_csv_adds_up_row_by_row",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L272-L284",
      "signature": "def test_the_reconstruction_csv_adds_up_row_by_row(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dfe09f7aaa03042435948b14da2953ce316f046edf318fa549bc86e64eea13c5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#ReportRunTests.test_the_run_prints_its_metadata_and_where_it_wrote",
      "name": "test_the_run_prints_its_metadata_and_where_it_wrote",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L307-L309",
      "signature": "def test_the_run_prints_its_metadata_and_where_it_wrote(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5a4013e6253e4901cc64eeb5f1ae12da569fa996d287ff1159d6559c7feac168",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportRunTests"
    },
    {
      "id": "tests/shap/test_scripts.py#SingleOutputStub",
      "name": "SingleOutputStub",
      "kind": "class",
      "path": "tests/shap/test_scripts.py",
      "span": "L76-L80",
      "signature": "class SingleOutputStub",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ab8fbbb94126db076c927da1b203e559473ef9ecdbba31d0d2c8f33f6244db5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/shap/test_scripts.py#SingleOutputStub.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/shap/test_scripts.py",
      "span": "L79-L80",
      "signature": "def __init__(self, shape: tuple[int, ...]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "48b1d7fd81a5d615b953cc7ec11464cc0108583de07bc14c46bc61e994ffa17d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SingleOutputStub"
    },
    {
      "id": "tests/simpy/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/simpy/test_scripts.py",
      "span": "L1-L460",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "225a7d6aa715f0a75842fd2bd1de790cd61715e815cecc0598d873b011040d9e",
      "chars": 17700,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "name": "CoreSemanticsTests",
      "kind": "class",
      "path": "tests/simpy/test_scripts.py",
      "span": "L150-L270",
      "signature": "class CoreSemanticsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d3354e1cfb25eb2bf5ade5f0d18ebb62e0e4983dad8ff7ccb07a7945672ef7d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants",
      "name": "test_container_and_store_variants",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L246-L270",
      "signature": "def test_container_and_store_variants(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b1aaa46aa120ebadcc0a08c3876a68222df54720f7bc89ce3100c2f23e958c4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoreSemanticsTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants.exercise",
      "name": "exercise",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L254-L265",
      "signature": "def exercise()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f479398271483f68e1b44d53fde444524a6561ec83c041b70f1854e6a562a44",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_numeric_until_excludes_boundary_and_event_until_returns_value",
      "name": "test_numeric_until_excludes_boundary_and_event_until_returns_value",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L164-L179",
      "signature": "def test_numeric_until_excludes_boundary_and_event_until_returns_value(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "536e4e0abdb90552c00a81394fa428fe8248b1bbcf0863cb031c3e9aa602066a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoreSemanticsTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage",
      "name": "test_preemption_interrupt_cause_identifies_request_and_usage",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L201-L226",
      "signature": "def test_preemption_interrupt_cause_identifies_request_and_usage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "793b639830c347942bc9d682238c0c4eaa5e471d8d19ebb714bca354fb7f71c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoreSemanticsTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage.high_priority",
      "name": "high_priority",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L215-L219",
      "signature": "def high_priority()",
      "exported": true,
      "origin": "ast",
      "body_hash": "668a80e874264ba7ab63a5a3f6fbe67e807a5172c0e23c74aa26f49c1624436c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage.low_priority",
      "name": "low_priority",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L206-L213",
      "signature": "def low_priority()",
      "exported": true,
      "origin": "ast",
      "body_hash": "1e47b9311bab43ef0aabfe97921c05204f5bbe51ea128f8b38a67cf0bc98a3fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_priority_resource_orders_queued_requests",
      "name": "test_priority_resource_orders_queued_requests",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L228-L244",
      "signature": "def test_priority_resource_orders_queued_requests(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "15543f446b93c2ef0f117c58b21ee72a8ffc3ff805689b18524226bebd16cc01",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoreSemanticsTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_priority_resource_orders_queued_requests.user",
      "name": "user",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L233-L238",
      "signature": "def user(name: str, priority: int, delay: float, duration: float)",
      "exported": true,
      "origin": "ast",
      "body_hash": "16a88245451b7a0c347c1d0acc858f659b4a2afc872b00586877a8d0c3696492",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping",
      "name": "test_process_return_and_condition_mapping",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L181-L199",
      "signature": "def test_process_return_and_condition_mapping(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3bc195c44ea3ddfe3006c74a0922a6ad01ba531c7ef385d04a67256ca19118a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoreSemanticsTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping.coordinator",
      "name": "coordinator",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L192-L195",
      "signature": "def coordinator()",
      "exported": true,
      "origin": "ast",
      "body_hash": "4baa0d39e269d768330bb13cdb4e27320b4d28164737c5cd4200049e934a97bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping.worker",
      "name": "worker",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L184-L186",
      "signature": "def worker()",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ce5c77f5e2a5629cbf150bb185ea78394b4ab06da23598919464559819d0416",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic",
      "name": "test_same_time_events_are_fifo_deterministic",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L151-L162",
      "signature": "def test_same_time_events_are_fifo_deterministic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3f6bd11bb23898c32361e4b4fa046c9495a306a9b74713f5cf913d156c5068a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CoreSemanticsTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic.process",
      "name": "process",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L155-L157",
      "signature": "def process(label: str)",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a7e4c061590af4d65e810b223de0dca1b0476b77e591374c782c60a24f0d07e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests",
      "name": "MonitoringTests",
      "kind": "class",
      "path": "tests/simpy/test_scripts.py",
      "span": "L273-L335",
      "signature": "class MonitoringTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "0c87a42548487d4c134ba692fb9000b28738f1bab05d259d9ba7d02136ca49dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded",
      "name": "test_pending_request_cancellation_is_recorded",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L297-L319",
      "signature": "def test_pending_request_cancellation_is_recorded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f28ab59d6e5a780c35ec3adaaee1fdb7ec185e4acc5fbe725ef2d60b9c5ac36",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonitoringTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded.holder",
      "name": "holder",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L302-L305",
      "signature": "def holder()",
      "exported": true,
      "origin": "ast",
      "body_hash": "3877d230007bd2cc7a36edcaddff738885b4451b512c74dbe99ce0325f16b9b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded.impatient",
      "name": "impatient",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L307-L311",
      "signature": "def impatient()",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc6ab9414ea3dd02c897d559ad6d4d7797f9b03cc2b2f6c1342e6516ab4153c1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests.test_resource_monitor_uses_time_weighting",
      "name": "test_resource_monitor_uses_time_weighting",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L274-L295",
      "signature": "def test_resource_monitor_uses_time_weighting(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8bd60bdb7c7ca014b5d740134aa33a5be0e8bbda612000ac1203cf0303d12479",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonitoringTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests.test_resource_monitor_uses_time_weighting.user",
      "name": "user",
      "kind": "function",
      "path": "tests/simpy/test_scripts.py",
      "span": "L279-L283",
      "signature": "def user(delay: float, duration: float)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7c9616b33f7c0c6db07055938f2cf82713a650df81d42d9a833aa55e263dd1a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#MonitoringTests.test_trace_round_trip_and_order_summary",
      "name": "test_trace_round_trip_and_order_summary",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L321-L335",
      "signature": "def test_trace_round_trip_and_order_summary(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae27fb7bceb93d6e2e9593c0e5fe1542cb8848ecfd8648cb511af59fc29eac3f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MonitoringTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ReplicationTests",
      "name": "ReplicationTests",
      "kind": "class",
      "path": "tests/simpy/test_scripts.py",
      "span": "L386-L434",
      "signature": "class ReplicationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1ecb35c67723d4e1c79c769bafda16925c975d05a5e836974d860fa738f651a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#ReplicationTests.test_replication_config_requires_multiple_bounded_runs",
      "name": "test_replication_config_requires_multiple_bounded_runs",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L400-L411",
      "signature": "def test_replication_config_requires_multiple_bounded_runs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "170058774b05eab20e9e5fde6f7deec6ac6e3dd5f76ee93ae1f9bfeed3fe5290",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReplicationTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ReplicationTests.test_small_replication_experiment_has_replication_level_ci",
      "name": "test_small_replication_experiment_has_replication_level_ci",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L413-L434",
      "signature": "def test_small_replication_experiment_has_replication_level_ci(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24e6eaa9aa81aa763d015fb2ac5f847a13b9ac8a7975715510723eccfe43b682",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReplicationTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ReplicationTests.test_student_t_interval_and_quantile",
      "name": "test_student_t_interval_and_quantile",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L387-L398",
      "signature": "def test_student_t_interval_and_quantile(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf6877cc7073d06dc78e9ab9117979b3143b7448c907450674c56b232fc2fa34",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReplicationTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests",
      "name": "SafetyTests",
      "kind": "class",
      "path": "tests/simpy/test_scripts.py",
      "span": "L37-L147",
      "signature": "class SafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "962a8436e315f6b956b769c73a2591610dddd7630e9a42106ac4e0952cb170b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests.test_every_cli_has_side_effect_free_help",
      "name": "test_every_cli_has_side_effect_free_help",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L101-L114",
      "signature": "def test_every_cli_has_side_effect_free_help(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ae7676a419599b487e306e2911ae904a6d372237141a5067ceccfd56fad4eb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests.test_every_script_help_succeeds_without_site_packages",
      "name": "test_every_script_help_succeeds_without_site_packages",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L116-L128",
      "signature": "def test_every_script_help_succeeds_without_site_packages(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "85e7f6e5e01ee1fd3853f88ecfa40dfd8a14907522f4d31252e182ff73a3a9e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests.test_local_json_rejects_urls_symlinks_duplicates_and_nan",
      "name": "test_local_json_rejects_urls_symlinks_duplicates_and_nan",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L69-L90",
      "signature": "def test_local_json_rejects_urls_symlinks_duplicates_and_nan(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2234015b36f58211290618abae457c41210531ade5d631ee932e7111152e42bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests.test_private_output_refuses_overwrite",
      "name": "test_private_output_refuses_overwrite",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L92-L99",
      "signature": "def test_private_output_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cb647ceeb1480780ab5b78944d533225b2fbbc6410288c97145b96a0884cf4b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests.test_scripts_parse_and_do_not_use_dangerous_features",
      "name": "test_scripts_parse_and_do_not_use_dangerous_features",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L38-L67",
      "signature": "def test_scripts_parse_and_do_not_use_dangerous_features(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8474e69b86e6bac1a474d631cb3134680d099117864a81728367b64e1e8cb7c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#SafetyTests.test_simulation_clis_report_missing_dependency_without_traceback",
      "name": "test_simulation_clis_report_missing_dependency_without_traceback",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L130-L147",
      "signature": "def test_simulation_clis_report_missing_dependency_without_traceback(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "017784217b6ea2048fa33037e744e469f716ac3d2a39702539ac1d7411e52b00",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SafetyTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ScenarioTests",
      "name": "ScenarioTests",
      "kind": "class",
      "path": "tests/simpy/test_scripts.py",
      "span": "L338-L383",
      "signature": "class ScenarioTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea12ad836a84786f81b3a3506249b3713c039021eb8cb5290ff1d495791e7927",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#ScenarioTests.test_event_limit_stops_run",
      "name": "test_event_limit_stops_run",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L372-L383",
      "signature": "def test_event_limit_stops_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "25195b311b9a1484c43b10a494909a552930b74b3d6926ffcc8eb4b8d36aea3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScenarioTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ScenarioTests.test_queue_run_is_reproducible_and_bounded",
      "name": "test_queue_run_is_reproducible_and_bounded",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L339-L356",
      "signature": "def test_queue_run_is_reproducible_and_bounded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b20a4ef1a19468ce6ebef92ebfb2628df176c97406aad61b44e4e5bad1db323",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScenarioTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ScenarioTests.test_unknown_config_and_invalid_modes_are_rejected",
      "name": "test_unknown_config_and_invalid_modes_are_rejected",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L358-L370",
      "signature": "def test_unknown_config_and_invalid_modes_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f3187d31eb0aee2f9b29c7ba6573e4be59fe004709f0da0eb31f241a0f5e0e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ScenarioTests"
    },
    {
      "id": "tests/simpy/test_scripts.py#ValidatorTests",
      "name": "ValidatorTests",
      "kind": "class",
      "path": "tests/simpy/test_scripts.py",
      "span": "L437-L455",
      "signature": "class ValidatorTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "489a51a65488d2a51029b374ce5472b507fde9268047afa06d9c1f87489b579d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/simpy/test_scripts.py#ValidatorTests.test_validator_normalizes_both_schemas_without_running",
      "name": "test_validator_normalizes_both_schemas_without_running",
      "kind": "method",
      "path": "tests/simpy/test_scripts.py",
      "span": "L438-L455",
      "signature": "def test_validator_normalizes_both_schemas_without_running(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "16dd68a19732276ec9b39049ab8baa5359499f79a09e2f9f61d27251cf3cc080",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ValidatorTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L1-L416",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "f92265306d88049b16182d1230ad2f8a0d120cfa18eb58f1d43e2b5a27a7d8a5",
      "chars": 17361,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests",
      "name": "EnvCheckerTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L213-L235",
      "signature": "class EnvCheckerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7bbd95b5f0a5a47c2f66ac414a7e1ffe38c2cb523983d2d810cbe68ecd85b119",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space",
      "name": "test_the_checker_rejects_an_observation_outside_the_declared_space",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L220-L228",
      "signature": "def test_the_checker_rejects_an_observation_outside_the_declared_space(self) -> None: # The other direction: without this, \"check_env passed\" would only prove # the checker ran.",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b0ee684b4a35ab7ccdf957ff2b8ede0ec19cc1ee669db03685e8600c9c9511f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvCheckerTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space.WrongDtypeEnv",
      "name": "WrongDtypeEnv",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L223-L225",
      "signature": "class WrongDtypeEnv(custom_env_template.CustomEnv)",
      "exported": true,
      "origin": "ast",
      "body_hash": "08361d43176130a46efd3c1d7254a311a036ede5f63f176db657c3c451cc6090",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space.WrongDtypeEnv._get_obs",
      "name": "_get_obs",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L224-L225",
      "signature": "def _get_obs(self)",
      "exported": false,
      "origin": "ast",
      "body_hash": "9c2b056a82eaed11cbc165f46db8208a56f830d5b1097070b8d6c78917e794bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WrongDtypeEnv"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_template_passes_sb3s_checker_without_warnings",
      "name": "test_the_template_passes_sb3s_checker_without_warnings",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L214-L218",
      "signature": "def test_the_template_passes_sb3s_checker_without_warnings(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ae589a01bf0484113f5618f097be9b986a941a4cb7925b0c99be1016c00f639c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvCheckerTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_validate_helper_runs_the_checker_on_the_template",
      "name": "test_the_validate_helper_runs_the_checker_on_the_template",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L230-L235",
      "signature": "def test_the_validate_helper_runs_the_checker_on_the_template(self) -> None: # The helper is what the demo block calls; it must not print a failure.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c054cdc467532315b5ba8a14fdf0105b9821d1b3590976698a02dba45e3d2f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EnvCheckerTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "name": "EvaluationTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L277-L341",
      "signature": "class EvaluationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ab169ba532f82d3faa50fcf305516219d1ff94912b771d33e7ef7a23cc345bdf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.setUpClass",
      "name": "setUpClass",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L279-L281",
      "signature": "def setUpClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb8b7eca9941fd3bce2a280e2a1d833de87ba089105fc9410b86bdf9367fcb09",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.tearDownClass",
      "name": "tearDownClass",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L284-L285",
      "signature": "def tearDownClass(cls) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7088f3df806706c16b140c1b31122179b16539d2621265a8bf95b75668d11ea2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_a_missing_normalisation_file_is_ignored_rather_than_fatal",
      "name": "test_a_missing_normalisation_file_is_ignored_rather_than_fatal",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L313-L320",
      "signature": "def test_a_missing_normalisation_file_is_ignored_rather_than_fatal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6f9360c98d6e7ecef4de9f546a7f8e038808f5eadb7714004490f38c1c24e6a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_a_single_episode_has_no_spread",
      "name": "test_a_single_episode_has_no_spread",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L307-L311",
      "signature": "def test_a_single_episode_has_no_spread(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a089f4fdaec0d214b1d66970f2e6cf8723a377b9e9e07275547dc80ae4f4db49",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_comparing_models_reports_one_row_per_path",
      "name": "test_comparing_models_reports_one_row_per_path",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L322-L335",
      "signature": "def test_comparing_models_reports_one_row_per_path(self) -> None: # The results are keyed by path, so the same checkpoint twice collapses # to one entry rather than silently overwriting a different model's row.",
      "exported": true,
      "origin": "ast",
      "body_hash": "29b482236620c655296f31b71209bd1aa33d5ee80e18d269d60f5850a33c7ad1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_evaluation_returns_a_mean_and_a_non_negative_spread",
      "name": "test_evaluation_returns_a_mean_and_a_non_negative_spread",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L287-L295",
      "signature": "def test_evaluation_returns_a_mean_and_a_non_negative_spread(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6cb24ccc2ffac0c3d14fa82bf99b2a09ad29a44e76c9c4168899a1b52845e746",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_loading_a_model_that_does_not_exist_fails_loudly",
      "name": "test_loading_a_model_that_does_not_exist_fails_loudly",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L337-L341",
      "signature": "def test_loading_a_model_that_does_not_exist_fails_loudly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2c8d981b698a3864b8f1580710cbd1b83314238a363cebe29bcf623c6aee7a67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_the_score_is_an_average_of_whole_cartpole_episodes",
      "name": "test_the_score_is_an_average_of_whole_cartpole_episodes",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L297-L305",
      "signature": "def test_the_score_is_an_average_of_whole_cartpole_episodes(self) -> None: # CartPole pays exactly 1 per surviving step, so the mean of n episodes # is a multiple of 1/n. The helper takes no seed, so the value itself # varies between calls -- its arithmetic must not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "07190dae7e4ae2358415103ad177dfe6c102d67363c3434b6c43606dd99bae6a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "EvaluationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#placed_env",
      "name": "placed_env",
      "kind": "function",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L65-L71",
      "signature": "def placed_env(agent, goal, grid_size=5, render_mode=None)",
      "exported": true,
      "origin": "ast",
      "body_hash": "808370aae395151df332503cedba7deebb58db02cc1e300fdeb1889464109dc5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RegistrationTests",
      "name": "RegistrationTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L187-L210",
      "signature": "class RegistrationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "317916213ec33b6b553d5f689e51a6a1b1a5b4de2e2bb0555345cfb87736d00c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RegistrationTests.test_an_episode_that_never_reaches_the_goal_truncates_at_one_hundred",
      "name": "test_an_episode_that_never_reaches_the_goal_truncates_at_one_hundred",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L195-L210",
      "signature": "def test_an_episode_that_never_reaches_the_goal_truncates_at_one_hundred(self) -> None: # Park the agent in the top row and keep pressing up: it can never reach # a goal in the bottom-right corner, so only the time limit ends this.",
      "exported": true,
      "origin": "ast",
      "body_hash": "49a64ca5a188c4e7f4d9a1489b23d261e2c8f0ba949f8fd41300fd595e2d0203",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegistrationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RegistrationTests.test_gym_make_applies_the_hundred_step_time_limit",
      "name": "test_gym_make_applies_the_hundred_step_time_limit",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L191-L193",
      "signature": "def test_gym_make_applies_the_hundred_step_time_limit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fedcd1b8fabdff6947b8c3147b47913d63a523adb82ff845f5db1f8f1ed02fe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegistrationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RegistrationTests.test_the_environment_is_registered_under_its_documented_id",
      "name": "test_the_environment_is_registered_under_its_documented_id",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L188-L189",
      "signature": "def test_the_environment_is_registered_under_its_documented_id(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef52895a47db55c2876499ed0c89d248b64db4fed216420a05f9f16dab686364",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegistrationTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RenderTests",
      "name": "RenderTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L238-L257",
      "signature": "class RenderTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dbfec873b4d66191e7e3f558b244d770d546ebb6f90e115afde201693d8f84bc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RenderTests.test_human_rendering_draws_the_agent_and_the_goal",
      "name": "test_human_rendering_draws_the_agent_and_the_goal",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L239-L247",
      "signature": "def test_human_rendering_draws_the_agent_and_the_goal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "243e66df271a345a05ddd7269526c622e843b694bdb1891b2c60b5943764abbd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RenderTests.test_rendering_is_a_no_op_when_no_mode_was_requested",
      "name": "test_rendering_is_a_no_op_when_no_mode_was_requested",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L255-L257",
      "signature": "def test_rendering_is_a_no_op_when_no_mode_was_requested(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6bfaa693e6fc2dee541abeb94c9eab4a02339e4b0e106e795583dfa681faf421",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#RenderTests.test_rgb_rendering_returns_a_fifty_pixel_cell_canvas",
      "name": "test_rgb_rendering_returns_a_fifty_pixel_cell_canvas",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L249-L253",
      "signature": "def test_rgb_rendering_returns_a_fifty_pixel_cell_canvas(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1fbdbec155b1a3b0b8d2cfa788e5014e4f439499a43f4e11f65f00c603b78963",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RenderTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "name": "ResetTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L96-L132",
      "signature": "class ResetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cfb8e9bea210f28a548125107bf7cdde61ad178d1f411c16a14c5fbbb050f64e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#ResetTests.test_different_seeds_give_different_layouts",
      "name": "test_different_seeds_give_different_layouts",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L105-L110",
      "signature": "def test_different_seeds_give_different_layouts(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "789cf7f92b13374625a85e1957bb0ee79b14cc1cce35b25831bf4c237f1cd193",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResetTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_goal_never_starts_on_the_agent",
      "name": "test_the_goal_never_starts_on_the_agent",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L112-L120",
      "signature": "def test_the_goal_never_starts_on_the_agent(self) -> None: # reset() loops until they differ; otherwise the episode would be over # before it began.",
      "exported": true,
      "origin": "ast",
      "body_hash": "3db2f47224c6f65f97cac2323b679b472b2c5ff2d13bdf05c40af3b27f6eb5c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResetTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_info_distance_is_the_euclidean_distance_to_the_goal",
      "name": "test_the_info_distance_is_the_euclidean_distance_to_the_goal",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L128-L132",
      "signature": "def test_the_info_distance_is_the_euclidean_distance_to_the_goal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cdeac8963bbf60ceb6cdb3e778b66f37352401914f85e7e19652de196003b488",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResetTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_observation_is_the_agent_position_and_lies_in_the_space",
      "name": "test_the_observation_is_the_agent_position_and_lies_in_the_space",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L122-L126",
      "signature": "def test_the_observation_is_the_agent_position_and_lies_in_the_space(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9d6d1c6cb9f766416426a77dc60e7475b62830bc3894ab9e3f4c239a85a9b6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResetTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_same_seed_gives_the_same_starting_layout",
      "name": "test_the_same_seed_gives_the_same_starting_layout",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L97-L103",
      "signature": "def test_the_same_seed_gives_the_same_starting_layout(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d19de144bf2c00f961365526155195b115e0f4c8655a642b97a1d74a29370429",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ResetTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests",
      "name": "SpaceDefinitionTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L74-L93",
      "signature": "class SpaceDefinitionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "968c0a3bfe1024caa3492331d1fd8ee86b7613ca69f1fb38a7df4f20f0061e50",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests.test_the_action_space_is_the_four_documented_moves",
      "name": "test_the_action_space_is_the_four_documented_moves",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L75-L76",
      "signature": "def test_the_action_space_is_the_four_documented_moves(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "260bd609df2d73eac943a8d68ec14be9dd396930f756386746a16eabe488d7d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpaceDefinitionTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests.test_the_metadata_declares_the_render_modes_it_implements",
      "name": "test_the_metadata_declares_the_render_modes_it_implements",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L89-L93",
      "signature": "def test_the_metadata_declares_the_render_modes_it_implements(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1b72f90c3be7c792f706f9b01d4c7668bf28d5fcb026a573b7a9fee58fe0e507",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpaceDefinitionTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests.test_the_observation_box_spans_the_grid_and_is_float32",
      "name": "test_the_observation_box_spans_the_grid_and_is_float32",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L78-L87",
      "signature": "def test_the_observation_box_spans_the_grid_and_is_float32(self) -> None: # SB3 expects float32 observations; float64 silently costs a conversion # warning at best and a space mismatch at worst.",
      "exported": true,
      "origin": "ast",
      "body_hash": "bfcc1799ef70fe1885c036cc27b7d75fcd812d07a1cc30793edae84efd84cf13",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SpaceDefinitionTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests",
      "name": "StepTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L135-L184",
      "signature": "class StepTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4e5c3a40890e3a595e38849683daf9021b3a6cb1d243d74c501942e4a4bdd1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests.test_each_action_moves_one_cell_in_its_documented_direction",
      "name": "test_each_action_moves_one_cell_in_its_documented_direction",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L136-L145",
      "signature": "def test_each_action_moves_one_cell_in_its_documented_direction(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "edfdfe4afc114a36f310e24a3b549de041470dc7a56e6c7b1b10c98f427302c8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests.test_moves_are_clipped_at_every_edge",
      "name": "test_moves_are_clipped_at_every_edge",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L147-L155",
      "signature": "def test_moves_are_clipped_at_every_edge(self) -> None: # Walking into a wall must be a no-op, not an out-of-space observation.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d91f897ebdf850f78fc76c6b4b78b4ea09ec1c116d2832008deb2439e25a447d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests.test_not_reaching_the_goal_costs_a_tenth_of_the_distance",
      "name": "test_not_reaching_the_goal_costs_a_tenth_of_the_distance",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L164-L170",
      "signature": "def test_not_reaching_the_goal_costs_a_tenth_of_the_distance(self) -> None: # From (2, 2) moving up lands on (1, 2); the goal at (4, 4) is then # sqrt(9 + 4) = 3.6055... away, so the reward is -0.36055...",
      "exported": true,
      "origin": "ast",
      "body_hash": "27363b0225285cd4b05519674b11f209ccc8f4a22c5e806e947940ce60ba2d98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests.test_reaching_the_goal_pays_one_and_terminates",
      "name": "test_reaching_the_goal_pays_one_and_terminates",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L157-L162",
      "signature": "def test_reaching_the_goal_pays_one_and_terminates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "03f6684dc6d77f79911c3b12422c102df48fb5f95505c93aac9426ec5837c020",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests.test_the_raw_environment_never_truncates_on_its_own",
      "name": "test_the_raw_environment_never_truncates_on_its_own",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L177-L184",
      "signature": "def test_the_raw_environment_never_truncates_on_its_own(self) -> None: # The template says the time limit comes from registration, not step().",
      "exported": true,
      "origin": "ast",
      "body_hash": "2faa8f38df4aae3a05106a5bf4ebd0740171643d2b57cbb21698d13228dad1ae",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#StepTests.test_the_step_penalty_shrinks_as_the_agent_closes_in",
      "name": "test_the_step_penalty_shrinks_as_the_agent_closes_in",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L172-L175",
      "signature": "def test_the_step_penalty_shrinks_as_the_agent_closes_in(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a5d9102c2dae40a0240427b78fa76434e64c39636115ff9053ff7830edb4ac71",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StepTests"
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#train_tiny_agent",
      "name": "train_tiny_agent",
      "kind": "function",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L260-L274",
      "signature": "def train_tiny_agent(directory: Path) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "9ad6bcd9fb870888dbc545a338356103dd5c9f4833caf631626b6a88983a531c",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#TrainingPipelineTests",
      "name": "TrainingPipelineTests",
      "kind": "class",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L363-L407",
      "signature": "class TrainingPipelineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "35f9352126f8fc39027e6fee9ef3e742f419e9a685b002ace114b56a02bb0654",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/stable-baselines3/test_scripts.py#TrainingPipelineTests.test_the_template_trains_and_saves_a_loadable_model",
      "name": "test_the_template_trains_and_saves_a_loadable_model",
      "kind": "method",
      "path": "tests/stable-baselines3/test_scripts.py",
      "span": "L366-L407",
      "signature": "def test_the_template_trains_and_saves_a_loadable_model(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6a2021516e5d144ec595b5bdc838d1a2cd7014330680189fd70e7c036e3f268",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "TrainingPipelineTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L1-L214",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "17c4fe2b6b77320a7a00f2fa511ed13749be93f4534970ca8980fc7f53b995a9",
      "chars": 8697,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#ComprehensiveCheckTests",
      "name": "ComprehensiveCheckTests",
      "kind": "class",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L197-L209",
      "signature": "class ComprehensiveCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b84a247c49d5a32d5b16e40ce253c9f7cd5e9e96426ec4c093e7cb95b5428ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#ComprehensiveCheckTests.test_the_combined_check_reports_on_every_assumption",
      "name": "test_the_combined_check_reports_on_every_assumption",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L198-L209",
      "signature": "def test_the_combined_check_reports_on_every_assumption(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2169f868b1b7684475f8f8c3561e77d9791e55943cc0bfb822e4f58f30d9cbc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ComprehensiveCheckTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#LinearityTests",
      "name": "LinearityTests",
      "kind": "class",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L179-L194",
      "signature": "class LinearityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8486e7d66b112490f66bd499eeaf1bcff3ed78e4836c934c8a575f028c4cd5a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#LinearityTests.test_a_quadratic_relationship_is_distinguished_from_a_linear_one",
      "name": "test_a_quadratic_relationship_is_distinguished_from_a_linear_one",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L186-L194",
      "signature": "def test_a_quadratic_relationship_is_distinguished_from_a_linear_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5173dfc2f4ef5c17daed411cffec52202bdab637ec936d3c58087d9c923ec4c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinearityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#LinearityTests.test_a_straight_line_relationship_is_reported_as_linear",
      "name": "test_a_straight_line_relationship_is_reported_as_linear",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L180-L184",
      "signature": "def test_a_straight_line_relationship_is_reported_as_linear(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "31557d7938e5c9753bd188fc759a1129ec12d6c1adbb3107def378b944cd39d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LinearityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "name": "NormalityTests",
      "kind": "class",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L43-L77",
      "signature": "class NormalityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6752c60050e64179df78c8773a258eca6ac63036bfedb335c56006dfd563004e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_a_lognormal_sample_is_reported_as_non_normal",
      "name": "test_a_lognormal_sample_is_reported_as_non_normal",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L49-L52",
      "signature": "def test_a_lognormal_sample_is_reported_as_non_normal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bbcce3e4629fccda5d2861c30a200fcc7d2044936d1c8091f91dc606c47ab56e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_a_normal_sample_is_reported_as_normal",
      "name": "test_a_normal_sample_is_reported_as_normal",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L44-L47",
      "signature": "def test_a_normal_sample_is_reported_as_normal(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f47e886c8bdab07b5b96a163a5e6280f6216dc5ca71f966a02fa81b8fae5072f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_lists_and_series_are_accepted_as_well_as_arrays",
      "name": "test_lists_and_series_are_accepted_as_well_as_arrays",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L72-L77",
      "signature": "def test_lists_and_series_are_accepted_as_well_as_arrays(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "875f1b469454b8fa9fd5d211af205e9d16320ae322269e3a5440e1b3c0782deb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_the_result_carries_the_test_name_and_a_recommendation",
      "name": "test_the_result_carries_the_test_name_and_a_recommendation",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L63-L70",
      "signature": "def test_the_result_carries_the_test_name_and_a_recommendation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "434af4e4192b0c3f2aac25acdd9374ff05bdee8be67530fa137ff1fa9767104a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_the_verdict_follows_the_supplied_alpha",
      "name": "test_the_verdict_follows_the_supplied_alpha",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L54-L61",
      "signature": "def test_the_verdict_follows_the_supplied_alpha(self) -> None: # Same data, stricter threshold: the decision must move with alpha # rather than being hardcoded at .05.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9d5f6dc27e9801a551ffba8bf603a3e7f1404adf9c24bc7abd6b500572340b92",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "NormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "name": "OutlierTests",
      "kind": "class",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L144-L176",
      "signature": "class OutlierTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7a2e4c51014fbeb1b18e55cbd6e376718cb756a7f4f38135e67e34e5cdeefe8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_a_higher_threshold_flags_fewer_points",
      "name": "test_a_higher_threshold_flags_fewer_points",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L155-L163",
      "signature": "def test_a_higher_threshold_flags_fewer_points(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "69cefc3b1b87fddd35a2dbb5981a151a1780767bdd8d75c93a53352d07bc9f2f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutlierTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_clean_data_yields_no_extreme_outliers",
      "name": "test_clean_data_yields_no_extreme_outliers",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L165-L169",
      "signature": "def test_clean_data_yields_no_extreme_outliers(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5878d4609cfeb1794c65a2511a2d0991a40fa1576966a594dde7582de6558160",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutlierTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_the_iqr_method_finds_a_planted_extreme_value",
      "name": "test_the_iqr_method_finds_a_planted_extreme_value",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L145-L148",
      "signature": "def test_the_iqr_method_finds_a_planted_extreme_value(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6636fad97e593c6473f481be6fb3255f20fa271ce21123cfba7ff243c9c9b005",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutlierTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_the_reported_percentage_matches_the_count",
      "name": "test_the_reported_percentage_matches_the_count",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L171-L176",
      "signature": "def test_the_reported_percentage_matches_the_count(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f39f96b22e104d687cef1692edc38e42b4b08ebaa1d0423fb5b4ba879d8d2a8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutlierTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_the_zscore_method_finds_the_same_value",
      "name": "test_the_zscore_method_finds_the_same_value",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L150-L153",
      "signature": "def test_the_zscore_method_finds_the_same_value(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea852dbc4b015723d6f35630bc60a7c58c52ac15a9db8f844c25b3b261df0fec",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutlierTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests",
      "name": "PerGroupNormalityTests",
      "kind": "class",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L80-L104",
      "signature": "class PerGroupNormalityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e3cf2090518c1c5900cf62c136138a2dc0c52b947174a1ba5a80a664777892f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L81-L87",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e349729fbfae97cd87db746ac48cdcee3acc5cbbf824957bee1c3039ed0ebf8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PerGroupNormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests.test_each_group_gets_its_own_verdict",
      "name": "test_each_group_gets_its_own_verdict",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L89-L96",
      "signature": "def test_each_group_gets_its_own_verdict(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a7e7b5554c8615e0475d027db825817e028933c3699eb358eb3ac93df5066584",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PerGroupNormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests.test_the_result_is_a_frame_with_one_row_and_an_n_per_group",
      "name": "test_the_result_is_a_frame_with_one_row_and_an_n_per_group",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L98-L104",
      "signature": "def test_the_result_is_a_frame_with_one_row_and_an_n_per_group(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6403e707a5fc5df9fe8d3f77902984a93cf5f5866a091c50f61b4520338ab67",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PerGroupNormalityTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#VarianceTests",
      "name": "VarianceTests",
      "kind": "class",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L107-L141",
      "signature": "class VarianceTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "24701b0e6aab59244e8dc729ff826d09007dda0976759179046552eb5e00243d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#VarianceTests._frame",
      "name": "_frame",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L108-L116",
      "signature": "def _frame(self, spread: float) -> pd.DataFrame",
      "exported": false,
      "origin": "ast",
      "body_hash": "135d370bc51174278ccef5c97fab515da0db7e1301c1818c32f027dd9d6b27c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VarianceTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_a_tenfold_spread_difference_fails_levene",
      "name": "test_a_tenfold_spread_difference_fails_levene",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L124-L129",
      "signature": "def test_a_tenfold_spread_difference_fails_levene(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "84a1105b24d41c3fcfe337af5b261bba0428c46e956b348139fa5ca7d0d2a4d3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VarianceTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_equal_variances_pass_levene",
      "name": "test_equal_variances_pass_levene",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L118-L122",
      "signature": "def test_equal_variances_pass_levene(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "705ef39e7f5b9ed5940c13987402372a61518b7df53eecb8a316e943d8ea5b80",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VarianceTests"
    },
    {
      "id": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_more_than_two_groups_are_supported",
      "name": "test_more_than_two_groups_are_supported",
      "kind": "method",
      "path": "tests/statistical-analysis/test_scripts.py",
      "span": "L131-L141",
      "signature": "def test_more_than_two_groups_are_supported(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f721a74daa5e53cdbdd55ab58cd929dac48eefb5a8353381c3dea129281fbee2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VarianceTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L1-L332",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "339fd2939683a862ab412de0922b613271e333f52259abd24223ccce1020f9ca",
      "chars": 14408,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#MdeTests",
      "name": "MdeTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L184-L212",
      "signature": "class MdeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b22cd7bdcf5031eee27143397be0ebcc6599b0ceeb305df0eb70c7c1d358a035",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#MdeTests.test_a_larger_sample_detects_a_smaller_effect",
      "name": "test_a_larger_sample_detects_a_smaller_effect",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L190-L193",
      "signature": "def test_a_larger_sample_detects_a_smaller_effect(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca3de1757f0a1f6cd7d2962d921b82023f555a2cfb9855668416a14e72265f3e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MdeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#MdeTests.test_correlation_mde_round_trips",
      "name": "test_correlation_mde_round_trips",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L195-L199",
      "signature": "def test_correlation_mde_round_trips(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4fbb4b1b7a3b244e06788fa8450a3a29bda4aa68a03c6b768b1af7b5ec5f4e99",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MdeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#MdeTests.test_regression_mde_round_trips",
      "name": "test_regression_mde_round_trips",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L201-L212",
      "signature": "def test_regression_mde_round_trips(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41af1447102366cd470352ccbc5b5f231ab423baf31e4cddaf321f1335c0626d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MdeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#MdeTests.test_the_mde_at_a_solved_n_recovers_the_original_effect",
      "name": "test_the_mde_at_a_solved_n_recovers_the_original_effect",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L185-L188",
      "signature": "def test_the_mde_at_a_solved_n_recovers_the_original_effect(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04921e4b46c1a764c22e4c158faab1077cbf8122d5b92b11c80acc348f1fad60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MdeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerCurveTests",
      "name": "PowerCurveTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L230-L252",
      "signature": "class PowerCurveTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c52c5ee4f2acb0f8d3a577a4c8480f0d4424c1bb854eeaf3755a9847b9ea3af",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerCurveTests.test_per_group_tests_iterate_the_per_group_n",
      "name": "test_per_group_tests_iterate_the_per_group_n",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L246-L252",
      "signature": "def test_per_group_tests_iterate_the_per_group_n(self) -> None: # For t_ind the curve must pass nobs1, so power at n=64 matches the # canonical per-group answer rather than a total-n reading.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9344618c9a7a1473da0e32a7dd52786b0b95135a1bbea8a9450b9eb42e9d56d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerCurveTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerCurveTests.test_the_curve_rises_with_sample_size_and_is_saved",
      "name": "test_the_curve_rises_with_sample_size_and_is_saved",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L231-L244",
      "signature": "def test_the_curve_rises_with_sample_size_and_is_saved(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "07172b8b3f87613e93139dbcd1f1ed33a25f9cd7d8d9f83f474c3820c344990c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerCurveTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests",
      "name": "PowerTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L135-L181",
      "signature": "class PowerTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99df3c8c7ca7edd8af8fd246682c66f002c56b787769caeb1e4b0072e7338580",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests.test_a_zero_effect_has_power_equal_to_alpha",
      "name": "test_a_zero_effect_has_power_equal_to_alpha",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L150-L156",
      "signature": "def test_a_zero_effect_has_power_equal_to_alpha(self) -> None: # With no true effect, the rejection rate is the type-I error rate.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7da209d0562260e9546d7fcbb948bc3c22b5654bfde444f1dde94b0bb7b628a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests.test_correlation_power_round_trips_with_its_sample_size",
      "name": "test_correlation_power_round_trips_with_its_sample_size",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L158-L162",
      "signature": "def test_correlation_power_round_trips_with_its_sample_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "67b99d4451af50cbc8be610a41088889f8f49fd139601673d8df66ccf3e97cb7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests.test_power_at_the_solved_sample_size_reaches_the_target",
      "name": "test_power_at_the_solved_sample_size_reaches_the_target",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L136-L140",
      "signature": "def test_power_at_the_solved_sample_size_reaches_the_target(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5ef90a3cf48801f8fe2951e7a4331a29d1edaf67fcc62f77f91c2ab3501c90b6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests.test_power_is_bounded_and_monotone_in_n",
      "name": "test_power_is_bounded_and_monotone_in_n",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L142-L148",
      "signature": "def test_power_is_bounded_and_monotone_in_n(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4debd0abd0cb53dbf54daa8b78aded405fd9201d2d7eb2453500940a90b36691",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests.test_regression_power_is_zero_when_the_model_has_no_residual_df",
      "name": "test_regression_power_is_zero_when_the_model_has_no_residual_df",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L164-L172",
      "signature": "def test_regression_power_is_zero_when_the_model_has_no_residual_df(self) -> None: # n - k_total - 1 < 1 means nothing left to test against; report 0 # rather than raising or returning a nonsense value.",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7508f73e50e0acede367ae67e75e096c03bcc371cb467c296b83d6d80437922",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#PowerTests.test_two_proportions_power_round_trips",
      "name": "test_two_proportions_power_round_trips",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L174-L181",
      "signature": "def test_two_proportions_power_round_trips(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0be9d6974eb43049e8e7b927e0d10e2a474930665cf6981d797e68252151769f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PowerTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RegressionSolverTests",
      "name": "RegressionSolverTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L215-L227",
      "signature": "class RegressionSolverTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2097cf18c5fc1002ea01eea096689f09045dc0d3d5fd920ca39f7721b4f2276a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RegressionSolverTests.test_an_undetectably_small_effect_does_not_loop_forever",
      "name": "test_an_undetectably_small_effect_does_not_loop_forever",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L225-L227",
      "signature": "def test_an_undetectably_small_effect_does_not_loop_forever(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ac89e92177ce38fa4ed66b3d25857df4f3b2f82157c91607b414ac0a3577f60",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegressionSolverTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RegressionSolverTests.test_the_sample_size_search_stops_at_the_first_adequate_n",
      "name": "test_the_sample_size_search_stops_at_the_first_adequate_n",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L216-L223",
      "signature": "def test_the_sample_size_search_stops_at_the_first_adequate_n(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "af67657168e5d5ac8e77afe2a9c0d3cfa4a86b91396752c1acfa65392b54c09c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RegressionSolverTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "name": "RequiredArgumentTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L101-L132",
      "signature": "class RequiredArgumentTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f44968c3c61db65146c80c4bd158f6d340032cff2883a48eb3ac28ab41509cd4",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_an_unknown_test_is_named_in_the_error",
      "name": "test_an_unknown_test_is_named_in_the_error",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L116-L118",
      "signature": "def test_an_unknown_test_is_named_in_the_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cff7ce5f795e565622dd481cb0b0e00f0f6c4b63b65fe4ad7b708ce4c869b624",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredArgumentTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_each_test_names_the_parameter_it_is_missing",
      "name": "test_each_test_names_the_parameter_it_is_missing",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L102-L114",
      "signature": "def test_each_test_names_the_parameter_it_is_missing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecd91a04caab87c0343a48f8821aee91ea0b0d97778393dae37fd3487ec1aab6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredArgumentTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_mde_requires_a_sample_size",
      "name": "test_mde_requires_a_sample_size",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L130-L132",
      "signature": "def test_mde_requires_a_sample_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d1ca9b7be7900a0c5259974ef957711a4c641514afa18e85314bf67feb2a3bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredArgumentTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_power_requires_a_sample_size",
      "name": "test_power_requires_a_sample_size",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L126-L128",
      "signature": "def test_power_requires_a_sample_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6650b833b1f5beef1ee1a62e8738044038d752523072304db8c22ab111fa6b20",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredArgumentTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_test_names_are_case_insensitive",
      "name": "test_test_names_are_case_insensitive",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L120-L124",
      "signature": "def test_test_names_are_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc68fad3b72ed67050e89f8a69c4be92157280d44d68a66c5ecd283e3763e25f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RequiredArgumentTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "name": "SampleSizeTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L42-L98",
      "signature": "class SampleSizeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2ecb3d9341efea41896e62f247bfd1c756794febc3ef1c6d1f14d1fddba60f7b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_a_one_sided_test_needs_fewer_subjects",
      "name": "test_a_one_sided_test_needs_fewer_subjects",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L75-L80",
      "signature": "def test_a_one_sided_test_needs_fewer_subjects(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8513c68c03276467683621e6a0f29a661293c979bab24710ef3ae17a1afc3005",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_an_unequal_allocation_ratio_changes_the_first_group",
      "name": "test_an_unequal_allocation_ratio_changes_the_first_group",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L93-L98",
      "signature": "def test_an_unequal_allocation_ratio_changes_the_first_group(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5eb9bd4cf47ce0447622a88fe60f6067482c31d0d5f6b9495a61da47d9ddc925",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_anova_returns_total_n_not_per_group",
      "name": "test_anova_returns_total_n_not_per_group",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L55-L61",
      "signature": "def test_anova_returns_total_n_not_per_group(self) -> None: # f = 0.25, k = 4, power = .80 -> ~180 total (45 per group).",
      "exported": true,
      "origin": "ast",
      "body_hash": "68bfcc798cc0e85f47e020015cf2c7f00f607600f37661bdf11cfa4cc50e72ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_correlation_matches_the_published_value",
      "name": "test_correlation_matches_the_published_value",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L49-L53",
      "signature": "def test_correlation_matches_the_published_value(self) -> None: # r = 0.30, alpha = .05 two-sided, power = .80 -> n = 85.",
      "exported": true,
      "origin": "ast",
      "body_hash": "f7c8a539b4e281af4faa1d8d1e62fed68fd6a5e41b11df469bcd2d432c16ae24",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_higher_power_needs_a_larger_sample",
      "name": "test_higher_power_needs_a_larger_sample",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L70-L73",
      "signature": "def test_higher_power_needs_a_larger_sample(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "246b10b0af6d614fca79e97b03a925223d56c8d5c1bfcf25d52ed743e4eeee40",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_round_up_is_the_default_because_a_fraction_of_a_subject_is_not_a_subject",
      "name": "test_round_up_is_the_default_because_a_fraction_of_a_subject_is_not_a_subject",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L82-L91",
      "signature": "def test_round_up_is_the_default_because_a_fraction_of_a_subject_is_not_a_subject( self, ) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "03fece26ac5bf64ed4fc433c26ee24ded4de5b8d3fa7218a938b65d7f53b89e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_smaller_effects_need_larger_samples",
      "name": "test_smaller_effects_need_larger_samples",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L63-L68",
      "signature": "def test_smaller_effects_need_larger_samples(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a0a61abb43b13018866ad1ca6413fa9bd17e8ed74cfd8912293d9ddf52677cf7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_two_sample_t_test_matches_cohens_canonical_value",
      "name": "test_two_sample_t_test_matches_cohens_canonical_value",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L43-L47",
      "signature": "def test_two_sample_t_test_matches_cohens_canonical_value(self) -> None: # Cohen (1988): d = 0.5, alpha = .05 two-sided, power = .80 -> 64/group.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e106fd54b3a1bfe64fe3e16d2cd80b183a0dd272eae058edfabeccda0440ec57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SampleSizeTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests",
      "name": "SimulationTests",
      "kind": "class",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L255-L327",
      "signature": "class SimulationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3698af7ea60fdca52c7ce9a820573e8daa7c1b19a23c6c703197a9b4952e77fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_a_null_effect_simulates_to_the_alpha_level",
      "name": "test_a_null_effect_simulates_to_the_alpha_level",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L289-L294",
      "signature": "def test_a_null_effect_simulates_to_the_alpha_level(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "26a1ed788f0bc0f608340e242288ebac4e3faaf2e1f4aeab33dde2416935cc9f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_a_zero_success_run_still_has_a_positive_upper_bound",
      "name": "test_a_zero_success_run_still_has_a_positive_upper_bound",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L268-L273",
      "signature": "def test_a_zero_success_run_still_has_a_positive_upper_bound(self) -> None: # The interval must not collapse to (0, 0): \"we saw none\" is not # \"it cannot happen\".",
      "exported": true,
      "origin": "ast",
      "body_hash": "bc2b70a87341d9661b09ba73bec6ccec6a92008258050537e203bcf4a65ec5d8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_simulated_power_tracks_the_analytic_answer",
      "name": "test_simulated_power_tracks_the_analytic_answer",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L281-L287",
      "signature": "def test_simulated_power_tracks_the_analytic_answer(self) -> None: # The whole point of the simulator is to agree with theory where theory # applies, so it can be trusted where theory does not.",
      "exported": true,
      "origin": "ast",
      "body_hash": "d6992f540a2ab58e835823cd2eb94e8b948dc63be6283ac7bf1ff311fd6239be",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_simulation_reproduces_from_its_seed",
      "name": "test_simulation_reproduces_from_its_seed",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L275-L279",
      "signature": "def test_simulation_reproduces_from_its_seed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a948927131ace4222470828cb9df93c673f323b227cde23095743d2fc3005efc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_the_estimate_reports_its_own_uncertainty",
      "name": "test_the_estimate_reports_its_own_uncertainty",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L296-L301",
      "signature": "def test_the_estimate_reports_its_own_uncertainty(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a34b0b666adb16c9bcd955cd1fe75f76145cea6860c0026daa99dec5ddfc2b7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_the_sample_size_search_returns_an_n_that_meets_the_target",
      "name": "test_the_sample_size_search_returns_an_n_that_meets_the_target",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L303-L314",
      "signature": "def test_the_sample_size_search_returns_an_n_that_meets_the_target(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0866cdd87efffd4ae6be5a6aa21d130cca2ec79a1d954ff8d949e28282a259a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_the_worked_examples_all_produce_a_usable_estimate",
      "name": "test_the_worked_examples_all_produce_a_usable_estimate",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L316-L327",
      "signature": "def test_the_worked_examples_all_produce_a_usable_estimate(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "693524170a0b05f9decd5ec4df1f16eab7f578c4dc2e022b1051508ea6e92e21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/statistical-power/test_scripts.py#SimulationTests.test_wilson_intervals_bracket_the_estimate_and_stay_in_range",
      "name": "test_wilson_intervals_bracket_the_estimate_and_stay_in_range",
      "kind": "method",
      "path": "tests/statistical-power/test_scripts.py",
      "span": "L256-L266",
      "signature": "def test_wilson_intervals_bracket_the_estimate_and_stay_in_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "129acaec2d9d119e85f5fea6af3545659173fe8e5ab9a365012eef0b1255d6a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SimulationTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L1-L694",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "896dddfe05160280d0d978190a46e9a354893d507f106ff3c812c56e4f77c4a2",
      "chars": 31203,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "name": "BatchSizeTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L270-L326",
      "signature": "class BatchSizeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "327d07c685f06f29dcbe198d1d0181ed7fc466548fd04c7ab065136fee09fcf1",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.cpu_batch",
      "name": "cpu_batch",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L276-L279",
      "signature": "def cpu_batch(self, ram_gb: float) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a87739550d2a0a8713190d09a56622888dff0f0d80f3806d4940941a7cbc518",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "name": "gpu_batch",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L271-L274",
      "signature": "def gpu_batch(self, vram_gb: float) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "ddecfef333f5720cdd53b4426452d8f2800b81f221d5bbc19c74898992072875",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.mps_batch",
      "name": "mps_batch",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L281-L284",
      "signature": "def mps_batch(self, ram_gb: float) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8cc7378f07dca9ee6cfe622ec018cf912f1bbda511b5097e7724813d861f6a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_an_unparseable_vram_figure_falls_back_to_a_safe_batch",
      "name": "test_an_unparseable_vram_figure_falls_back_to_a_safe_batch",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L304-L306",
      "signature": "def test_an_unparseable_vram_figure_falls_back_to_a_safe_batch(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c87a67fbd6020cbce991ebeda31d22dc8b2499d4d122ce59f1ac51a86be4b4f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_cpu_only_hosts_are_sized_by_system_memory",
      "name": "test_cpu_only_hosts_are_sized_by_system_memory",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L308-L312",
      "signature": "def test_cpu_only_hosts_are_sized_by_system_memory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46cb6b29e22599cf4012c97d7ff43d7244f44abbea930266747adb7e77eab798",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_cpu_recommendations_never_decrease_as_memory_grows",
      "name": "test_cpu_recommendations_never_decrease_as_memory_grows",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L314-L316",
      "signature": "def test_cpu_recommendations_never_decrease_as_memory_grows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "86fffacc8f1d380267e81a0c44e25704c840a9f279a37bbcb8b89fac9fc0f495",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_each_tier_boundary_is_inclusive_from_below",
      "name": "test_each_tier_boundary_is_inclusive_from_below",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L292-L297",
      "signature": "def test_each_tier_boundary_is_inclusive_from_below(self) -> None: # 23.9 GB must not be treated as a 24 GB card.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e0baf8c4e553b57332dcbed1a77aa620fca0be0c78adfc509fc0bc3f8e5cedde",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_every_recommendation_is_a_usable_batch_size",
      "name": "test_every_recommendation_is_a_usable_batch_size",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L323-L326",
      "signature": "def test_every_recommendation_is_a_usable_batch_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b29857b1917979ea718dd494a5f4ea29e213c86f1a9c5e4d20917b9040e90ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_the_recommendation_never_decreases_as_vram_grows",
      "name": "test_the_recommendation_never_decreases_as_vram_grows",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L299-L302",
      "signature": "def test_the_recommendation_never_decreases_as_vram_grows(self) -> None: # A non-monotonic ladder would hand a smaller card the larger batch.",
      "exported": true,
      "origin": "ast",
      "body_hash": "08a8b8d0a0d59e26a69236c1909e9bce9ac31052be6529edf55e7e598a863b82",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_the_vram_tiers_are_the_documented_ladder",
      "name": "test_the_vram_tiers_are_the_documented_ladder",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L286-L290",
      "signature": "def test_the_vram_tiers_are_the_documented_ladder(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "be092c2d339475f01030f687f19bddc995d19364ba468a4d6ab448b68f86ec73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_unified_memory_hosts_are_sized_by_system_memory",
      "name": "test_unified_memory_hosts_are_sized_by_system_memory",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L318-L321",
      "signature": "def test_unified_memory_hosts_are_sized_by_system_memory(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f505f63e64f88c4ac7f5bd9f6bc2ac7e417c690a1cef6d78682894eb95ffed4d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BatchSizeTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests",
      "name": "CheckResultFormattingTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L407-L423",
      "signature": "class CheckResultFormattingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e8f4f624bfb88e6621b2c5b4bbc9867837849f575099b0cf979c1e77f3e6d632",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests.test_each_status_gets_its_own_icon",
      "name": "test_each_status_gets_its_own_icon",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L408-L413",
      "signature": "def test_each_status_gets_its_own_icon(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0ee016818846d443ef635a7adb9cb3522057094743abf6256683a26469a81992",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CheckResultFormattingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests.test_the_rendered_line_carries_the_name_value_and_status",
      "name": "test_the_rendered_line_carries_the_name_value_and_status",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L415-L423",
      "signature": "def test_the_rendered_line_carries_the_name_value_and_status(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9abe362e4dae739c0f787d0460c6109ae7e6084a67954b79da41239078c3fc59",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CheckResultFormattingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests",
      "name": "CommandLineTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L426-L456",
      "signature": "class CommandLineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e5e17bd9a898644a74ab95423827a9c6035828f8f13732094cc6e4b8d0aab30e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.invoke",
      "name": "invoke",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L429-L436",
      "signature": "def invoke(self, *arguments)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c6ba68c9ba5450f7acdc6a73611fabc70538f8eb097606757e5f52852df1253",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_an_unknown_model_is_rejected_by_the_parser",
      "name": "test_an_unknown_model_is_rejected_by_the_parser",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L447-L450",
      "signature": "def test_an_unknown_model_is_rejected_by_the_parser(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1ea23d7432a54a670dc3e4dbc577ed0332fa3417f5ccd7dff86fc88268d91135",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_the_human_report_names_every_check_and_a_verdict",
      "name": "test_the_human_report_names_every_check_and_a_verdict",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L452-L456",
      "signature": "def test_the_human_report_names_every_check_and_a_verdict(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "49ccfa7def89b4f6550bc0ddb0c0d2db9fb186136b53d548f2c1d10faa260de8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_the_json_output_parses_and_names_the_model",
      "name": "test_the_json_output_parses_and_names_the_model",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L438-L445",
      "signature": "def test_the_json_output_parses_and_names_the_model(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7961312f24a233acaf5064db165c78b9c09d819a7e414ac45446d1b0afe7d7a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "name": "CsvLoadingTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L489-L551",
      "signature": "class CsvLoadingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "27fed2040be134e922fd6e7f3dcce9846fe533a1d84906eb5426119c13e1255f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "name": "load",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L500-L503",
      "signature": "def load(self, path, *args)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f97645d98b20122dbcdd5ad98cd8c2807475b6ed60e5da6e901ff6f8cd2d18f0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L490-L493",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_column_that_does_not_exist_is_dropped_with_a_warning",
      "name": "test_a_column_that_does_not_exist_is_dropped_with_a_warning",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L528-L532",
      "signature": "def test_a_column_that_does_not_exist_is_dropped_with_a_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2340493ff6def6497019c514a321fc5927d0fbfa88a9fd4087f6d34855ba04a4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_csv_with_nothing_numeric_stops_the_run",
      "name": "test_a_csv_with_nothing_numeric_stops_the_run",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L540-L546",
      "signature": "def test_a_csv_with_nothing_numeric_stops_the_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "04109d8e18ab2d754af3c4aa4aef3a9cc0b2d419cafef1f0f4c916670b6e517e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_missing_date_column_is_reported_and_forgotten",
      "name": "test_a_missing_date_column_is_reported_and_forgotten",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L534-L538",
      "signature": "def test_a_missing_date_column_is_reported_and_forgotten(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "122a6578768189b77ea7074af39a08a34378e20f6e287c9785dd98f8999c9600",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_string_column_is_never_forecast",
      "name": "test_a_string_column_is_never_forecast",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L518-L521",
      "signature": "def test_a_string_column_is_never_forecast(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "38726648a94f875af1a6a003f3eea853d34914016db3bea9e010fc68cec59e1b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_an_explicit_column_list_is_honoured",
      "name": "test_an_explicit_column_list_is_honoured",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L523-L526",
      "signature": "def test_an_explicit_column_list_is_honoured(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ca0fa7c8330e9c888549a49b3a4131ca85d84e90d3608434d8bc7f1249f442e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_naming_no_columns_at_all_falls_back_to_autodetection",
      "name": "test_naming_no_columns_at_all_falls_back_to_autodetection",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L548-L551",
      "signature": "def test_naming_no_columns_at_all_falls_back_to_autodetection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0539184e77546121f40084b5b9daee8efc6bde02cece777adef9a02919680c7f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_numeric_columns_are_detected_and_the_date_column_excluded",
      "name": "test_numeric_columns_are_detected_and_the_date_column_excluded",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L505-L516",
      "signature": "def test_numeric_columns_are_detected_and_the_date_column_excluded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5d67651acf21fae35b44b58af5e5c34a5770734d5808cc7d72034e7ea3c01b15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "name": "write",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L495-L498",
      "signature": "def write(self, text: str) -> str",
      "exported": true,
      "origin": "ast",
      "body_hash": "42c7ced29ce555c857f3b6965b6ff9a69cd9a8055cc0310accc45bf460ee3f8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CsvLoadingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests",
      "name": "DiskCheckTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L151-L179",
      "signature": "class DiskCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "e2a2093c496528c1d04ca1eade9113f6bc84b212d3e161ad7a4c688c00c00504",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_an_absent_cache_directory_falls_back_to_the_home_volume",
      "name": "test_an_absent_cache_directory_falls_back_to_the_home_volume",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L174-L179",
      "signature": "def test_an_absent_cache_directory_falls_back_to_the_home_volume(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20ee91c2ba31e89fad4dc1de77a0e074aabbda09452417801419c2cadfc98d8f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiskCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_exactly_enough_space_passes",
      "name": "test_exactly_enough_space_passes",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L160-L162",
      "signature": "def test_exactly_enough_space_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "941238807085e3e545769cd5dc2680e1a5c3fc77ecdb575a99449c48db90100f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiskCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_less_free_space_than_the_weights_need_fails",
      "name": "test_less_free_space_than_the_weights_need_fails",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L154-L158",
      "signature": "def test_less_free_space_than_the_weights_need_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "55c94041d1d307f63faedb1c3da11e4c4b03dbedcea525093ed38a6c8e9b0c83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiskCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_the_cache_directory_is_where_the_space_is_measured",
      "name": "test_the_cache_directory_is_where_the_space_is_measured",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L164-L172",
      "signature": "def test_the_cache_directory_is_where_the_space_is_measured(self) -> None: # The advice is \"set HF_HOME to a larger volume\", so that variable has # to be what the check actually looks at.",
      "exported": true,
      "origin": "ast",
      "body_hash": "225664dfb0342aa9983201d9df07d158d7021b514795780c54e9d655c1c2d8c2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "DiskCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "name": "ForecastAssemblyTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L554-L613",
      "signature": "class ForecastAssemblyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "57e233a2f5ff1a4f18a29afc5192b733bb7a337fe0eb2498607c8da43e9aedc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel",
      "name": "RecordingModel",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L557-L569",
      "signature": "class RecordingModel",
      "exported": true,
      "origin": "ast",
      "body_hash": "a23ac8589ff38ab186ee3d02d8a517d47e2524caad926858c4e22861337d11a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L560-L562",
      "signature": "def __init__(self, horizon: int) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "946396278f28280af378c487d5ea6ec1d996d8a9412304d4a9c887938384a600",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingModel"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel.forecast",
      "name": "forecast",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L564-L569",
      "signature": "def forecast(self, horizon, inputs)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b42447c4eb2c5cf7f83000469a06189d7efc00cb2bc8b361d480226fb0199430",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecordingModel"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L571-L583",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "819aa984f040b4182516c15369f3fc63044549f29ab52fc1e434d9bb9bf56b3c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastAssemblyTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_each_series_is_forecast_and_keyed_by_its_column",
      "name": "test_each_series_is_forecast_and_keyed_by_its_column",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L585-L588",
      "signature": "def test_each_series_is_forecast_and_keyed_by_its_column(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4cc3554756f81dc85e52850b9f9bc502ef1ea2b1fba042ef7079a351633a1f6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastAssemblyTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_gaps_are_dropped_before_the_series_reaches_the_model",
      "name": "test_gaps_are_dropped_before_the_series_reaches_the_model",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L607-L613",
      "signature": "def test_gaps_are_dropped_before_the_series_reaches_the_model(self) -> None: # A NaN passed through would poison the whole context window.",
      "exported": true,
      "origin": "ast",
      "body_hash": "00a132eb0806ee1e6cda1b14dcbd0b3727c29fdcea98765b997555a95bd47abb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastAssemblyTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_the_bands_are_ordered_from_low_to_high",
      "name": "test_the_bands_are_ordered_from_low_to_high",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L600-L605",
      "signature": "def test_the_bands_are_ordered_from_low_to_high(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41a70b028fe23259ac96c303d661bcae864b062f011134b5f91f7404d74c75f5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastAssemblyTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_the_quantile_columns_map_to_the_documented_percentiles",
      "name": "test_the_quantile_columns_map_to_the_documented_percentiles",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L590-L598",
      "signature": "def test_the_quantile_columns_map_to_the_documented_percentiles(self) -> None: # TimesFM returns [mean, q0.1 ... q0.9], so the 10th, 50th and 90th # percentiles are columns 1, 5 and 9.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f6736b060b02c1ce17d6ebfd6331c6241c3e2df0b4eaf5772ea040e52257278",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ForecastAssemblyTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "name": "GpuCheckTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L226-L267",
      "signature": "class GpuCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "99454cff3723a83df81e337158a07ecb4e0d57db7549d895675adeb196506973",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_a_cuda_device_is_reported_with_its_vram",
      "name": "test_a_cuda_device_is_reported_with_its_vram",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L242-L247",
      "signature": "def test_a_cuda_device_is_reported_with_its_vram(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c73e260d0dbb4c64857ffe1d39c8385cc42823fefa565fe56d48d21d113645dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GpuCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_apple_silicon_passes_without_a_vram_figure",
      "name": "test_apple_silicon_passes_without_a_vram_figure",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L249-L255",
      "signature": "def test_apple_silicon_passes_without_a_vram_figure(self) -> None: # MPS uses unified memory, so there is no separate VRAM to report.",
      "exported": true,
      "origin": "ast",
      "body_hash": "13b7b437d1cb2ecc0d7bf70c21ac4dd239a0011e73228e58a3d57de9a1a9c858",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GpuCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_no_accelerator_warns_because_cpu_still_works",
      "name": "test_no_accelerator_warns_because_cpu_still_works",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L257-L261",
      "signature": "def test_no_accelerator_warns_because_cpu_still_works(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ba47b28ced267d87ebaa7403321806cc73e646144d57aac89e08519dd87bfd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GpuCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_torch_missing_entirely_warns_rather_than_raising",
      "name": "test_torch_missing_entirely_warns_rather_than_raising",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L263-L267",
      "signature": "def test_torch_missing_entirely_warns_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "41833f2bef925d65a341f7e2b7c456180e64b92b932e4fcd704d14bf62043b33",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GpuCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.torch_module",
      "name": "torch_module",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L228-L240",
      "signature": "def torch_module(*, cuda: bool, mps: bool = False, vram_gb: float = 24.0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "bffe2ebf3c8bdefe1e7a8140eea65ffa1e151b8bd7ffb67febd43e4b1e91bfcc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "GpuCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests",
      "name": "ModelProfileTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L74-L104",
      "signature": "class ModelProfileTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6db5902e1893578202a26712977f4f2f03cbb73a442453ecf193b4d293628012",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_each_profile_points_at_its_published_hugging_face_repo",
      "name": "test_each_profile_points_at_its_published_hugging_face_repo",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L78-L87",
      "signature": "def test_each_profile_points_at_its_published_hugging_face_repo(self) -> None: # A wrong repo id is a 404 at download time, long after the check passed.",
      "exported": true,
      "origin": "ast",
      "body_hash": "48e555c294c9a39a0dde9923d7b9818085a6137a1fc4f40accec124ae550940b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelProfileTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_no_profile_recommends_less_than_it_requires",
      "name": "test_no_profile_recommends_less_than_it_requires",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L97-L104",
      "signature": "def test_no_profile_recommends_less_than_it_requires(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8b4ec49f27f4b04c4a10fbf1be399f47ae24b240f8913cb6a59c42137da5f2af",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelProfileTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_the_five_hundred_million_model_asks_for_the_most_memory",
      "name": "test_the_five_hundred_million_model_asks_for_the_most_memory",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L89-L95",
      "signature": "def test_the_five_hundred_million_model_asks_for_the_most_memory(self) -> None: # v2.0 is 500M parameters against 200M for the other two.",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee64c8d9e7f30d6ea0ebc05ff39a0538e60163a17d4e2b39763569fc55c62d9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelProfileTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_the_three_documented_checkpoints_are_offered",
      "name": "test_the_three_documented_checkpoints_are_offered",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L75-L76",
      "signature": "def test_the_three_documented_checkpoints_are_offered(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2d2e6e5e5e7c3d913c20c9405b01c56786fb23e5957129939bd51989ce549dd3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ModelProfileTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "name": "OutputWritingTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L616-L689",
      "signature": "class OutputWritingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac70218cf8acf49d9ac788d67462e0f274924ef73fcf13c1c529800af4f6fb8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L619-L633",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c2021f77cdde3c535bec59ef83f092eab1c895d3744f876fe6f47fb73cc23023",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_a_daily_history_continues_past_its_last_observation",
      "name": "test_a_daily_history_continues_past_its_last_observation",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L654-L664",
      "signature": "def test_a_daily_history_continues_past_its_last_observation(self) -> None: # Five daily points ending 2024-01-05, horizon 3: the forecast index is # the next three days, not a repeat of the last one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6535a3364ebe7ebb3d67711d074e0df45a3d34f1847a6c6cdda91aaa45d73f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_an_irregular_history_falls_back_to_step_numbers",
      "name": "test_an_irregular_history_falls_back_to_step_numbers",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L666-L673",
      "signature": "def test_an_irregular_history_falls_back_to_step_numbers(self) -> None: # No frequency can be inferred from unevenly spaced dates, so the # writer must not invent one.",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cf7e5011a8401e6b931ba234ba9aa84daec8db4a0025f4898fa4b35ad8cc67c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_every_band_column_survives_the_round_trip",
      "name": "test_every_band_column_survives_the_round_trip",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L675-L681",
      "signature": "def test_every_band_column_survives_the_round_trip(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2dcc8cac0055814e23b5716bc1bc4cf1fd90e27248b42e4a6d20e932e0be7420",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_one_row_per_series_and_step",
      "name": "test_one_row_per_series_and_step",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L643-L648",
      "signature": "def test_one_row_per_series_and_step(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "02368aa644ac23d8c0e46804b0a1114707b388d4c011c173d785a726f2ab6628",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_the_json_output_keeps_the_series_names_and_bands",
      "name": "test_the_json_output_keeps_the_series_names_and_bands",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L683-L689",
      "signature": "def test_the_json_output_keeps_the_series_names_and_bands(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b6381f6ac2d518115c07a5446bbe0ea70c157733d29f590c5ce05ba795681cee",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_without_dates_only_the_step_index_is_written",
      "name": "test_without_dates_only_the_step_index_is_written",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L650-L652",
      "signature": "def test_without_dates_only_the_step_index_is_written(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e36a08c8fad4edc0207ef1dd09b78444e27350eb4fab50c77e07bbfed1be225e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "name": "write_csv",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L635-L641",
      "signature": "def write_csv(self, frame, date_column)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c37bebd103e44a6bc52d47d20d11fcf7a15ef79d718467d8af9b63d16a68ef9c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "OutputWritingTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests",
      "name": "PackageCheckTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L202-L223",
      "signature": "class PackageCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "60602a53e3cdacecf12a2f310966f0898486f00ba16344e0f7c2a137615101be",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests.test_a_missing_package_warns_instead_of_failing",
      "name": "test_a_missing_package_warns_instead_of_failing",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L211-L216",
      "signature": "def test_a_missing_package_warns_instead_of_failing(self) -> None: # The whole point is to run this before installing TimesFM, so a missing # package must not make the report fail and block the workflow.",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc6f6bed294ad23c9789cfeaed1f58a302234b133395297814f95b7739dd16cd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests.test_a_package_without_a_version_is_still_installed",
      "name": "test_a_package_without_a_version_is_still_installed",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L218-L223",
      "signature": "def test_a_package_without_a_version_is_still_installed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3b03cdc65a2c5c1a93a6e9a205592c2dd92298ec7fd774aeeb7f77d18c856c8c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests.test_an_installed_package_reports_its_version",
      "name": "test_an_installed_package_reports_its_version",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L203-L209",
      "signature": "def test_an_installed_package_reports_its_version(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7095909b0a425688bfe19add4c4029b0569b26c6739f1f3fef4135a1b942f2c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PackageCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests",
      "name": "PreflightHandoffTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L459-L486",
      "signature": "class PreflightHandoffTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f022424ccdd2fd00b257078226b57d7e3b90c85234a2723e1d646aa4b093ae3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests.test_a_failing_report_stops_the_run",
      "name": "test_a_failing_report_stops_the_run",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L462-L475",
      "signature": "def test_a_failing_report_stops_the_run(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "600baef6ae0dcfcb30df6ca7eebdb23a3a9b4e40a5422e2774981b94491f6435",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightHandoffTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests.test_a_passing_report_hands_over_the_recommended_batch_size",
      "name": "test_a_passing_report_hands_over_the_recommended_batch_size",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L477-L486",
      "signature": "def test_a_passing_report_hands_over_the_recommended_batch_size(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "eda2f8dc7c879134989227007b1c47e48326e623864a1c0a34b9750657e958cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PreflightHandoffTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests",
      "name": "PythonCheckTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L182-L199",
      "signature": "class PythonCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "58c51703446bb267d8407b446edafe3a913ed0cabddf4b7bd0f3c38fb29a482b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.interpreter",
      "name": "interpreter",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L184-L185",
      "signature": "def interpreter(major: int, minor: int)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c0de8318a4ad33401c9f22d0ecc848cbb15e6d0c60cefdb0a5a990635d6789bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_a_newer_interpreter_passes",
      "name": "test_a_newer_interpreter_passes",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L197-L199",
      "signature": "def test_a_newer_interpreter_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5c9d4620006b480a713d26b1d59d7bf30c4863e58777204ad1727fbcf5f29ff2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_the_documented_minimum_of_three_ten_passes",
      "name": "test_the_documented_minimum_of_three_ten_passes",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L187-L189",
      "signature": "def test_the_documented_minimum_of_three_ten_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "46c2361b14438059517f86acef9d367c13cdf1065d051938a3f8852e30a0e66d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_three_nine_fails_and_states_the_requirement",
      "name": "test_three_nine_fails_and_states_the_requirement",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L191-L195",
      "signature": "def test_three_nine_fails_and_states_the_requirement(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a410a2d14cc1ce54fadad56f943de9d9186c729c6e15e8ddab7d7af4974c37e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PythonCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "name": "RamCheckTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L107-L148",
      "signature": "class RamCheckTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a82db6648d46de034e50a81fd41fedc24fa8c7109d04635cbfc6cccb59ccae84",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "name": "check",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L110-L113",
      "signature": "def check(self, total: float, available: float = 4.0)",
      "exported": true,
      "origin": "ast",
      "body_hash": "8097e43c56c2619899103c3978ae704068cd345a46d8ed7c0adda7bcb57b4aaf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_below_the_minimum_fails_and_explains_the_consequence",
      "name": "test_below_the_minimum_fails_and_explains_the_consequence",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L115-L118",
      "signature": "def test_below_the_minimum_fails_and_explains_the_consequence(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a167aee6e2fbdd8f0e11c095bff05013b0e36af987c401e947d3448f6062be6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_exactly_the_minimum_warns_rather_than_failing",
      "name": "test_exactly_the_minimum_warns_rather_than_failing",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L120-L122",
      "signature": "def test_exactly_the_minimum_warns_rather_than_failing(self) -> None: # 8 GB is enough to load the model, just not comfortably.",
      "exported": true,
      "origin": "ast",
      "body_hash": "a8ebcee8193b7c11055225f2bff827d306f564017415dec6859f910aad92714d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_exactly_the_recommendation_passes",
      "name": "test_exactly_the_recommendation_passes",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L129-L130",
      "signature": "def test_exactly_the_recommendation_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d2729ff33e0124e31709afe7152f9afe98a7e6f78163052d9f21f320a86a718f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_just_under_the_recommendation_still_warns",
      "name": "test_just_under_the_recommendation_still_warns",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L124-L127",
      "signature": "def test_just_under_the_recommendation_still_warns(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aabcbf674b886768100d9634d653a5df2b668772873bda09f870e3ab2813ea91",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_the_reported_value_carries_both_totals",
      "name": "test_the_reported_value_carries_both_totals",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L132-L135",
      "signature": "def test_the_reported_value_carries_both_totals(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "45f9e3333ec9b5d34c1ec1d7c0c86c7006cb42e5d26986a5512b0a87580b60e3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_the_smaller_model_passes_where_the_larger_one_fails",
      "name": "test_the_smaller_model_passes_where_the_larger_one_fails",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L137-L148",
      "signature": "def test_the_smaller_model_passes_where_the_larger_one_fails(self) -> None: # 4 GB: below v2.0's 8 GB minimum, but at v2.5's recommendation.",
      "exported": true,
      "origin": "ast",
      "body_hash": "97d2d922567d705be3a55f65687881ae87fc60337d22fc549069aaf2efe7b13d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RamCheckTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#report_with_gpu",
      "name": "report_with_gpu",
      "kind": "function",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L66-L71",
      "signature": "def report_with_gpu(value: str, status: str = \"pass\") -> check_system.SystemReport",
      "exported": true,
      "origin": "ast",
      "body_hash": "9308798a7b41b75a785ba01c5477f46cd2285fbc2ee020afe9e018501273012e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "name": "ReportTests",
      "kind": "class",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L329-L404",
      "signature": "class ReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "5bf6edb4d30654ff4fadb3c466a87b88f8a5a371e5825a69c2a7976d9a8670cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "name": "run_checks",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L332-L341",
      "signature": "def run_checks(self, *, total_ram=32.0, modules=None, free_gb=100.0, model=\"v2.5\"): # `modules` is patched into sys.modules, so a value of None stands for # \"not installed\" -- importing it raises ImportError.",
      "exported": true,
      "origin": "ast",
      "body_hash": "62d2a44071f2bbbc3bbed90b208d3046465eee29aa04864170fdeb789599bfd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_cuda_host_is_reported_in_gpu_mode",
      "name": "test_a_cuda_host_is_reported_in_gpu_mode",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L350-L352",
      "signature": "def test_a_cuda_host_is_reported_in_gpu_mode(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "92ead232df0d914b5cf569e61b793dfa86a7ef960d916cf3881bfa102b3b787c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_full_disk_fails_the_whole_report",
      "name": "test_a_full_disk_fails_the_whole_report",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L370-L375",
      "signature": "def test_a_full_disk_fails_the_whole_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7e0ec8580f7179e377e03690eccf32f263e31189d393a21cbac5902047b63ea",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_healthy_cpu_host_passes_in_cpu_mode",
      "name": "test_a_healthy_cpu_host_passes_in_cpu_mode",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L343-L348",
      "signature": "def test_a_healthy_cpu_host_passes_in_cpu_mode(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90c825c52d25058c6c57d0df26e3ae42137dc534b79a03509073241eb3f160e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_an_apple_silicon_host_is_reported_in_mps_mode",
      "name": "test_an_apple_silicon_host_is_reported_in_mps_mode",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L354-L358",
      "signature": "def test_an_apple_silicon_host_is_reported_in_mps_mode(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4a173268bc226f7d60305e45557e644043e456780fcbb4b3a5116cc5fcff81aa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_an_unknown_model_version_is_not_silently_substituted",
      "name": "test_an_unknown_model_version_is_not_silently_substituted",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L402-L404",
      "signature": "def test_an_unknown_model_version_is_not_silently_substituted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "55d234fcbd9e0b115d4aa622d0f8636fadc1c9bde3bc7060ce4a0db5cfefec94",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_every_documented_resource_is_checked",
      "name": "test_every_documented_resource_is_checked",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L384-L389",
      "signature": "def test_every_documented_resource_is_checked(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2b55142c3e0c68c9ce5d34f5bc9275e01dab3eaaecb6791409bcf3e84417aad3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_the_json_report_is_serialisable_and_keeps_its_keys",
      "name": "test_the_json_report_is_serialisable_and_keeps_its_keys",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L391-L400",
      "signature": "def test_the_json_report_is_serialisable_and_keeps_its_keys(self) -> None: # forecast_csv consumes this dict, and --json is a documented interface.",
      "exported": true,
      "origin": "ast",
      "body_hash": "81ab87691c11f9fdc1c300979df847bf2853d8f7ad22da9e9a2727159d45964c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_too_little_memory_fails_the_whole_report",
      "name": "test_too_little_memory_fails_the_whole_report",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L360-L368",
      "signature": "def test_too_little_memory_fails_the_whole_report(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee38dae8cd566843bd8a9eed94d2e36cf4340e73cbde3eaab1ec81ccb6fe5323",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_warnings_alone_do_not_fail_the_report",
      "name": "test_warnings_alone_do_not_fail_the_report",
      "kind": "method",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L377-L382",
      "signature": "def test_warnings_alone_do_not_fail_the_report(self) -> None: # No GPU and no timesfm installed: both warn, and the run may proceed.",
      "exported": true,
      "origin": "ast",
      "body_hash": "109b9fe2e7e799224505713662b795a4c392545de043d541bf30c166414bfd0f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/timesfm-forecasting/test_scripts.py#usage",
      "name": "usage",
      "kind": "function",
      "path": "tests/timesfm-forecasting/test_scripts.py",
      "span": "L59-L63",
      "signature": "def usage(free_gb: float)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cad2b66fcb1240175f80744cc71b56927c10b17f53b38c82341bf0ac57afef39",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L1-L527",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "5da04436abdad84db328e48533e943a013f60ff988142bd861e9667b55258aba",
      "chars": 22113,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "name": "complete_synthetic_documents",
      "kind": "function",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L35-L245",
      "signature": "def complete_synthetic_documents() -> dict[str, dict]",
      "exported": true,
      "origin": "ast",
      "body_hash": "04162743edabd31e4a5c223a4560229ba050c4ee142f4bad03d2005e1114eee7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#load_asset",
      "name": "load_asset",
      "kind": "function",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L31-L32",
      "signature": "def load_asset(name: str) -> dict",
      "exported": true,
      "origin": "ast",
      "body_hash": "08652f8edcd08265cbc21765ab7bbf7d3a50e025a23d928f2e193f8ce023f1dc",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "name": "StaticSafetyTests",
      "kind": "class",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L256-L335",
      "signature": "class StaticSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "73065162c421a5a6c891d8802bc892fc6b20ef7b88ecdb81a88f39409a54d7d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_all_script_help_commands_are_dependency_free",
      "name": "test_all_script_help_commands_are_dependency_free",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L323-L335",
      "signature": "def test_all_script_help_commands_are_dependency_free(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "20b7be8ff97665404b16adb75c439b04e9e0837c0b6b6240559639b846606849",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_assets_are_generic_json_only",
      "name": "test_assets_are_generic_json_only",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L299-L314",
      "signature": "def test_assets_are_generic_json_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad45357b877268afeac9f394967df0a13bbfa588811acdf3e220eab44a68970b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_old_specialty_and_schematic_files_are_absent",
      "name": "test_old_specialty_and_schematic_files_are_absent",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L293-L297",
      "signature": "def test_old_specialty_and_schematic_files_are_absent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d02bdd1553dcdb6d35a1407cc914a7a5ea7643210184d9beddec8d05854f7b99",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_scripts_have_no_network_dynamic_or_process_features",
      "name": "test_scripts_have_no_network_dynamic_or_process_features",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L257-L291",
      "signature": "def test_scripts_have_no_network_dynamic_or_process_features(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a9a1ceb7fe6808242fc5d781f44d1f755b6162808be366985f67554f28b803b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_skill_is_versioned_and_under_500_lines",
      "name": "test_skill_is_versioned_and_under_500_lines",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L316-L321",
      "signature": "def test_skill_is_versioned_and_under_500_lines(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b2cf14c9e5d906451a35cd16caba5167a6b471f9b34c0d063d8e1ac55a20457a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StaticSafetyTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "name": "StructureAndBoundsTests",
      "kind": "class",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L338-L415",
      "signature": "class StructureAndBoundsTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c8d99fb49f2ffef2e14201c3a5637977341410fa62bed6852ec76f96454eb7e0",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_complete_synthetic_package_passes_all_checks",
      "name": "test_complete_synthetic_package_passes_all_checks",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L352-L364",
      "signature": "def test_complete_synthetic_package_passes_all_checks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40234787662f4a44378a38e0294868cafeab935043409d86513e7756effbcf39",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_duplicate_json_key_is_rejected",
      "name": "test_duplicate_json_key_is_rejected",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L372-L383",
      "signature": "def test_duplicate_json_key_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3fdf512652e88a61a038766448a84fdebd2c597b99f07247bbc0f6411c43f6dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_excessive_json_depth_is_rejected",
      "name": "test_excessive_json_depth_is_rejected",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L385-L397",
      "signature": "def test_excessive_json_depth_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5cf2345eacff9b402a941b23cd46421b363cf2d6160f6cfd2650ac9ad0352555",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_symlink_input_is_rejected",
      "name": "test_symlink_input_is_rejected",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L405-L415",
      "signature": "def test_symlink_input_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9ebfe56437314ad3f77e81145d75ae3cbe4afd3a5bb50a025a09dac48d2ebb6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_template_is_structurally_valid_but_incomplete",
      "name": "test_template_is_structurally_valid_but_incomplete",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L339-L350",
      "signature": "def test_template_is_structurally_valid_but_incomplete(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ee4245c5816528be7e0e6b0e17421d81a05a561d8bba011c69e26baef4500e21",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_unknown_field_fails_closed",
      "name": "test_unknown_field_fails_closed",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L366-L370",
      "signature": "def test_unknown_field_fails_closed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "12a6aa5a698ea94cbdb7906fc4fac335b4b6b980511efd5785993d6d16b515b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_url_input_path_is_rejected",
      "name": "test_url_input_path_is_rejected",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L399-L403",
      "signature": "def test_url_input_path_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "de028b27a0d73e763a792d8adbd3a13dacffe02ead381a3dc355f605ce55fd76",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StructureAndBoundsTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "name": "WorkflowTests",
      "kind": "class",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L418-L522",
      "signature": "class WorkflowTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "f403de59b03d19e8e050447bd24bd10473e024b4db73aabb015cd79ef86e9357",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_consistency_rejects_reversed_supplied_dates",
      "name": "test_consistency_rejects_reversed_supplied_dates",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L496-L507",
      "signature": "def test_consistency_rejects_reversed_supplied_dates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "52ec0413b25c6d21fc50b93cd3ca4121c1807fa15e0ecabf5a4660138777dce2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_generator_creates_six_blocked_templates",
      "name": "test_generator_creates_six_blocked_templates",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L419-L436",
      "signature": "def test_generator_creates_six_blocked_templates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "90d6f99708cc78ef66a600ad9531c5bb640bc8b486456708d7825408f54884f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_generator_requires_explicit_real_patient_acknowledgment",
      "name": "test_generator_requires_explicit_real_patient_acknowledgment",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L438-L448",
      "signature": "def test_generator_requires_explicit_real_patient_acknowledgment(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "42c47214f615331cb0e9395f088344aa3b34c3f37bdb8781dc28e49bff27ee6f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_patient_derived_package_requires_qualified_privacy_review",
      "name": "test_patient_derived_package_requires_qualified_privacy_review",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L509-L522",
      "signature": "def test_patient_derived_package_requires_qualified_privacy_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fc26b27feb687edeacd2683d584b007ce5048962ffdeab223153cad2f1e8b300",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_timeline_does_not_expand_frequency_text",
      "name": "test_timeline_does_not_expand_frequency_text",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L482-L494",
      "signature": "def test_timeline_does_not_expand_frequency_text(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5f03a906c019ddc8fedc859150f3a774dc52cd7ad9659563dcb1cbcc8a73f3cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_timeline_uses_only_explicit_dates",
      "name": "test_timeline_uses_only_explicit_dates",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L467-L480",
      "signature": "def test_timeline_uses_only_explicit_dates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7ba171d573ad5a40bed95c23ebf1e220369dc43607a887ff630c6ec7c9f29182",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_traceability_fails_unknown_fact_without_echoing_content",
      "name": "test_traceability_fails_unknown_fact_without_echoing_content",
      "kind": "method",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L450-L465",
      "signature": "def test_traceability_fails_unknown_fact_without_echoing_content(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c07c7c0eaaf96a2ac6eef7f635f725890b869e0908ec1cd3f060a84684c873f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkflowTests"
    },
    {
      "id": "tests/treatment-plans/test_scripts.py#write_package",
      "name": "write_package",
      "kind": "function",
      "path": "tests/treatment-plans/test_scripts.py",
      "span": "L248-L253",
      "signature": "def write_package(root: Path, documents: dict[str, dict]) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3033a19c3b6a9ded61ace7903a73c094961723f6bcd716c4ecde4f93cc1427a5",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1-L1078",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "2eaed8dec94ff320284379726ea7075aa1ee3df9aba36f5678ddcd66526d3910",
      "chars": 45012,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#_available",
      "name": "_available",
      "kind": "function",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L38-L45",
      "signature": "def _available(name: str) -> bool",
      "exported": false,
      "origin": "ast",
      "body_hash": "387178a54ef103868c6bbb2078b3d6923f0a03790ae1328f1033bf7a6d502913",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "name": "AuditTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L699-L827",
      "signature": "class AuditTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe94d904d49a47fc1eac3558a2220ba2f3dcb13e314c573bc83bbcb6b18ccaa8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests._findings",
      "name": "_findings",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L700-L701",
      "signature": "def _findings(self, source: str) -> list[dict]",
      "exported": false,
      "origin": "ast",
      "body_hash": "b53ddef4d2a55c4f85d3dcc957dbfd1e4be48d172d40a51dc3294a968ed5e047",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests._rules",
      "name": "_rules",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L703-L704",
      "signature": "def _rules(self, source: str) -> set[str]",
      "exported": false,
      "origin": "ast",
      "body_hash": "a181ac299fd9fda5afa1dfdd2f2119d2b1ee68b9ff28c7e0300869244d862dc0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_a_standalone_directive_covers_the_next_line",
      "name": "test_a_standalone_directive_covers_the_next_line",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L772-L781",
      "signature": "def test_a_standalone_directive_covers_the_next_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "476abc867d4af72ae65a012ad82a47cc51936b1f480438899a6a5ffb43612341",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_clean_source_produces_no_findings",
      "name": "test_clean_source_produces_no_findings",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L722-L723",
      "signature": "def test_clean_source_produces_no_findings(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d978a260d3c722743a1a9b532d8dc753cec863bca43ac6ea4c08a36f4e22cc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_constant_detection_needs_three_significant_digits",
      "name": "test_constant_detection_needs_three_significant_digits",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L790-L794",
      "signature": "def test_constant_detection_needs_three_significant_digits(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5922fcc5e1a6d637d490168a401b7872cfd7c3ebeac5b51c10d0efacbd9631c4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_delta_units_silence_the_offset_warning",
      "name": "test_delta_units_silence_the_offset_warning",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L783-L788",
      "signature": "def test_delta_units_silence_the_offset_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39bbeec58c4cbea49ead97cfbfb885413dab29a842911ab1676893c7fc352163",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_directive_comments_suppress_and_are_counted",
      "name": "test_directive_comments_suppress_and_are_counted",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L738-L760",
      "signature": "def test_directive_comments_suppress_and_are_counted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "952741a2eac81d8a5b01f8ce21eb0b6ef0a743d32c5d62f4c14da1f66627440e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_every_rule_fires_on_the_hazard_fixture",
      "name": "test_every_rule_fires_on_the_hazard_fixture",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L706-L720",
      "signature": "def test_every_rule_fires_on_the_hazard_fixture(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "40c3cdeaea2033f57fb56c163de15ec9565ecd2a5507f4f011c00f358e057833",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_exit_code_respects_the_threshold",
      "name": "test_exit_code_respects_the_threshold",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L812-L823",
      "signature": "def test_exit_code_respects_the_threshold(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "88971b6e828fc0254497d99f9fb7606e699289c35666d9ce4addbd34718a1623",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_findings_are_ordered_and_carry_a_remedy",
      "name": "test_findings_are_ordered_and_carry_a_remedy",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L803-L810",
      "signature": "def test_findings_are_ordered_and_carry_a_remedy(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0160746905b172b4bade39a116db779fe1f0a472455635e15290b292262fe53d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_magnitude_after_an_explicit_conversion_is_accepted",
      "name": "test_magnitude_after_an_explicit_conversion_is_accepted",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L733-L736",
      "signature": "def test_magnitude_after_an_explicit_conversion_is_accepted(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c4c9c9179671d2c8bdc2c7cc63c0410372bc91b7e480bb2f15b66f76cdbc7d5f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_significant_digit_counting",
      "name": "test_significant_digit_counting",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L796-L801",
      "signature": "def test_significant_digit_counting(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "39b82d54e8240a322e1e09733cd46ac21409b62f584991074eaba13fb6657c52",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_suppression_parsing",
      "name": "test_suppression_parsing",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L762-L770",
      "signature": "def test_suppression_parsing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6451bd5532f042ef4a3f60199888e3b0009770f10402fe66cf273a7fac023769",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_the_skills_own_scripts_are_clean",
      "name": "test_the_skills_own_scripts_are_clean",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L725-L731",
      "signature": "def test_the_skills_own_scripts_are_clean(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e6b94b69d3449f21ae7a67f71f361d4c6a1d4b1dcf483d1e5882d3a01105286b",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_unparsable_source_is_reported_not_executed",
      "name": "test_unparsable_source_is_reported_not_executed",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L825-L827",
      "signature": "def test_unparsable_source_is_reported_not_executed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b29e4d10ccfc135dc6b478d2d3a0eee1ae3cf5dc13e2cf2ac88fbd45b9ac7b16",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "AuditTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "name": "BudgetTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L322-L429",
      "signature": "class BudgetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "79f5ac68f73f07f85947aefb3392d915ba01e801e0eedcd41817ecf55cc75be2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests._spec",
      "name": "_spec",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L323-L345",
      "signature": "def _spec(self) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "738034ee7e5277700b713cfb4eb4510a2efae1b2dedc3468e2124c23078d4ace",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_combined_uncertainty_and_effective_dof",
      "name": "test_combined_uncertainty_and_effective_dof",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L377-L384",
      "signature": "def test_combined_uncertainty_and_effective_dof(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8404ee330903d66a057b55c17900fba8fdf2ec25cd2289266f66a300bd08f8d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_divisors_follow_the_declared_distribution",
      "name": "test_divisors_follow_the_declared_distribution",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L347-L364",
      "signature": "def test_divisors_follow_the_declared_distribution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "732baeb35c1ec2bc433ebe0c055deece60ce13b3ca1bf2adb25faedbf33f7662",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_malformed_specs_are_rejected",
      "name": "test_malformed_specs_are_rejected",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L421-L429",
      "signature": "def test_malformed_specs_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d14318cb9964a5f2a5f7dd6884e707404b77fea28620e4c40009576456e269b8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_relative_components_need_a_measurand_value",
      "name": "test_relative_components_need_a_measurand_value",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L366-L374",
      "signature": "def test_relative_components_need_a_measurand_value(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6ec473ee678142ca6ea9b15043d2ce400c2ed28459cec4d078bcc993459fc7d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_report_is_strict_json_and_renders_markdown",
      "name": "test_report_is_strict_json_and_renders_markdown",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L413-L419",
      "signature": "def test_report_is_strict_json_and_renders_markdown(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6a05350baf56f19d55dba24d70beb3490904abefe860c2129f9fe6b00c4af973",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_small_sample_warning_and_type_a_dof_warning",
      "name": "test_small_sample_warning_and_type_a_dof_warning",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L387-L398",
      "signature": "def test_small_sample_warning_and_type_a_dof_warning(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b96cde1ee3e62866ceec64674d5e5f419535f533ebb2231d3b5c4bc81faeba82",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_undivided_type_b_normal_component_is_flagged",
      "name": "test_undivided_type_b_normal_component_is_flagged",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L401-L410",
      "signature": "def test_undivided_type_b_normal_component_is_flagged(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c77dc1d2c8b865bb197954ac9af1cf1e09ca2b318bea6f3290356b8f4e6cde1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "BudgetTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "name": "CommonSafetyTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L96-L157",
      "signature": "class CommonSafetyTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "208afffc1550daff60d9afdc2bdaa4051bbc789009091b3d5bd4ede1b9013964",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_help_is_available_without_running_workflows",
      "name": "test_help_is_available_without_running_workflows",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L152-L157",
      "signature": "def test_help_is_available_without_running_workflows(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "37330674121a43bb61bfe611ec92f5c1c918a5accbad36b11303ce8cacba29d6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_json_output_is_private_and_refuses_overwrite",
      "name": "test_json_output_is_private_and_refuses_overwrite",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L97-L106",
      "signature": "def test_json_output_is_private_and_refuses_overwrite(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8c1745741377abe4d63933ead92ac6c54f92ed2851e4fad138e77b22c655605d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_local_paths_reject_urls_and_symlinks",
      "name": "test_local_paths_reject_urls_and_symlinks",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L108-L123",
      "signature": "def test_local_paths_reject_urls_and_symlinks(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4ccd709fa5d2a0b996a2c647806191963a9ae5384523bbbeb47b970f1cd012d5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_no_shadow_modules_network_or_environment_reads",
      "name": "test_no_shadow_modules_network_or_environment_reads",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L125-L144",
      "signature": "def test_no_shadow_modules_network_or_environment_reads(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "112caf0bd38896db35778e1499bb51e30c2fbef9e583ea01091a7ea8aabad7f9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_skill_directory_ships_no_bytecode_or_tests",
      "name": "test_skill_directory_ships_no_bytecode_or_tests",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L146-L150",
      "signature": "def test_skill_directory_ships_no_bytecode_or_tests(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "71c14b167e73523440452ccdec1401cda4d93c129940b5ca5af85bc5595fccfe",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommonSafetyTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "name": "ConversionTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L623-L696",
      "signature": "class ConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3581f1a5a3cdbcc36a4e3699b80fe59021813a5773f8ed36ead4ce5672f97b5e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L624-L625",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "17fd358638000bde354047ac3e2028bfb9801badc27a9cc7d7e98a9372e11eb2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_context_is_required_and_named_in_the_error",
      "name": "test_context_is_required_and_named_in_the_error",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L634-L639",
      "signature": "def test_context_is_required_and_named_in_the_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4cb52de7fbfa88e5470c455e0c06afbb0f82402ef9e59fe48d9ec99bee184f3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_offset_units_convert_the_value_and_the_difference_apart",
      "name": "test_offset_units_convert_the_value_and_the_difference_apart",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L664-L682",
      "signature": "def test_offset_units_convert_the_value_and_the_difference_apart(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "654b656887e0fac6f3d634e548d0e2e6f599e854efa5b456a47082f40841acd9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_plain_conversion_reports_a_factor",
      "name": "test_plain_conversion_reports_a_factor",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L627-L632",
      "signature": "def test_plain_conversion_reports_a_factor(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "01835ee29d42dec97794286cf14807ae0a1be09414233633fb5bb63503145ae4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_spectroscopy_context_converts_and_propagates",
      "name": "test_spectroscopy_context_converts_and_propagates",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L641-L662",
      "signature": "def test_spectroscopy_context_converts_and_propagates(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "97b8d846d4dba3f100d386319f2417b1adef32ae0410b8e3a1ea573f3c394722",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_unit_strings_are_bounded_and_screened",
      "name": "test_unit_strings_are_bounded_and_screened",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L684-L688",
      "signature": "def test_unit_strings_are_bounded_and_screened(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a28563ceda5c44adac628507a7750d292ababa5a5614a0f7bfd0cdc99fc0dc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_unknown_units_raise_a_cli_error",
      "name": "test_unknown_units_raise_a_cli_error",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L690-L696",
      "signature": "def test_unknown_units_raise_a_cli_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c63a9f5c97537633c8c50eb1a2e68b63937990468f8a105f3b0f454598ad094c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConversionTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests",
      "name": "ExpressionParsingTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L160-L201",
      "signature": "class ExpressionParsingTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c1251a024f07c21a3fb6ce50153d015b161a461c4a874b2a011b92c4df79476",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_accepts_arithmetic_and_whitelisted_functions",
      "name": "test_accepts_arithmetic_and_whitelisted_functions",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L161-L163",
      "signature": "def test_accepts_arithmetic_and_whitelisted_functions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "688b417cf640fa02c509556ca4615f6037afb68461ac7088432dda75b1b123fc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExpressionParsingTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_reduction_uses_supplied_functions_only",
      "name": "test_reduction_uses_supplied_functions_only",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L194-L201",
      "signature": "def test_reduction_uses_supplied_functions_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8965870e7c6bfec443b04ac6f7f68f41dfb97f4231acc8c3b0746cc6a8f0858f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExpressionParsingTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_rejects_everything_that_is_not_arithmetic",
      "name": "test_rejects_everything_that_is_not_arithmetic",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L165-L182",
      "signature": "def test_rejects_everything_that_is_not_arithmetic(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7cc6e06c6af17f3e6e632bc893344db6091ec76376392124f706fe2fa7e78fb5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExpressionParsingTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_rejects_unbounded_expressions",
      "name": "test_rejects_unbounded_expressions",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L184-L192",
      "signature": "def test_rejects_unbounded_expressions(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ac46113471ba084f1ed4d3c7eeeb8d84588004290e67d36941723e76d7ef154d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExpressionParsingTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "name": "FormatResultTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L247-L319",
      "signature": "class FormatResultTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "45683e0489ccef79a6499f4d600eb1ceeb32156036f6464709f49fdae57ea69b",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_bad_arguments_are_rejected",
      "name": "test_bad_arguments_are_rejected",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L304-L310",
      "signature": "def test_bad_arguments_are_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "93837b32f8a2292f1a4cbca465a1aa86e4ec9ddbad53e6b50e6ee13c04b5a738",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_carrying_uncertainty_recomputes_the_decimal_place",
      "name": "test_carrying_uncertainty_recomputes_the_decimal_place",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L254-L258",
      "signature": "def test_carrying_uncertainty_recomputes_the_decimal_place(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3653b6dad37b6348096ccef97da1fd975903bfcd3794bf88970c306759c0db9d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_concise_notation_matches_the_plus_minus_form",
      "name": "test_concise_notation_matches_the_plus_minus_form",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L267-L273",
      "signature": "def test_concise_notation_matches_the_plus_minus_form(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a90eeb68af4720f748a8cbda86693cfaa169ff19606d49e021882677d9515582",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_digits_left_of_the_point_switch_to_scientific",
      "name": "test_digits_left_of_the_point_switch_to_scientific",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L275-L280",
      "signature": "def test_digits_left_of_the_point_switch_to_scientific(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d704bb875a235652aad5274caa93abc9414778c64cc58b1e8c8eb7fd68da7fc7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_exact_values_are_labelled",
      "name": "test_exact_values_are_labelled",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L288-L292",
      "signature": "def test_exact_values_are_labelled(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b98abb5d3c6265b182c0b56ed75e82fcf2c6321ee76ab1eb6fb7a28cfabcefd6",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_extreme_exponents_avoid_a_run_of_zeros",
      "name": "test_extreme_exponents_avoid_a_run_of_zeros",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L282-L286",
      "signature": "def test_extreme_exponents_avoid_a_run_of_zeros(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d22488ccd065fce4ebd9fd1f7de397910c05fafc624371154b650508f35a9a2d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_one_significant_digit_is_honoured",
      "name": "test_one_significant_digit_is_honoured",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L260-L265",
      "signature": "def test_one_significant_digit_is_honoured(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4237dce1a9c3999e1cd4050ab77725f43951b6a7d75a3f83f2b89edfe3dc68b4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_statement_names_the_coverage_factor",
      "name": "test_statement_names_the_coverage_factor",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L312-L319",
      "signature": "def test_statement_names_the_coverage_factor(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "151e97a6791ec78c3133f5599d529a0617bcd75ffe24f8ec7c8969f8a5e6b04f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_value_is_rounded_to_the_uncertainty_decimal_place",
      "name": "test_value_is_rounded_to_the_uncertainty_decimal_place",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L248-L252",
      "signature": "def test_value_is_rounded_to_the_uncertainty_decimal_place(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2858f8f4f83d1fb50d2a9554b91a43e2bb48129cea8d5d7950954db02015606f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_warnings_cover_the_reporting_traps",
      "name": "test_warnings_cover_the_reporting_traps",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L294-L302",
      "signature": "def test_warnings_cover_the_reporting_traps(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "576f647d9fc82d3b58f039b2c0b77d588ceaac1b3b3f8679aeb6ee2c9fdaa3b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FormatResultTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "name": "MetrologyMathTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L204-L244",
      "signature": "class MetrologyMathTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "51e5518918d68e97ba51facfb8ec0cffcadc9dda1bb5c2b8578a4dcca7520d76",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_coverage_factor_follows_the_t_distribution",
      "name": "test_coverage_factor_follows_the_t_distribution",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L222-L224",
      "signature": "def test_coverage_factor_follows_the_t_distribution(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9e2d1bf5f6e3c4271eb38f520e3eb22c9a7f42ce078b251c2c05c3d6b8ae06f4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_coverage_factor_matches_the_normal_limit",
      "name": "test_coverage_factor_matches_the_normal_limit",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L218-L219",
      "signature": "def test_coverage_factor_matches_the_normal_limit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "aa97debf0fa0aabfbbe5509813b33dd7e0b6b7ccd6bf96379ef807c80851ccb9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_distribution_divisors_follow_the_gum",
      "name": "test_distribution_divisors_follow_the_gum",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L241-L244",
      "signature": "def test_distribution_divisors_follow_the_gum(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7d1210bbc71f298386015ecc5716074cbbe2f45c7fb7e2bf75464aa6b94cdec1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_infinite_degrees_of_freedom_drop_out",
      "name": "test_infinite_degrees_of_freedom_drop_out",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L211-L216",
      "signature": "def test_infinite_degrees_of_freedom_drop_out(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ecb75414e5f0944577285424314a20fca116c6601eb395486f4551ac5eaed3ed",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_numerical_tolerance_is_half_the_last_retained_digit",
      "name": "test_numerical_tolerance_is_half_the_last_retained_digit",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L226-L230",
      "signature": "def test_numerical_tolerance_is_half_the_last_retained_digit(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4d78894876593ec83f4525312a8bd503e27299e2c0bbfe2aee7aa4fe661b7cdc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_shortest_interval_finds_the_narrowest_window",
      "name": "test_shortest_interval_finds_the_narrowest_window",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L233-L239",
      "signature": "def test_shortest_interval_finds_the_narrowest_window(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "e9849416f8b3edb96805768df1ec63f2feb1a2db069811c4922d3fa67adc0404",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_welch_satterthwaite_matches_the_published_formula",
      "name": "test_welch_satterthwaite_matches_the_published_formula",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L205-L209",
      "signature": "def test_welch_satterthwaite_matches_the_published_formula(self) -> None: # Two components of 0.03 with 9 dof each: nu_eff = 4 * 9 / 2 = 18.",
      "exported": true,
      "origin": "ast",
      "body_hash": "993602d2e114ee612564793f635660bf433ed63f83c57f2824ce4d115e445216",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetrologyMathTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "name": "PlausibilityCatalogueTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L830-L891",
      "signature": "class PlausibilityCatalogueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccbaf67298965255827b9cf6b2be67670b9471a3c1e1defaeda950631412b15e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_bands_are_ordered_positive_and_cited",
      "name": "test_bands_are_ordered_positive_and_cited",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L855-L860",
      "signature": "def test_bands_are_ordered_positive_and_cited(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2f5a09bb984787089e2c3ca08414c56a1f547c177af0b07a0594a24a5f92a72e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_catalogue_names_are_unique",
      "name": "test_catalogue_names_are_unique",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L862-L866",
      "signature": "def test_catalogue_names_are_unique(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3297fe056bd0c85151ce3d1818cbf6fa1913137d147a0b50e6aefe4c763e0180",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_every_expression_declares_the_inputs_it_uses",
      "name": "test_every_expression_declares_the_inputs_it_uses",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L833-L844",
      "signature": "def test_every_expression_declares_the_inputs_it_uses(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0d578048306afdfca32b834b65ab00702a6682f445966ecf99b90da95e6ea10d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_exit_code_respects_the_threshold",
      "name": "test_exit_code_respects_the_threshold",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L881-L891",
      "signature": "def test_exit_code_respects_the_threshold(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "faa02765010d3bbfd7c871000bb05990c48f987d1d68ce4b4634a5fbd97bd716",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_orders_of_magnitude_has_no_infinities",
      "name": "test_orders_of_magnitude_has_no_infinities",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L874-L879",
      "signature": "def test_orders_of_magnitude_has_no_infinities(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "757b6d3ada2432a9265842085ac99213b398f9df4d3c1e44c5f70b7794e9d171",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_quantity_specifications_are_screened",
      "name": "test_quantity_specifications_are_screened",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L868-L872",
      "signature": "def test_quantity_specifications_are_screened(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f8944978e6d78a8e18dbcb850e3982b5467467198e0ff9f74bcd28754227e947",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_regimes_are_ordered_and_cover_the_line",
      "name": "test_regimes_are_ordered_and_cover_the_line",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L846-L853",
      "signature": "def test_regimes_are_ordered_and_cover_the_line(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0b59d982d08b2011072a1bfe253be4f4f56590853840f09a728ad3c7599881d7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityCatalogueTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "name": "PlausibilityTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L895-L1073",
      "signature": "class PlausibilityTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dd4642c67c84fa17288df50d0f1e851b01aa81e5eea46589f83e03a812b179e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L896-L897",
      "signature": "def _run(self, argv: list[str]) -> dict",
      "exported": false,
      "origin": "ast",
      "body_hash": "1675b9b0373dd743923516d311d263598510d976ce5a27ae823e8d24ce4b3936",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_dimensional_group_result_is_refused",
      "name": "test_a_dimensional_group_result_is_refused",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L952-L967",
      "signature": "def test_a_dimensional_group_result_is_refused(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f479e925324e93377e9d36cb6b6f23b9e250dee49037fbfe4c6500955c92032a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_near_miss_is_questionable_not_implausible",
      "name": "test_a_near_miss_is_questionable_not_implausible",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1000-L1007",
      "signature": "def test_a_near_miss_is_questionable_not_implausible(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3f44167cfba6964d0765b911c342aa1ed9a6d1126a068ab159ccf72b5348efff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_non_positive_magnitude_stays_strict_json",
      "name": "test_a_non_positive_magnitude_stays_strict_json",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1009-L1019",
      "signature": "def test_a_non_positive_magnitude_stays_strict_json(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "63e33e87a19d493553051e1c635316bf650cdd1be0c094045de84a26026654cf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_an_empty_request_is_rejected",
      "name": "test_an_empty_request_is_rejected",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1046-L1048",
      "signature": "def test_an_empty_request_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ad71e04496874fe0ff06c6bd2ba1a22a2e76081e45f481b0c86c982cdef3deb1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_accepts_a_value_inside_the_range",
      "name": "test_band_accepts_a_value_inside_the_range",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L990-L998",
      "signature": "def test_band_accepts_a_value_inside_the_range(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "069ffb84b1db70bfb5e3182471c921ce2ffae55636c39db7bdffde8b79fc4e1a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_flags_an_order_of_magnitude_error",
      "name": "test_band_flags_an_order_of_magnitude_error",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L976-L988",
      "signature": "def test_band_flags_an_order_of_magnitude_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fe28e4dbd236108ea3ae074e016d18380bec2d833e8ea189bebae440b1745852",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_refuses_an_incomparable_dimension",
      "name": "test_band_refuses_an_incomparable_dimension",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1021-L1028",
      "signature": "def test_band_refuses_an_incomparable_dimension(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "529834466dfb83ad13f874ad0518c8ab52ebd75921aafde930339b5fa6c2a002",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_constant_names_are_reserved",
      "name": "test_constant_names_are_reserved",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1030-L1039",
      "signature": "def test_constant_names_are_reserved(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "def42b45d4ee9b74575589f41e1525d387c7fdfd702c32620b8c5065e5f53b4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_debye_length_matches_the_textbook_value",
      "name": "test_debye_length_matches_the_textbook_value",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L925-L935",
      "signature": "def test_debye_length_matches_the_textbook_value(self) -> None: # 0.96 nm for a monovalent electrolyte at 100 mM and 25 C.",
      "exported": true,
      "origin": "ast",
      "body_hash": "eb918f868675076b4d2ec431e6e76b0b80c073253fb7d8ba06f60f7807d221d4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_every_catalogue_entry_is_listed",
      "name": "test_every_catalogue_entry_is_listed",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1050-L1055",
      "signature": "def test_every_catalogue_entry_is_listed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0130c5b8957109256865e449e9b43d86623d6535c5f2390e12941cf20d2713cc",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_markdown_report_renders",
      "name": "test_markdown_report_renders",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1057-L1073",
      "signature": "def test_markdown_report_renders(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5d3ce817e437aa73460200c372da928505c526a07c0fa4626ceaccce230b083",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_missing_inputs_name_their_dimensionality",
      "name": "test_missing_inputs_name_their_dimensionality",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L969-L974",
      "signature": "def test_missing_inputs_name_their_dimensionality(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c84687d3c752cc41794551d1b46b09d6b74fc07bb3cbd1786be93fda29e21ce7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_reynolds_matches_the_hand_computation",
      "name": "test_reynolds_matches_the_hand_computation",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L899-L913",
      "signature": "def test_reynolds_matches_the_hand_computation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "186af34b1f103f2db738749d3590c247a092f0b6b7310b2f37ff590080eb1c4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_thermal_energy_tracks_scipy_constants",
      "name": "test_thermal_energy_tracks_scipy_constants",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L915-L923",
      "signature": "def test_thermal_energy_tracks_scipy_constants(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d7df5392481157e5b03dafb5be65d40457409bee1b18e91d4b4f3bc2c93d65e2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_unknown_names_list_the_alternatives",
      "name": "test_unknown_names_list_the_alternatives",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L1041-L1044",
      "signature": "def test_unknown_names_list_the_alternatives(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5e1986cfd0f3e80e5336a5644bf117a57a3d9086592dc39bda2b1dd347b3f94d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_wrong_dimensionality_is_caught_before_any_number",
      "name": "test_wrong_dimensionality_is_caught_before_any_number",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L937-L950",
      "signature": "def test_wrong_dimensionality_is_caught_before_any_number(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7fe38d14e99f3b6235bcd408004e6ae8fe8761c3c0a7514e95f9fdec2fce89e7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PlausibilityTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "name": "PropagationTests",
      "kind": "class",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L436-L619",
      "signature": "class PropagationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "98f97788f3dad0ebf369103dae02de10770212342983bed4f006c7d7c624dc82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests._framework",
      "name": "_framework",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L437-L442",
      "signature": "def _framework(self, expression: str, variables, correlations=None)",
      "exported": false,
      "origin": "ast",
      "body_hash": "23be9dd5b312dd29a51983c8254e7352fb69c5da2ef7433e0767a30ac363ec05",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_cli_rejects_a_model_with_missing_or_unused_inputs",
      "name": "test_cli_rejects_a_model_with_missing_or_unused_inputs",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L579-L597",
      "signature": "def test_cli_rejects_a_model_with_missing_or_unused_inputs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "01f4286e80e8185b5885e0cb29b46afd343ea9ef80554612a463dfd54e8e96f1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_correlated_sampling_needs_normal_inputs",
      "name": "test_correlated_sampling_needs_normal_inputs",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L522-L538",
      "signature": "def test_correlated_sampling_needs_normal_inputs(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a89939d514146cc4c25f68892ece7e150f74f75f4f2ce3a17dc88d6c5d582712",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_correlation_reduces_the_uncertainty_of_a_difference",
      "name": "test_correlation_reduces_the_uncertainty_of_a_difference",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L470-L481",
      "signature": "def test_correlation_reduces_the_uncertainty_of_a_difference(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "86cfa862c66dcec66ab692fff2f223b6c799a346c8a1ce04daa89a5392d2957a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_end_to_end_report_is_strict_json",
      "name": "test_end_to_end_report_is_strict_json",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L599-L619",
      "signature": "def test_end_to_end_report_is_strict_json(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a6ebf68bc23e302d391c074068c4f7a9b20ae023874b18071d9443539f4d75a0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_impossible_correlation_matrix_is_rejected",
      "name": "test_impossible_correlation_matrix_is_rejected",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L540-L556",
      "signature": "def test_impossible_correlation_matrix_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "525f670d94d96f3bae7397576a098b70a76fae05924c194fdc686ba96d9eaa89",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_linear_model_matches_quadrature",
      "name": "test_linear_model_matches_quadrature",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L444-L454",
      "signature": "def test_linear_model_matches_quadrature(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "179b14dcfc20b9e2856cc00f092ef1804e0bda0c1c941eacc62fce750dbeda6d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_monte_carlo_agrees_with_the_framework_on_a_linear_model",
      "name": "test_monte_carlo_agrees_with_the_framework_on_a_linear_model",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L483-L502",
      "signature": "def test_monte_carlo_agrees_with_the_framework_on_a_linear_model(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea3c61a882a106ac32dbbc1e8a2a7489c4b750cf888aa542e7c7c56eda9b37fa",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_nonlinear_model_fails_the_clause_eight_check",
      "name": "test_nonlinear_model_fails_the_clause_eight_check",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L504-L520",
      "signature": "def test_nonlinear_model_fails_the_clause_eight_check(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "da0e2cf2ea4d0c542a5bdc4e283a203cda3e9a756409a1ba225ca44faaa6f2d2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_sensitivity_coefficients_are_analytic_partials",
      "name": "test_sensitivity_coefficients_are_analytic_partials",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L456-L468",
      "signature": "def test_sensitivity_coefficients_are_analytic_partials(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7f570c35e54212f05e66aa1545992f09472d9b8ce1b763f84a8372b0af2b5810",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_variable_specification_parsing",
      "name": "test_variable_specification_parsing",
      "kind": "method",
      "path": "tests/uncertainty-and-units/test_scripts.py",
      "span": "L558-L577",
      "signature": "def test_variable_specification_parsing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c55091f4de145c9124be48ff856ce4bafb1503cc268a8b7e4338ee5854021050",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PropagationTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L1-L295",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "ebe8fb7991967ee669e806dc577a002ef0e3cc44ade970b09e17045236ba4b15",
      "chars": 13395,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "name": "CatalogueTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L35-L78",
      "signature": "class CatalogueTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "09fc3f0b677c3782e79b9a1815a73a814704f945b23ed81d2ecbca1fe91649c6",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CatalogueTests.test_checked_date_is_an_iso_day",
      "name": "test_checked_date_is_an_iso_day",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L67-L73",
      "signature": "def test_checked_date_is_an_iso_day(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6b45d4a639a40dbab3536ae696357c0be36f80afe9a8d80d207572ba79dffb3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CatalogueTests.test_every_template_declares_status_and_requirements",
      "name": "test_every_template_declares_status_and_requirements",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L47-L53",
      "signature": "def test_every_template_declares_status_and_requirements(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d94ec33620a7644d48953c2127bcbf9a74eee0dba24e1f4ec1baab0e26977673",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CatalogueTests.test_every_template_file_is_shipped",
      "name": "test_every_template_file_is_shipped",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L38-L45",
      "signature": "def test_every_template_file_is_shipped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8ea0a62b01634a264e243177b439af67c329a9cf8131eebd9a1da60d0a2128a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CatalogueTests.test_only_the_poster_scaffold_lacks_an_official_source",
      "name": "test_only_the_poster_scaffold_lacks_an_official_source",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L55-L65",
      "signature": "def test_only_the_poster_scaffold_lacks_an_official_source(self) -> None: # A missing source is a deliberate signal -- print_template tells the # user to consult event-specific instructions -- so it must stay rare # and intentional rather than creeping across the catalogue.",
      "exported": true,
      "origin": "ast",
      "body_hash": "4f6bb80282ec18a900044eb084b3ed648087941e6649101e701fb4de245e3f15",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CatalogueTests.test_template_path_resolves_inside_the_skill",
      "name": "test_template_path_resolves_inside_the_skill",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L75-L78",
      "signature": "def test_template_path_resolves_inside_the_skill(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c6182ecfb6a840477cd6b275849a2d6bd4cf76614040d1c315dde31047e3a9d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CatalogueTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "name": "CustomizeTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L224-L290",
      "signature": "class CustomizeTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "14ef21e614e82250ecbbb0905ce864e8ee1a4aac75296a01148c6e8a5760d323",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CustomizeTests.test_customizing_a_shipped_template_edits_the_title_and_nothing_else",
      "name": "test_customizing_a_shipped_template_edits_the_title_and_nothing_else",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L235-L253",
      "signature": "def test_customizing_a_shipped_template_edits_the_title_and_nothing_else(self) -> None: # The placeholder patterns end in `[^}]*`, so they are bounded by the # closing brace of the LaTeX macro they sit in. Driving a real shipped # template is what proves that boundary holds where it matters.",
      "exported": true,
      "origin": "ast",
      "body_hash": "50f67fc73e1f73df543459928954dc18430c124338e214f7c89ce5efb8adbcd8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomizeTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CustomizeTests.test_empty_values_never_blank_out_a_placeholder",
      "name": "test_empty_values_never_blank_out_a_placeholder",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L284-L290",
      "signature": "def test_empty_values_never_blank_out_a_placeholder(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "204da14ed3d61399ac22cf4776d8df53efaa5bd2109957330e5adb96ecb06c57",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomizeTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CustomizeTests.test_find_template_searches_every_asset_category",
      "name": "test_find_template_searches_every_asset_category",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L225-L233",
      "signature": "def test_find_template_searches_every_asset_category(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a3a5c65b71f97fb07e2ddf39dfc3a8d1a18d1a076945f84e9acf1f883c0aa764",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomizeTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CustomizeTests.test_replacement_stops_at_the_enclosing_brace",
      "name": "test_replacement_stops_at_the_enclosing_brace",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L255-L272",
      "signature": "def test_replacement_stops_at_the_enclosing_brace(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1055ba93c58eea9d84c25649e89f5cc0025605271c3adf2ecb7d2e3535d2b742",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomizeTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#CustomizeTests.test_template_is_copied_verbatim_when_nothing_matches",
      "name": "test_template_is_copied_verbatim_when_nothing_matches",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L274-L282",
      "signature": "def test_template_is_copied_verbatim_when_nothing_matches(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "42829af838a370ba69461a3cbe0834f4c100026d6a254f935dddb6f213e63642",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CustomizeTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#FontAndMetadataTests",
      "name": "FontAndMetadataTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L152-L170",
      "signature": "class FontAndMetadataTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1d5894e12c5ee2d1fb08e15a41cf33e19963a027c904854254b4c6eb36aaa49a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#FontAndMetadataTests.test_font_result_covers_missing_binary_empty_and_populated",
      "name": "test_font_result_covers_missing_binary_empty_and_populated",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L153-L158",
      "signature": "def test_font_result_covers_missing_binary_empty_and_populated(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ea599657f211c62e4236d2b58e416e468bae733533ccfcb7fcbcd91b3ac5e0b9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FontAndMetadataTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#FontAndMetadataTests.test_metadata_result_flags_identity_fields_for_blind_review",
      "name": "test_metadata_result_flags_identity_fields_for_blind_review",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L160-L170",
      "signature": "def test_metadata_result_flags_identity_fields_for_blind_review(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1bfbd78a782cfb88d4bf4caf70834c1740e0468bd7bc6fa943e83264bbaeeab8",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "FontAndMetadataTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "name": "PageCountDecisionTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L111-L149",
      "signature": "class PageCountDecisionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cee825f0590cdbb3c54d22434000fdd190d8395bcddbfa4aca70b960cffc47ce",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_content_pages_over_the_limit_fails",
      "name": "test_content_pages_over_the_limit_fails",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L135-L138",
      "signature": "def test_content_pages_over_the_limit_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c9667326c16cc3fc6c39d3e341a0e0c90e1ca4bee525a4dbe10ba107810f4fc3",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_content_pages_over_total_pages_fails",
      "name": "test_content_pages_over_total_pages_fails",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L130-L133",
      "signature": "def test_content_pages_over_total_pages_fails(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6528b486b39e382ad3b3080d9e542761d9b630191076bb83321387f41806d4b2",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_limit_without_a_manual_count_asks_for_one",
      "name": "test_limit_without_a_manual_count_asks_for_one",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L124-L128",
      "signature": "def test_limit_without_a_manual_count_asks_for_one(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "541e33fba22e6370c0cb0795769ff045c3cf61127ee8f9ef1ca1312e12b6d1ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_missing_poppler_skips_rather_than_guesses",
      "name": "test_missing_poppler_skips_rather_than_guesses",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L114-L117",
      "signature": "def test_missing_poppler_skips_rather_than_guesses(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c97f493e4d8432b9c6721c5f5ed339ebfe09b3cb17fccef22c89071759eed160",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_no_limit_reports_information_only",
      "name": "test_no_limit_reports_information_only",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L119-L122",
      "signature": "def test_no_limit_reports_information_only(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "22f2401af28987cd97e67105325430a1e9311da1808be32606c3bf188cfb7262",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_within_the_limit_passes",
      "name": "test_within_the_limit_passes",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L140-L143",
      "signature": "def test_within_the_limit_passes(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3d8768bc8f2e87607b38ac5a678e86fe592879f267caa9625341646cdb700195",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_zero_content_pages_is_accepted_not_treated_as_missing",
      "name": "test_zero_content_pages_is_accepted_not_treated_as_missing",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L145-L149",
      "signature": "def test_zero_content_pages_is_accepted_not_treated_as_missing(self) -> None: # `if content_pages is None` rather than a falsy check -- 0 pages is a # real answer and must not fall through to the \"manual\" branch.",
      "exported": true,
      "origin": "ast",
      "body_hash": "380cf7ab1d0fc8188c97aebb302cb167bacccff425fe021c43d1e2adc3036e02",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PageCountDecisionTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PresetTests",
      "name": "PresetTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L173-L191",
      "signature": "class PresetTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c14a83f55d24e85a13f928e5454e32b0708db119e87cd2fa7b75ca5fe59d57f8",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PresetTests.test_every_preset_carries_a_limit_source_and_checked_date",
      "name": "test_every_preset_carries_a_limit_source_and_checked_date",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L174-L183",
      "signature": "def test_every_preset_carries_a_limit_source_and_checked_date(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ef2e19c2ad101ad7605d31a2f02fbefd6463e9dbca24993db13fecfc38faa22c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresetTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#PresetTests.test_preset_names_are_offered_as_cli_choices",
      "name": "test_preset_names_are_offered_as_cli_choices",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L185-L191",
      "signature": "def test_preset_names_are_offered_as_cli_choices(self) -> None: # --venue uses `choices=sorted(PRESETS)`, so a preset added to the dict # is selectable without a second edit; this pins that wiring.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9557a8fd38cb45655dba092238759fcfdb7bad0ef75985c4349c57333cf8bc98",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "PresetTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#ReportTests",
      "name": "ReportTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L194-L221",
      "signature": "class ReportTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "a77c2687a62c3ef749c55a956c3edae7cb66b25ce1a6c336b310f45a7169ce65",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#ReportTests.test_report_names_an_absent_source_explicitly",
      "name": "test_report_names_an_absent_source_explicitly",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L215-L221",
      "signature": "def test_report_names_an_absent_source_explicitly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c38e85d646499508828fbe6fd0f819cdb48b667e7d57d2d7b37bc17107c43b38",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#ReportTests.test_report_records_the_source_and_every_result",
      "name": "test_report_records_the_source_and_every_result",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L195-L213",
      "signature": "def test_report_records_the_source_and_every_result(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf9fd95d2d685f0caebe8868cba2a669343d492922a782c941ebb55c75969f05",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ReportTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#SearchTests",
      "name": "SearchTests",
      "kind": "class",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L81-L108",
      "signature": "class SearchTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "88ecf544b734349e1216fdaf0dbc819e801275fdc051348dd824979ce052e08a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/venue-templates/test_scripts.py#SearchTests.test_filters_combine_rather_than_widen",
      "name": "test_filters_combine_rather_than_widen",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L102-L105",
      "signature": "def test_filters_combine_rather_than_widen(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "18f94cb794c65c460eea72d4c0f89433f856b1346cf7f6fc679acfbb33bb5684",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#SearchTests.test_type_filter_restricts_to_one_category",
      "name": "test_type_filter_restricts_to_one_category",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L86-L92",
      "signature": "def test_type_filter_restricts_to_one_category(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b7249644aaed597ea42b1bac37f568f200dd777e8e8bbd0cd66f6a5a617739c0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#SearchTests.test_unfiltered_search_returns_the_whole_catalogue",
      "name": "test_unfiltered_search_returns_the_whole_catalogue",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L82-L84",
      "signature": "def test_unfiltered_search_returns_the_whole_catalogue(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0e502f4c62be62ac5af6a4ca3273c510b33ae512f2ddad3a8a2ecc9c5910c8ca",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#SearchTests.test_unmatched_query_returns_nothing",
      "name": "test_unmatched_query_returns_nothing",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L107-L108",
      "signature": "def test_unmatched_query_returns_nothing(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "0019e1f9a28fbf066fddbf8b5bbdc752a89c8462864dd113338fd419817e7b8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/venue-templates/test_scripts.py#SearchTests.test_venue_and_keyword_filters_are_case_insensitive",
      "name": "test_venue_and_keyword_filters_are_case_insensitive",
      "kind": "method",
      "path": "tests/venue-templates/test_scripts.py",
      "span": "L94-L100",
      "signature": "def test_venue_and_keyword_filters_are_case_insensitive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "19321a03d5cdc784dddaa1ce466671352749a5da3dc4432db4af7c103f74fefb",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "SearchTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L1-L336",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "3ddb22e816b4d41cf42f92f7e0ac4cb2b94425be01f0020a6ef9b36308cfb17b",
      "chars": 12443,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#ConverterCliTests",
      "name": "ConverterCliTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L220-L269",
      "signature": "class ConverterCliTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "ca8bbd07f2bb7882217d1812d14636d8bca6052e15fa1bd48ce162962213fefd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_kraken_end_to_end_parquet",
      "name": "test_kraken_end_to_end_parquet",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L241-L259",
      "signature": "def test_kraken_end_to_end_parquet(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a28e933262b3c5c232964305fcc9383ad8964ebba8a21e6e8dafd51e79b687c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConverterCliTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_metaphlan_end_to_end_with_metadata",
      "name": "test_metaphlan_end_to_end_with_metadata",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L222-L238",
      "signature": "def test_metaphlan_end_to_end_with_metadata(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8f5eff193534930d287e3969b784c306a93f451af34d10a93ce663c5cac2c8d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConverterCliTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_missing_input_is_an_error",
      "name": "test_missing_input_is_an_error",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L261-L269",
      "signature": "def test_missing_input_is_an_error(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc0fc50ab5fda91a9c53e0672baf7a1a87ab1f172507a1e02f3112f7154ea897",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ConverterCliTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests",
      "name": "KrakenConversionTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L130-L163",
      "signature": "class KrakenConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "1f62d0a9f02cd248c5d849d4227625413d93eb0c04b399131f041cad5279c250",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests.test_counts_normalise_to_relative_abundance",
      "name": "test_counts_normalise_to_relative_abundance",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L154-L163",
      "signature": "def test_counts_normalise_to_relative_abundance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "fdec9cf06ff31049dabde384bd4a5404fb7b48bf235add91700bb6c0887126ff",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KrakenConversionTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests.test_lineage_rebuilt_from_indentation",
      "name": "test_lineage_rebuilt_from_indentation",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L132-L141",
      "signature": "def test_lineage_rebuilt_from_indentation(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f425ba7c5d550cc0505078d0f3ae8425f8db314eae55ef49c80c8d918d59ec9e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KrakenConversionTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests.test_subranks_and_unclassified_excluded",
      "name": "test_subranks_and_unclassified_excluded",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L144-L151",
      "signature": "def test_subranks_and_unclassified_excluded(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "a2231b2fbc60bc8c24d4a20f82fd2a41ed657fdeb4dcac361508ff2811bd334a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "KrakenConversionTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests",
      "name": "LineageNormalisationTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L65-L97",
      "signature": "class LineageNormalisationTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "2a543240d50398b4b2fd9f6b0c8fe76efb8568346f3c12fa3c5eadce6322cd3a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_deepest_rank",
      "name": "test_deepest_rank",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L91-L97",
      "signature": "def test_deepest_rank(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9c6c368781a5277acc78d81c8db34044b3c287550ce3a02e54731837d4f15927",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNormalisationTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_domain_prefix_is_rewritten_to_kingdom",
      "name": "test_domain_prefix_is_rewritten_to_kingdom",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L76-L81",
      "signature": "def test_domain_prefix_is_rewritten_to_kingdom(self) -> None: # SILVA/Greengenes2 write d__; the tokenizer would skip it entirely.",
      "exported": true,
      "origin": "ast",
      "body_hash": "184c59ce84cc8121bd1b387b3907b3fd051e604df2a8b3cecfde230bd91d9ec0",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNormalisationTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_pipe_separator_becomes_semicolon",
      "name": "test_pipe_separator_becomes_semicolon",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L69-L73",
      "signature": "def test_pipe_separator_becomes_semicolon(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "380b1876f967463a7c0650fae8a5a7f4d50d8005a338e6d62d75ccd0e13e16ef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNormalisationTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_strain_and_empty_segments_are_dropped",
      "name": "test_strain_and_empty_segments_are_dropped",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L84-L88",
      "signature": "def test_strain_and_empty_segments_are_dropped(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "6be30ff416f2e7cf6e791ca3b278eda2af7bb7b986731c1db2aab3d90f301459",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "LineageNormalisationTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests",
      "name": "MetaphlanConversionTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L100-L127",
      "signature": "class MetaphlanConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3efbae794a6998373abf935f320c7b427ff671508f71337b44cd304b3c972d82",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests.test_genus_rank_selection",
      "name": "test_genus_rank_selection",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L122-L127",
      "signature": "def test_genus_rank_selection(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "3a97b67e873da0b5bf8b6d61c95ea1b4d05c00d0cb428ebf46ec0cc982442e1c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetaphlanConversionTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests.test_species_rows_only_and_renormalised",
      "name": "test_species_rows_only_and_renormalised",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L102-L119",
      "signature": "def test_species_rows_only_and_renormalised(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "cf59cece8872287c5b21ef5305aff532985b367f54abb787766680c5638df09f",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MetaphlanConversionTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#QiimeConversionTests",
      "name": "QiimeConversionTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L166-L185",
      "signature": "class QiimeConversionTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c31c523febbba89ba2cc2ee508435b6f28cd4fa7a4b41b2b8b5a2b59ae2b442e",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#QiimeConversionTests.test_biom_banner_taxonomy_column_and_unassigned",
      "name": "test_biom_banner_taxonomy_column_and_unassigned",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L168-L185",
      "signature": "def test_biom_banner_taxonomy_column_and_unassigned(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f263928c897a4a9c8f2cca49b13a06316082186a6d74fd2b65e0307075577ad7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "QiimeConversionTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#run_script",
      "name": "run_script",
      "kind": "function",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L42-L52",
      "signature": "def run_script(name: str, *arguments: str) -> subprocess.CompletedProcess[str]",
      "exported": true,
      "origin": "ast",
      "body_hash": "0cfd8d7cef0b227e80b662887681c03d738a97b4d2f89f8282ad50504e6620d9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "name": "StubTokenizer",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L272-L294",
      "signature": "class StubTokenizer",
      "exported": true,
      "origin": "ast",
      "body_hash": "c5475f417616f164a72539b9744c9674d2e3383a1191fd5a198173f3f0a5e2a2",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#StubTokenizer.__init__",
      "name": "__init__",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L277-L280",
      "signature": "def __init__(self, known: set[str]) -> None",
      "exported": false,
      "origin": "ast",
      "body_hash": "4966ef5096c9eddd759d7c2aec3b174307606697a28b2669f64c81d6535324e4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubTokenizer"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#StubTokenizer.convert_tokens_to_ids",
      "name": "convert_tokens_to_ids",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L285-L294",
      "signature": "def convert_tokens_to_ids(self, token: str) -> int",
      "exported": true,
      "origin": "ast",
      "body_hash": "e172c7ade75d88c926ee7a54d820f59c998875f12f5a83d2f18fa1b9d28e5003",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubTokenizer"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#StubTokenizer.get_vocab",
      "name": "get_vocab",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L282-L283",
      "signature": "def get_vocab(self) -> dict[str, int]",
      "exported": true,
      "origin": "ast",
      "body_hash": "aec2917fd9bea280940da0e4dcfa11976a63935bd2da9e9c4d7965cb8f25ede4",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "StubTokenizer"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests",
      "name": "VocabCoverageTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L297-L331",
      "signature": "class VocabCoverageTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8531fd51509b63ed70e882295b579e378b1ed6ff8c62ebad6c18ff3bab70f27",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_coverage_weights_by_abundance",
      "name": "test_coverage_weights_by_abundance",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L299-L313",
      "signature": "def test_coverage_weights_by_abundance(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "bcb472931509d182377bf371aedfc06b4be9c476736c03dae5b40336e65af3d1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VocabCoverageTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_non_waypoint_file_is_rejected",
      "name": "test_non_waypoint_file_is_rejected",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L326-L331",
      "signature": "def test_non_waypoint_file_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4cfdfb44518eef71f06d5d71e862a18c5dfebed8f91472bf21c6ea68180069bf",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VocabCoverageTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_sample_with_no_known_taxa",
      "name": "test_sample_with_no_known_taxa",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L316-L323",
      "signature": "def test_sample_with_no_known_taxa(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5736cee9010eebfb3eed4bd541b2f57aee4bddd322b18cf6007032f09625dd73",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "VocabCoverageTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests",
      "name": "WaypointFormatTests",
      "kind": "class",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L188-L217",
      "signature": "class WaypointFormatTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c49a4eebaa9ab027a0d61e9a37251e10b29aeaf269fa0768900a5ef061f63d4a",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests.test_duplicate_lineages_are_summed",
      "name": "test_duplicate_lineages_are_summed",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L190-L201",
      "signature": "def test_duplicate_lineages_are_summed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "ccb455ba9de970ac971b0bf6a14663c771ff62b2899c79eba2f2b0f96073204a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WaypointFormatTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests.test_min_abundance_filter",
      "name": "test_min_abundance_filter",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L212-L217",
      "signature": "def test_min_abundance_filter(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "f6a94495d55ee0c9714e6f5ecfd38e81510eb2e25c35dc645bc0ca9614a3e6a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WaypointFormatTests"
    },
    {
      "id": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests.test_zero_total_sample_is_rejected",
      "name": "test_zero_total_sample_is_rejected",
      "kind": "method",
      "path": "tests/waypoint-bio/test_scripts.py",
      "span": "L204-L209",
      "signature": "def test_zero_total_sample_is_rejected(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d13c1d7b4aedc0148bedb41a93653a20cf7dee5b2b11237a0dfd0e36e930aad9",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WaypointFormatTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py",
      "name": "test_scripts.py",
      "kind": "file",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L1-L186",
      "signature": null,
      "exported": true,
      "origin": "ast",
      "body_hash": "34c0adcdb9245f671282e05401a6c12772bee70da0bd2f05a3c21047794eab3a",
      "chars": 6957,
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#CommandLineTests",
      "name": "CommandLineTests",
      "kind": "class",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L37-L60",
      "signature": "class CommandLineTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1c2ecd5fd2c873e86afda533e7e70fbe15af7d1b90770d89ba0ee92521458f7",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#CommandLineTests._run",
      "name": "_run",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L40-L50",
      "signature": "def _run(self, *args: str)",
      "exported": false,
      "origin": "ast",
      "body_hash": "31d8f2a81aa3d2dfa5cf8194c30204e36dcd990f922f8bc3f55bc505c7b0ed7d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#CommandLineTests.test_no_arguments_prints_usage",
      "name": "test_no_arguments_prints_usage",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L52-L55",
      "signature": "def test_no_arguments_prints_usage(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7af29560d2e2c946c7f2b4ee01cc3f5af1324f2f622755c089bdccebccfbb1e5",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#CommandLineTests.test_the_usage_text_documents_the_force_flag",
      "name": "test_the_usage_text_documents_the_force_flag",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L57-L60",
      "signature": "def test_the_usage_text_documents_the_force_flag(self) -> None: # --force is the escape hatch past the external-link guard; it has to # be discoverable or people will not know the guard can be overridden.",
      "exported": true,
      "origin": "ast",
      "body_hash": "59b5aa95ac7893ce4b5088e13d12dd6151f1e71174f9ba2fb682a5ec351384a1",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "CommandLineTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "name": "ExternalLinkRiskTests",
      "kind": "class",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L108-L137",
      "signature": "class ExternalLinkRiskTests(WorkbookTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "6fd1ed16ce41e8e85bc1b829d697bb7f2e800a8c9e91429da53ec9088c70e35f",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_missing_file_is_reported_as_no_risk",
      "name": "test_a_missing_file_is_reported_as_no_risk",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L118-L121",
      "signature": "def test_a_missing_file_is_reported_as_no_risk(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "9a03739a369d16c40b47da9265546535563042efc47a3627b02868baf40b3295",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalLinkRiskTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_non_workbook_file_is_reported_as_no_risk_rather_than_raising",
      "name": "test_a_non_workbook_file_is_reported_as_no_risk_rather_than_raising",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L113-L116",
      "signature": "def test_a_non_workbook_file_is_reported_as_no_risk_rather_than_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "b8da851a26dae9bb9fbb6597ebafea3bedad5866e4ff2e991c86aa942793396e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalLinkRiskTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_workbook_with_no_external_links_is_never_at_risk",
      "name": "test_a_workbook_with_no_external_links_is_never_at_risk",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L109-L111",
      "signature": "def test_a_workbook_with_no_external_links_is_never_at_risk(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "c1f59f290c74d7f3951e61beeea4b6d633a360d01109afdfa33fdf855d3fce28",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalLinkRiskTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_workbook_without_the_external_links_part_short_circuits",
      "name": "test_a_workbook_without_the_external_links_part_short_circuits",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L129-L137",
      "signature": "def test_a_workbook_without_the_external_links_part_short_circuits(self) -> None: # The function returns early unless xl/externalLinks/ exists, so the # common case never pays for two full workbook loads.",
      "exported": true,
      "origin": "ast",
      "body_hash": "9dec895a014ba9853d7a7354a00ba264ee59222ee7e9578cb95bbb8382d94016",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalLinkRiskTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_the_check_reads_the_package_without_modifying_it",
      "name": "test_the_check_reads_the_package_without_modifying_it",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L123-L127",
      "signature": "def test_the_check_reads_the_package_without_modifying_it(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "4713c076b661bfafd577c4916eb57bc6ff97298171555bddac2b7c6005018696",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalLinkRiskTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests",
      "name": "ExternalReferencePatternTests",
      "kind": "class",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L63-L87",
      "signature": "class ExternalReferencePatternTests(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "dc20d5c9d394a79050c977ae479bfe5fa7a2d2ee004d58ba7933ca54a7255dde",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests.test_bracketed_workbook_references_match",
      "name": "test_bracketed_workbook_references_match",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L66-L73",
      "signature": "def test_bracketed_workbook_references_match(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "2805002651af283468c1af136727eec4153cda0bc2900f9980c5a74f64d7496c",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalReferencePatternTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests.test_ordinary_local_formulas_do_not_match",
      "name": "test_ordinary_local_formulas_do_not_match",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L75-L84",
      "signature": "def test_ordinary_local_formulas_do_not_match(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "06eed9bdbb0cba7744e3c9bed4cc5c58a919f519e20a7284ce3ce6dcc5fe875d",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalReferencePatternTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests.test_the_reported_location_cap_is_positive",
      "name": "test_the_reported_location_cap_is_positive",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L86-L87",
      "signature": "def test_the_reported_location_cap_is_positive(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1c9ab2be0f8be184640d18780a245546febfcc0bfc031410a67cfb53648e5044",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "ExternalReferencePatternTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#MacroSetupTests",
      "name": "MacroSetupTests",
      "kind": "class",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L140-L159",
      "signature": "class MacroSetupTests(WorkbookTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "53082e19c3bef1673067cb9dbdc928f70ec87abcdf62604421acdf96161299dd",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#MacroSetupTests.test_setup_is_idempotent",
      "name": "test_setup_is_idempotent",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L153-L159",
      "signature": "def test_setup_is_idempotent(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "7dadf522f8bb675d852144bd7a52dfe67832d47cc32d1e357a77618ceeca7c36",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MacroSetupTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#MacroSetupTests.test_the_macro_module_is_written_into_the_profile",
      "name": "test_the_macro_module_is_written_into_the_profile",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L141-L146",
      "signature": "def test_the_macro_module_is_written_into_the_profile(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "33eff272404c0586230f9db34898ce6d81bab7226b7b0a506853d96fe837edef",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MacroSetupTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#MacroSetupTests.test_the_macro_xml_is_well_formed",
      "name": "test_the_macro_xml_is_well_formed",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L148-L151",
      "signature": "def test_the_macro_xml_is_well_formed(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "35bc656cc95ba6f6a5b451fb9e09c9c085bb6dd509f7e21c02278a008e270c62",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "MacroSetupTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "name": "RecalcGuardTests",
      "kind": "class",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L162-L181",
      "signature": "class RecalcGuardTests(WorkbookTestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "3227076ed66b1edcbb077da69e8aec49d8235f50bfc26c6162b22112e7221bc9",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_a_missing_soffice_is_reported_clearly",
      "name": "test_a_missing_soffice_is_reported_clearly",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L163-L170",
      "signature": "def test_a_missing_soffice_is_reported_clearly(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "d4ec8a86cc45258245b447db7ae34654d623339d057a0805fcc836d0c9520b8a",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecalcGuardTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_missing_soffice_message_names_libreoffice",
      "name": "test_the_missing_soffice_message_names_libreoffice",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L172-L173",
      "signature": "def test_the_missing_soffice_message_names_libreoffice(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "24c91d9adddd22e4bcadb443ad8344a9c89c363394a22f4c1e5eea7c50c5ac83",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecalcGuardTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_timeout_helper_answers_without_raising",
      "name": "test_the_timeout_helper_answers_without_raising",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L180-L181",
      "signature": "def test_the_timeout_helper_answers_without_raising(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "8df16f25877e2779835e4b8326d5bdc665c3a9daba1a4562464cc6747897c4a7",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecalcGuardTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_timestamp_helper_reports_a_files_mtime",
      "name": "test_the_timestamp_helper_reports_a_files_mtime",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L175-L178",
      "signature": "def test_the_timestamp_helper_reports_a_files_mtime(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "1a1b806ddcfbbaf377d2ce091b0ed7ed2c852498323b431ba55696eb04a79d99",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "RecalcGuardTests"
    },
    {
      "id": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "name": "WorkbookTestCase",
      "kind": "class",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L90-L105",
      "signature": "class WorkbookTestCase(unittest.TestCase)",
      "exported": true,
      "origin": "ast",
      "body_hash": "cb399111f585401a0c956375a2afbb78ed72ea52aaabacc0112380e8667949a3",
      "summary_state": "pending",
      "summary": null,
      "crux": null
    },
    {
      "id": "tests/xlsx/test_scripts.py#WorkbookTestCase.setUp",
      "name": "setUp",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L91-L94",
      "signature": "def setUp(self) -> None",
      "exported": true,
      "origin": "ast",
      "body_hash": "5377a98c45dcc170ecbbaa2dce2afb71ef70f028c35849ec4d204db58b562334",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkbookTestCase"
    },
    {
      "id": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "name": "workbook",
      "kind": "method",
      "path": "tests/xlsx/test_scripts.py",
      "span": "L96-L105",
      "signature": "def workbook(self, name: str = \"book.xlsx\", **cells) -> Path",
      "exported": true,
      "origin": "ast",
      "body_hash": "7748a8601537e03534f29519f2faad8cee5f1b11aa0b561b3b1b6b464f0eff0e",
      "summary_state": "pending",
      "summary": null,
      "crux": null,
      "owner": "WorkbookTestCase"
    }
  ],
  "edges": [
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#_loc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#_sev_str",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#_should_block",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#format_comment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_pr_skills.py#scan_skill_dirs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "dotenv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "scan_skills",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "skill_scanner.core.analyzers.cross_skill_scanner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "skill_scanner.core.loader",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "skill_scanner.core.models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#_should_block",
      "target": "scan_pr_skills.py#_sev_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#format_comment",
      "target": "scan_pr_skills.py#_loc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#format_comment",
      "target": "scan_pr_skills.py#_sev_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#format_comment",
      "target": "scan_skills.py#severity_badge",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "scan_pr_skills.py#main",
      "target": "scan_pr_skills.py#_should_block",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#main",
      "target": "scan_pr_skills.py#format_comment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#main",
      "target": "scan_pr_skills.py#scan_skill_dirs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#main",
      "target": "scan_skills.py#build_scanner",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "scan_pr_skills.py#scan_skill_dirs",
      "target": "scan_pr_skills.py#_sev_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_pr_skills.py#scan_skill_dirs",
      "target": "scan_skills.py#severity_badge",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#_enum_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#_finding_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#_finding_from_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#_result_from_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#build_scanner",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#cache_invalidation_reason",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#content_hash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#generate_json_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#generate_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#llm_model_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#load_previous_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#parse_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#scan_with_progress",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#scanner_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "scan_skills.py#severity_badge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "concurrent.futures",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "dotenv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "skill_scanner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "skill_scanner.core.analyzers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "skill_scanner.core.analyzers.cross_skill_scanner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "skill_scanner.core.loader",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "skill_scanner.core.models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "skill_scanner.core.scan_policy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "threading",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#_finding_dict",
      "target": "scan_skills.py#_enum_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#_finding_from_dict",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "scan_skills.py#_result_from_dict",
      "target": "scan_skills.py#_finding_from_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#build_scanner",
      "target": "scan_skills.py#llm_model_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#cache_invalidation_reason",
      "target": "scan_skills.py#llm_model_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#cache_invalidation_reason",
      "target": "scan_skills.py#scanner_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#generate_json_report",
      "target": "scan_skills.py#_enum_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#generate_json_report",
      "target": "scan_skills.py#_finding_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#generate_report",
      "target": "scan_skills.py#severity_badge",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#build_scanner",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#cache_invalidation_reason",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#generate_json_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#generate_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#llm_model_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#load_previous_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#parse_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#scan_with_progress",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#main",
      "target": "scan_skills.py#scanner_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#_enum_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#_result_from_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#content_hash",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#llm_model_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#scanner_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#severity_badge",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#scan_with_progress.scan_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress",
      "target": "scan_skills.py#scan_with_progress.worker_scanner",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress.scan_one",
      "target": "scan_skills.py#scan_with_progress.worker_scanner",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scan_skills.py#scan_with_progress.worker_scanner",
      "target": "scan_skills.py#build_scanner",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#all_skill_dirs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#build_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#chat_completion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#collect_skill_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#default_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#distil_diagram_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#encode_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#fair_share",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#find_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#generate_for_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#output_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#post_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#resolve_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#run_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#save_images",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "scripts/generate_skill_image.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "concurrent.futures",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#build_payload",
      "target": "scripts/generate_skill_image.py#encode_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#chat_completion",
      "target": "scripts/generate_skill_image.py#post_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#chat_completion",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#collect_skill_text",
      "target": "scripts/generate_skill_image.py#fair_share",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#distil_diagram_prompt",
      "target": "scripts/generate_skill_image.py#chat_completion",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#encode_reference",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#find_api_key",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#generate_for_skill",
      "target": "scripts/generate_skill_image.py#build_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#generate_for_skill",
      "target": "scripts/generate_skill_image.py#collect_skill_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#generate_for_skill",
      "target": "scripts/generate_skill_image.py#distil_diagram_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#generate_for_skill",
      "target": "scripts/generate_skill_image.py#post_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#generate_for_skill",
      "target": "scripts/generate_skill_image.py#save_images",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#all_skill_dirs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#collect_skill_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#default_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#find_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#generate_for_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#resolve_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#run_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#main",
      "target": "scripts/generate_skill_image.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#post_json",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#resolve_skill",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#run_batch",
      "target": "scripts/generate_skill_image.py#default_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#run_batch",
      "target": "scripts/generate_skill_image.py#run_batch.work",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#run_batch.work",
      "target": "scripts/generate_skill_image.py#generate_for_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#save_images",
      "target": "scripts/generate_skill_image.py#output_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#save_images",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "scripts/generate_skill_image.py#ScriptError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "scripts/generate_skill_image.py#validate",
      "target": "scripts/generate_skill_image.py#ScriptError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#_split_delimited",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#_stringify",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#cdf_to_tail_and_phred",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#chunked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#collect_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#feature_display_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#format_from_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#interval_width",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#load_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#normalize_chromosome",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#parse_interval_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#parse_variant_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#phred_to_top_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#portal_variant_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#read_vcf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#require_alphagenome",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#warn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "skills/alphagenome/scripts/_common.py#write_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "alphagenome",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#collect_variants",
      "target": "skills/alphagenome/scripts/_common.py#parse_variant_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#collect_variants",
      "target": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#parse_interval_string",
      "target": "skills/alphagenome/scripts/_common.py#normalize_chromosome",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#parse_variant_string",
      "target": "skills/alphagenome/scripts/_common.py#normalize_chromosome",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#parse_variant_string",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#_split_delimited",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#normalize_chromosome",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#parse_variant_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#read_variant_table.column",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#read_vcf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_variant_table",
      "target": "skills/alphagenome/scripts/_common.py#read_variant_table.column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_vcf",
      "target": "skills/alphagenome/scripts/_common.py#normalize_chromosome",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#read_vcf",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec.__str__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec.is_snv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#VariantSpec",
      "target": "skills/alphagenome/scripts/_common.py#VariantSpec.to_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/_common.py#write_rows",
      "target": "skills/alphagenome/scripts/_common.py#_stringify",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "skills/alphagenome/scripts/atlas_link.py#parse_modalities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py#build_url",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_filter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py#build_url",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_layout",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py#main",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py#main",
      "target": "skills/alphagenome/scripts/atlas_link.py#build_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_link.py#main",
      "target": "skills/alphagenome/scripts/atlas_link.py#parse_modalities",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#_add_common",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#_add_variant_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#_feature_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#_layer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#_obs_variant_strings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#_query_each",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#cmd_scorers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#cmd_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#cmd_tracks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#make_client",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#max_abs_track",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#scorer_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#summarize_avi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#tidy_atlas_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#to_genome_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#to_genome_variant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "skills/alphagenome/scripts/atlas_query.py#track_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "alphagenome.atlas",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "alphagenome.data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "concurrent.futures",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "grpc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#_query_each",
      "target": "skills/alphagenome/scripts/atlas_query.py#_query_each.one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#_query_each",
      "target": "skills/alphagenome/scripts/atlas_query.py#_query_each.one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#_query_each.one",
      "target": "skills/alphagenome/scripts/atlas_query.py#to_genome_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#build_parser",
      "target": "skills/alphagenome/scripts/atlas_query.py#_add_common",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#build_parser",
      "target": "skills/alphagenome/scripts/atlas_query.py#_add_variant_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#_query_each",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#max_abs_track",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#summarize_avi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#to_genome_interval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#to_genome_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_scorers",
      "target": "skills/alphagenome/scripts/atlas_query.py#make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_scorers",
      "target": "skills/alphagenome/scripts/atlas_query.py#scorer_rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_scores",
      "target": "skills/alphagenome/scripts/atlas_query.py#_query_each",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_scores",
      "target": "skills/alphagenome/scripts/atlas_query.py#make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_scores",
      "target": "skills/alphagenome/scripts/atlas_query.py#tidy_atlas_scores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_scores",
      "target": "skills/alphagenome/scripts/atlas_query.py#to_genome_interval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_tracks",
      "target": "skills/alphagenome/scripts/atlas_query.py#make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#cmd_tracks",
      "target": "skills/alphagenome/scripts/atlas_query.py#track_rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#main",
      "target": "skills/alphagenome/scripts/atlas_query.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#summarize_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#_feature_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#summarize_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#_layer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#summarize_avi",
      "target": "skills/alphagenome/scripts/atlas_query.py#_obs_variant_strings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#tidy_atlas_scores",
      "target": "skills/alphagenome/scripts/atlas_query.py#_layer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/atlas_query.py#tidy_atlas_scores",
      "target": "skills/alphagenome/scripts/atlas_query.py#_obs_variant_strings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#list_scorers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#list_tracks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#make_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#organism_enum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#parse_sequence_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "skills/alphagenome/scripts/score_variants.py#select_scorers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "alphagenome.data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "alphagenome.models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "grpc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#list_tracks",
      "target": "skills/alphagenome/scripts/score_variants.py#organism_enum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#main",
      "target": "skills/alphagenome/scripts/score_variants.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#main",
      "target": "skills/alphagenome/scripts/score_variants.py#list_scorers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#main",
      "target": "skills/alphagenome/scripts/score_variants.py#list_tracks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#main",
      "target": "skills/alphagenome/scripts/score_variants.py#make_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#main",
      "target": "skills/alphagenome/scripts/score_variants.py#score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#score",
      "target": "skills/alphagenome/scripts/score_variants.py#organism_enum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#score",
      "target": "skills/alphagenome/scripts/score_variants.py#parse_sequence_length",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/alphagenome/scripts/score_variants.py#score",
      "target": "skills/alphagenome/scripts/score_variants.py#select_scorers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_catalog.py",
      "target": "skills/analytical-method-validation/scripts/_catalog.py#resolve_attribute",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_catalog.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#_betacf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#_bisect_ppf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#_json_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#betainc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#chi2_cdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#chi2_ppf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#deming",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#emit_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#f_cdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#f_sf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#fmt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#gammainc_lower",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#heteroscedasticity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#lack_of_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#median",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#one_way_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#read_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#require_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#rsd_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#runs_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#sd_confidence_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "skills/analytical-method-validation/scripts/_common.py#z_ppf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#betainc",
      "target": "skills/analytical-method-validation/scripts/_common.py#_betacf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "target": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#chi2_cdf",
      "target": "skills/analytical-method-validation/scripts/_common.py#gammainc_lower",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#chi2_ppf",
      "target": "skills/analytical-method-validation/scripts/_common.py#_bisect_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#chi2_ppf",
      "target": "skills/analytical-method-validation/scripts/_common.py#chi2_cdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#chi2_ppf",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming",
      "target": "skills/analytical-method-validation/scripts/_common.py#deming._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming",
      "target": "skills/analytical-method-validation/scripts/_common.py#deming._fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming._fit",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#deming._fit",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#emit",
      "target": "skills/analytical-method-validation/scripts/_common.py#emit_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#emit",
      "target": "skills/analytical-method-validation/scripts/_common.py#fmt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#emit_table",
      "target": "skills/analytical-method-validation/scripts/_common.py#fmt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#f_cdf",
      "target": "skills/analytical-method-validation/scripts/_common.py#betainc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#f_sf",
      "target": "skills/analytical-method-validation/scripts/_common.py#betainc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "target": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#lack_of_fit",
      "target": "skills/analytical-method-validation/scripts/_common.py#f_sf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#lack_of_fit",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "target": "skills/analytical-method-validation/scripts/_common.py#LinearFit.intercept_ci",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "target": "skills/analytical-method-validation/scripts/_common.py#LinearFit.predict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#LinearFit",
      "target": "skills/analytical-method-validation/scripts/_common.py#LinearFit.slope_ci",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#LinearFit.intercept_ci",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#LinearFit.slope_ci",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#mean",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#median",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#one_way_components",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#one_way_components",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#one_way_components",
      "target": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "target": "skills/analytical-method-validation/scripts/_common.py#median",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "target": "skills/analytical-method-validation/scripts/_common.py#passing_bablok._shifted_median",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "target": "skills/analytical-method-validation/scripts/_common.py#z_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "target": "skills/analytical-method-validation/scripts/_common.py#passing_bablok._shifted_median",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents",
      "target": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents.rsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents",
      "target": "skills/analytical-method-validation/scripts/_common.py#PrecisionComponents.satterthwaite_df",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#read_input",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#require_columns",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#rsd_percent",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#rsd_percent",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#sd_confidence_interval",
      "target": "skills/analytical-method-validation/scripts/_common.py#chi2_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "target": "skills/analytical-method-validation/scripts/_common.py#betainc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "target": "skills/analytical-method-validation/scripts/_common.py#_bisect_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "target": "skills/analytical-method-validation/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "target": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#rsd_percent",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#sd_confidence_interval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_ppf",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main",
      "target": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/_common.py#one_way_components",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/_common.py#sd_confidence_interval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block.as_rsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block",
      "target": "skills/analytical-method-validation/scripts/check_accuracy_precision.py#main.precision_block.as_rsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#calibrator_tolerance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_isr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_total_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_isr",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_isr",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_run",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_run",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_run",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#calibrator_tolerance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_total_error",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_total_error",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_isr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#main",
      "target": "skills/analytical-method-validation/scripts/check_bioanalytical_run.py#check_total_error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "target": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#rsd_percent",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#sample_sd",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_detection_limits.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py",
      "target": "skills/analytical-method-validation/scripts/check_response.py#build_weights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py",
      "target": "skills/analytical-method-validation/scripts/check_response.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#heteroscedasticity",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#lack_of_fit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#runs_test",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/check_response.py#main",
      "target": "skills/analytical-method-validation/scripts/check_response.py#build_weights",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py",
      "target": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#bland_altman",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#deming",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#fit_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#mean",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#parse_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#passing_bablok",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#t_cdf",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#to_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/compare_methods.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#tost_paired",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#plan_m10",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#plan_q2r2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#render_protocol",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "target": "skills/analytical-method-validation/scripts/_catalog.py#resolve_attribute",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#add_common_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "target": "skills/analytical-method-validation/scripts/_common.py#note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#plan_m10",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#plan_q2r2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#main",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#render_protocol",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#render_protocol",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#plan_m10",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/analytical-method-validation/scripts/plan_validation.py#render_protocol",
      "target": "skills/analytical-method-validation/scripts/plan_validation.py#plan_q2r2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_ancestors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_children",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_depth",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_fmt_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_next_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_run_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_stamp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_add_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_cycle",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_init",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_merge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_observe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_propagate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_prune",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_set_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#cmd_validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "skills/arbor/scripts/tree.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_depth",
      "target": "skills/arbor/scripts/tree.py#_ancestors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_load_run",
      "target": "skills/arbor/scripts/tree.py#_load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_load_run",
      "target": "skills/arbor/scripts/tree.py#_run_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_load_tree",
      "target": "skills/arbor/scripts/tree.py#_load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_load_tree",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_run_path",
      "target": "skills/arbor/scripts/tree.py#_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#_tree_path",
      "target": "skills/arbor/scripts/tree.py#_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_depth",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_next_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_add_node",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_cycle",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_cycle",
      "target": "skills/arbor/scripts/tree.py#_run_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_cycle",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_init",
      "target": "skills/arbor/scripts/tree.py#_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_init",
      "target": "skills/arbor/scripts/tree.py#_run_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_init",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_init",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_run_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_stamp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#cmd_merge.better",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_merge",
      "target": "skills/arbor/scripts/tree.py#cmd_merge.better",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_observe",
      "target": "skills/arbor/scripts/tree.py#_ancestors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_observe",
      "target": "skills/arbor/scripts/tree.py#_children",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_observe",
      "target": "skills/arbor/scripts/tree.py#_fmt_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_observe",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_observe",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_propagate",
      "target": "skills/arbor/scripts/tree.py#_ancestors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_propagate",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_propagate",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_propagate",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_propagate",
      "target": "skills/arbor/scripts/tree.py#_stamp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_propagate",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_prune",
      "target": "skills/arbor/scripts/tree.py#_children",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_prune",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_prune",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_prune",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_prune",
      "target": "skills/arbor/scripts/tree.py#_stamp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_prune",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "target": "skills/arbor/scripts/tree.py#_ancestors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "target": "skills/arbor/scripts/tree.py#_stamp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_evidence",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_status",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_status",
      "target": "skills/arbor/scripts/tree.py#_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_status",
      "target": "skills/arbor/scripts/tree.py#_save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_status",
      "target": "skills/arbor/scripts/tree.py#_stamp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_set_status",
      "target": "skills/arbor/scripts/tree.py#_tree_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status",
      "target": "skills/arbor/scripts/tree.py#cmd_status.render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status",
      "target": "skills/arbor/scripts/tree.py#cmd_status.render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status.render",
      "target": "skills/arbor/scripts/tree.py#_children",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status.render",
      "target": "skills/arbor/scripts/tree.py#_fmt_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_status.render",
      "target": "skills/arbor/scripts/tree.py#cmd_status.render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_validate",
      "target": "skills/arbor/scripts/tree.py#_load_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#cmd_validate",
      "target": "skills/arbor/scripts/tree.py#_load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arbor/scripts/tree.py#main",
      "target": "skills/arbor/scripts/tree.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arboreto/scripts/basic_grn_inference.py",
      "target": "skills/arboreto/scripts/basic_grn_inference.py#run_grn_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/arboreto/scripts/basic_grn_inference.py",
      "target": "skills/arboreto/scripts/basic_grn_inference.py#run_grn_inference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/arboreto/scripts/basic_grn_inference.py",
      "target": "arboreto.algo",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arboreto/scripts/basic_grn_inference.py",
      "target": "arboreto.utils",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/arboreto/scripts/basic_grn_inference.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/autoskill.py",
      "target": "skills/autoskill/scripts/autoskill.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/autoskill.py",
      "target": "skills/autoskill/scripts/autoskill.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/autoskill.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/autoskill.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "skills/autoskill/scripts/backends.py#_is_loopback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "skills/autoskill/scripts/backends.py#check_remote_endpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "ipaddress",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#check_remote_endpoint",
      "target": "skills/autoskill/scripts/backends.py#_is_loopback",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#LocalBackend",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#LocalBackend",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#make_backend",
      "target": "skills/autoskill/scripts/backends.py#check_remote_endpoint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#make_backend",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/backends.py#make_backend",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/cluster.py",
      "target": "skills/autoskill/scripts/cluster.py#cluster_sessions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/cluster.py",
      "target": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/cluster.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "skills/autoskill/scripts/doctor.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "skills/autoskill/scripts/doctor.py#_format_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "skills/autoskill/scripts/doctor.py#check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "skills/autoskill/scripts/doctor.py#default_llm_probe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "skills/autoskill/scripts/doctor.py#default_screenpipe_probe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "skills/autoskill/scripts/doctor.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py",
      "target": "yaml",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py#main",
      "target": "skills/autoskill/scripts/doctor.py#_format_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/doctor.py#main",
      "target": "skills/autoskill/scripts/doctor.py#check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/fetch_window.py",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py",
      "target": "skills/autoskill/scripts/match_skills.py#_cosine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py",
      "target": "skills/autoskill/scripts/match_skills.py#_parse_frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py",
      "target": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py",
      "target": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "target": "skills/autoskill/scripts/match_skills.py#_parse_frontmatter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "target": "skills/autoskill/scripts/match_skills.py#_cosine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "skills/autoskill/scripts/promote.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "skills/autoskill/scripts/promote.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "skills/autoskill/scripts/promote.py#PromoteError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py#main",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py#promote",
      "target": "skills/autoskill/scripts/promote.py#PromoteError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/promote.py#PromoteError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/redact.py",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/redact.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#_cluster_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#_default_now",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#_write_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#_write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "skills/autoskill/scripts/run.py#ScreenpipeUnreachable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "backends",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "cluster",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "fetch_window",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "match_skills",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "redact",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "sentence_transformers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "synthesize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py",
      "target": "yaml",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#main",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#main",
      "target": "skills/autoskill/scripts/run.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#main",
      "target": "skills/autoskill/scripts/run.py#main.embedder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/cluster.py#cluster_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/run.py#_cluster_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/run.py#_write_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/run.py#_write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/run.py#ScreenpipeUnreachable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/run.py#run",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/run.py#ScreenpipeUnreachable",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py",
      "target": "skills/autoskill/scripts/synthesize.py#_build_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py",
      "target": "skills/autoskill/scripts/synthesize.py#_extract_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py",
      "target": "skills/autoskill/scripts/synthesize.py#SynthesisError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py#_extract_json",
      "target": "skills/autoskill/scripts/synthesize.py#SynthesisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py#SynthesisError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py#synthesize",
      "target": "skills/autoskill/scripts/synthesize.py#_build_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py#synthesize",
      "target": "skills/autoskill/scripts/synthesize.py#_extract_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/autoskill/scripts/synthesize.py#synthesize",
      "target": "skills/autoskill/scripts/synthesize.py#SynthesisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "skills/bids/scripts/update_schema.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "skills/bids/scripts/update_schema.py#fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "skills/bids/scripts/update_schema.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "skills/bids/scripts/update_schema.py#update_beps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "skills/bids/scripts/update_schema.py#update_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py#main",
      "target": "skills/bids/scripts/update_schema.py#update_beps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py#main",
      "target": "skills/bids/scripts/update_schema.py#update_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py#update_beps",
      "target": "skills/bids/scripts/update_schema.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bids/scripts/update_schema.py#update_schema",
      "target": "skills/bids/scripts/update_schema.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#batch_convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#list_common_databases",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#normalize_database_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#print_mapping_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#read_ids_from_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#save_failed_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "skills/bioservices/scripts/batch_id_converter.py#save_mapping_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "bioservices",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#batch_convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#list_common_databases",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#normalize_database_code",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#print_mapping_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#read_ids_from_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#save_failed_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/batch_id_converter.py#main",
      "target": "skills/bioservices/scripts/batch_id_converter.py#save_mapping_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_chebi_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_chembl_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_chembl_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_kegg_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#save_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#search_kegg_compound",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "bioservices",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_chebi_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_chembl_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_chembl_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#get_kegg_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#save_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/compound_cross_reference.py#main",
      "target": "skills/bioservices/scripts/compound_cross_reference.py#search_kegg_compound",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#analyze_all_pathways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#analyze_pathway",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#get_all_pathways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#print_statistics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#save_detailed_pathway_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#save_interactions_sif",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "skills/bioservices/scripts/pathway_analysis.py#save_pathway_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "bioservices",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#analyze_all_pathways",
      "target": "skills/bioservices/scripts/pathway_analysis.py#analyze_pathway",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#main",
      "target": "skills/bioservices/scripts/pathway_analysis.py#analyze_all_pathways",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#main",
      "target": "skills/bioservices/scripts/pathway_analysis.py#get_all_pathways",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#main",
      "target": "skills/bioservices/scripts/pathway_analysis.py#print_statistics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#main",
      "target": "skills/bioservices/scripts/pathway_analysis.py#save_detailed_pathway_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#main",
      "target": "skills/bioservices/scripts/pathway_analysis.py#save_interactions_sif",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/pathway_analysis.py#main",
      "target": "skills/bioservices/scripts/pathway_analysis.py#save_pathway_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#discover_pathways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#find_interactions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#get_go_annotations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#resolve_ncbi_email",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#retrieve_sequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#run_blast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#search_protein",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "bioservices",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#discover_pathways",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#find_interactions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#get_go_annotations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#resolve_ncbi_email",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#retrieve_sequence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#run_blast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bioservices/scripts/protein_analysis_workflow.py#main",
      "target": "skills/bioservices/scripts/protein_analysis_workflow.py#search_protein",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#_clean_sample_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_featurecounts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_salmon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_star",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#write_outputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "pytximport",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_featurecounts",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#_clean_sample_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_salmon",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#_clean_sample_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_star",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#_clean_sample_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_featurecounts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_salmon",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#build_from_star",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#main",
      "target": "skills/bulk-rnaseq/scripts/build_counts_matrix.py#write_outputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#_is_remote",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_samplesheet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#main",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_samplesheet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.warn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_metadata",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_metadata",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.warn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_samplesheet",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#_is_remote",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_samplesheet",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#validate_samplesheet",
      "target": "skills/bulk-rnaseq/scripts/validate_samplesheet.py#Report.warn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#_ascii_fold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#_is_outer_braced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#_looks_like_initials",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#_split_top_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#_unwrap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#citation_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#format_pages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#parse_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#parse_bibtex_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#protect_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#render_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "skills/citation-management/scripts/_common.py#sanitize_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py",
      "target": "unicodedata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#_unwrap",
      "target": "skills/citation-management/scripts/_common.py#_is_outer_braced",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#citation_key",
      "target": "skills/citation-management/scripts/_common.py#_ascii_fold",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#citation_key",
      "target": "skills/citation-management/scripts/_common.py#_looks_like_initials",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#citation_key",
      "target": "skills/citation-management/scripts/_common.py#sanitize_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#parse_bibtex",
      "target": "skills/citation-management/scripts/_common.py#_split_top_level",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#parse_bibtex",
      "target": "skills/citation-management/scripts/_common.py#_unwrap",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#parse_bibtex_file",
      "target": "skills/citation-management/scripts/_common.py#parse_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/_common.py#sanitize_key",
      "target": "skills/citation-management/scripts/_common.py#_ascii_fold",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.convert_multiple",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.doi_to_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.convert_multiple",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.doi_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#main",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#main",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.convert_multiple",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/doi_to_bibtex.py#main",
      "target": "skills/citation-management/scripts/doi_to_bibtex.py#DOIConverter.doi_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "skills/citation-management/scripts/extract_metadata.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "skills/citation-management/scripts/extract_metadata.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#main",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#main",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._crossref_type_to_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._extract_year_crossref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._extract_year_pubmed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._format_authors_crossref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._format_authors_pubmed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._generate_citation_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._journal_from_arxiv_ref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._parse_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._protect_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._pubmed_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_arxiv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmcid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.identify_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._generate_citation_key",
      "target": "skills/citation-management/scripts/_common.py#citation_key",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._protect_title",
      "target": "skills/citation-management/scripts/_common.py#protect_title",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_arxiv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmcid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.identify_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_arxiv",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._journal_from_arxiv_ref",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._crossref_type_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._extract_year_crossref",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._format_authors_crossref",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmcid",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmcid",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._extract_year_pubmed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._format_authors_pubmed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_pmid",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._pubmed_title",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_url",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_from_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_record",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._generate_citation_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_record",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.identify_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.extract_record",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.identify_type",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._parse_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#format_pages",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#protect_title",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/extract_metadata.py#MetadataExtractor._generate_citation_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "skills/citation-management/scripts/format_bibtex.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "skills/citation-management/scripts/format_bibtex.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.deduplicate_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.fix_common_issues",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.parse_bibtex_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.rekey_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.sort_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.fix_common_issues",
      "target": "skills/citation-management/scripts/_common.py#format_pages",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.deduplicate_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.fix_common_issues",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_entry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.parse_bibtex_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.rekey_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.sort_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.parse_bibtex_file",
      "target": "skills/citation-management/scripts/_common.py#parse_bibtex_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.rekey_entries",
      "target": "skills/citation-management/scripts/_common.py#citation_key",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.sort_entries",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.sort_entries.get_sort_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#main",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/format_bibtex.py#main",
      "target": "skills/citation-management/scripts/format_bibtex.py#BibTeXFormatter.format_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "skills/citation-management/scripts/search_google_scholar.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "skills/citation-management/scripts/search_google_scholar.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "scholarly",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.metadata_to_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#citation_key",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#protect_title",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#main",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#main",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.metadata_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_google_scholar.py#main",
      "target": "skills/citation-management/scripts/search_google_scholar.py#GoogleScholarSearcher.search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "skills/citation-management/scripts/search_openalex.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "skills/citation-management/scripts/search_openalex.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#main",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#main",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.metadata_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#main",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._abstract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._normalise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.metadata_to_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._normalise",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._abstract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#citation_key",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#format_pages",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#protect_title",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher.search",
      "target": "skills/citation-management/scripts/search_openalex.py#OpenAlexSearcher._normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "skills/citation-management/scripts/search_pubmed.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "skills/citation-management/scripts/search_pubmed.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#main",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#main",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.fetch_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#main",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.metadata_to_bibtex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#main",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._element_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._extract_metadata_from_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.fetch_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.metadata_to_bibtex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._extract_metadata_from_xml",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._element_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.fetch_metadata",
      "target": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher._extract_metadata_from_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#citation_key",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#format_pages",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/search_pubmed.py#PubMedSearcher.metadata_to_bibtex",
      "target": "skills/citation-management/scripts/_common.py#protect_title",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "skills/citation-management/scripts/validate_citations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "skills/citation-management/scripts/validate_citations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator._extract_year_crossref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator._format_authors_crossref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.detect_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.parse_bibtex_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.parse_manuscript_citations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.verify_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.detect_duplicates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.parse_bibtex_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.parse_manuscript_citations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_entry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.verify_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.verify_doi",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator._extract_year_crossref",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#CitationValidator.verify_doi",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator._format_authors_crossref",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#main",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/citation-management/scripts/validate_citations.py#main",
      "target": "skills/citation-management/scripts/validate_citations.py#CitationValidator.validate_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#_reject_nonlocal_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#ensure_no_person_level_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#local_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#local_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#print_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "skills/clinical-decision-support/scripts/_common.py#write_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#_reject_nonlocal_path",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#ensure_no_person_level_keys",
      "target": "skills/clinical-decision-support/scripts/_common.py#ensure_no_person_level_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#ensure_no_person_level_keys",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#finite_number",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog.ok",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#load_json_object",
      "target": "skills/clinical-decision-support/scripts/_common.py#ensure_no_person_level_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#load_json_object",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#load_json_object",
      "target": "skills/clinical-decision-support/scripts/_common.py#local_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#local_input_path",
      "target": "skills/clinical-decision-support/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#local_input_path",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#local_output_path",
      "target": "skills/clinical-decision-support/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#local_output_path",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#nonnegative_int",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#require_list",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "target": "skills/clinical-decision-support/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#write_json",
      "target": "skills/clinical-decision-support/scripts/_common.py#local_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/_common.py#write_text",
      "target": "skills/clinical-decision-support/scripts/_common.py#local_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_build_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_format_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_to_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_to_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_build_table",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_build_table",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_build_table",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_format_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#write_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_build_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_to_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/cohort_table_generator.py#main",
      "target": "skills/clinical-decision-support/scripts/cohort_table_generator.py#_to_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_csv_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_safe_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_csv_text",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_safe_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle.visit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle.visit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle.visit",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle.visit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#write_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#main",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_csv_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#main",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "target": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#validate_matrix",
      "target": "skills/clinical-decision-support/scripts/decision_logic_traceability.py#_has_cycle",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#_find_placeholders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#_find_placeholders",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#_find_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "target": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#_find_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/deidentification_checklist.py#main",
      "target": "skills/clinical-decision-support/scripts/deidentification_checklist.py#check_documentation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_find_placeholders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_profile_has_recommendation_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_find_placeholders",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_find_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_profile_has_recommendation_key",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_profile_has_recommendation_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "target": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_find_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#_profile_has_recommendation_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/evidence_profile_check.py#main",
      "target": "skills/clinical-decision-support/scripts/evidence_profile_check.py#check_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_calibration_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_metric",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_small_nonzero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_wilson",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_calibration_summary",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_small_nonzero",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_metric",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_wilson",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_calibration_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_metric",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#_small_nonzero",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#main",
      "target": "skills/clinical-decision-support/scripts/model_biomarker_evaluation.py#evaluate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "skills/clinical-decision-support/scripts/survival_plan_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "skills/clinical-decision-support/scripts/survival_plan_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py#main",
      "target": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/survival_plan_validator.py#validate_plan",
      "target": "skills/clinical-decision-support/scripts/_common.py#validate_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_placeholders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_unsafe_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_placeholders",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_unsafe_keys",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_unsafe_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#main",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#main",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "target": "skills/clinical-decision-support/scripts/_common.py#IssueLog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "target": "skills/clinical-decision-support/scripts/_common.py#require_nonempty_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "target": "skills/clinical-decision-support/scripts/_common.py#source_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#validate_artifact",
      "target": "skills/clinical-decision-support/scripts/validate_cds_artifact.py#_find_unsafe_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#_check_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#_object_without_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#_reject_nonlocal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#error_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#local_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#local_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#parse_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#parse_iso_datetime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#require_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#require_exact_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#require_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#require_nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#require_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "skills/clinical-reports/scripts/_common.py#write_json_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#_check_tree",
      "target": "skills/clinical-reports/scripts/_common.py#_check_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#_check_tree",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#_object_without_duplicates",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#_reject_nonlocal",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#load_json_object",
      "target": "skills/clinical-reports/scripts/_common.py#_check_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#load_json_object",
      "target": "skills/clinical-reports/scripts/_common.py#local_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#load_json_object",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#local_input_path",
      "target": "skills/clinical-reports/scripts/_common.py#_reject_nonlocal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#local_input_path",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#local_output_path",
      "target": "skills/clinical-reports/scripts/_common.py#_reject_nonlocal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#local_output_path",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#parse_iso_date",
      "target": "skills/clinical-reports/scripts/_common.py#require_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#parse_iso_date",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#parse_iso_datetime",
      "target": "skills/clinical-reports/scripts/_common.py#require_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#parse_iso_datetime",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#require_bool",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#require_exact_keys",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#require_identifier",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#require_nonnegative_int",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#require_string",
      "target": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/_common.py#write_json_report",
      "target": "skills/clinical-reports/scripts/_common.py#local_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#_required_true",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#validate_process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py#main",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py#main",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#validate_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py#validate_process",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/check_deidentification.py#validate_process",
      "target": "skills/clinical-reports/scripts/check_deidentification.py#_required_true",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#_finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#_track_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#main",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#main",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "target": "skills/clinical-reports/scripts/_common.py#require_nonnegative_int",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#_finite_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#_track_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#AggregateRow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#render_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#validate_aggregate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#AggregateRow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_metadata",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#validate_aggregate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#main",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#render_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/format_adverse_events.py#validate_aggregate_metadata",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#generate_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#list_templates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#template_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py#generate_template",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#template_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py#main",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py#main",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#generate_template",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/generate_report_template.py#main",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#list_templates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "skills/clinical-reports/scripts/provenance_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "skills/clinical-reports/scripts/provenance_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "skills/clinical-reports/scripts/provenance_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "skills/clinical-reports/scripts/provenance_validator.py#validate_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py#main",
      "target": "skills/clinical-reports/scripts/provenance_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py#main",
      "target": "skills/clinical-reports/scripts/provenance_validator.py#validate_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/provenance_validator.py#validate_provenance",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#_load_dictionary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#_validate_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#validate_terminology_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py#main",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#_load_dictionary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py#main",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py#main",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#validate_terminology_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py#validate_terminology_manifest",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/terminology_validator.py#validate_terminology_manifest",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#_validate_entry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#_fact_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py#main",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py#main",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#_fact_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#_validate_guidance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#_validate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#_validated_fact_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py#main",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py#main",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "target": "skills/clinical-reports/scripts/_common.py#require_data_class",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#_validate_guidance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#_validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#_validated_fact_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "skills/deepchem/scripts/graph_neural_network.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "skills/deepchem/scripts/graph_neural_network.py#create_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "skills/deepchem/scripts/graph_neural_network.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "skills/deepchem/scripts/graph_neural_network.py#molnet_loader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "skills/deepchem/scripts/graph_neural_network.py#train_on_custom_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "skills/deepchem/scripts/graph_neural_network.py#train_on_molnet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py#main",
      "target": "skills/deepchem/scripts/graph_neural_network.py#train_on_custom_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py#main",
      "target": "skills/deepchem/scripts/graph_neural_network.py#train_on_molnet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py#train_on_custom_data",
      "target": "skills/deepchem/scripts/graph_neural_network.py#create_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py#train_on_molnet",
      "target": "skills/deepchem/scripts/graph_neural_network.py#create_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/graph_neural_network.py#train_on_molnet",
      "target": "skills/deepchem/scripts/graph_neural_network.py#molnet_loader",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py",
      "target": "skills/deepchem/scripts/predict_solubility.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py",
      "target": "skills/deepchem/scripts/predict_solubility.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py",
      "target": "skills/deepchem/scripts/predict_solubility.py#predict_new_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py",
      "target": "skills/deepchem/scripts/predict_solubility.py#train_solubility_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py#main",
      "target": "skills/deepchem/scripts/predict_solubility.py#predict_new_molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/predict_solubility.py#main",
      "target": "skills/deepchem/scripts/predict_solubility.py#train_solubility_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#load_custom_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#load_molnet_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#train_chemberta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#train_grover",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "skills/deepchem/scripts/transfer_learning.py#train_molformer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py#main",
      "target": "skills/deepchem/scripts/transfer_learning.py#load_custom_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py#main",
      "target": "skills/deepchem/scripts/transfer_learning.py#load_molnet_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py#main",
      "target": "skills/deepchem/scripts/transfer_learning.py#train_chemberta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py#main",
      "target": "skills/deepchem/scripts/transfer_learning.py#train_grover",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deepchem/scripts/transfer_learning.py#main",
      "target": "skills/deepchem/scripts/transfer_learning.py#train_molformer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#check_bam_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#check_bed_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#check_bigwig_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#check_file_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "skills/deeptools/scripts/validate_files.py#validate_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py#main",
      "target": "skills/deeptools/scripts/validate_files.py#validate_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py#validate_files",
      "target": "skills/deeptools/scripts/validate_files.py#check_bam_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py#validate_files",
      "target": "skills/deeptools/scripts/validate_files.py#check_bed_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py#validate_files",
      "target": "skills/deeptools/scripts/validate_files.py#check_bigwig_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/validate_files.py#validate_files",
      "target": "skills/deeptools/scripts/validate_files.py#check_file_exists",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_atacseq_workflow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_analysis_workflow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_qc_workflow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_rnaseq_coverage_workflow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#runnable_script_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_path_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "shlex",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#generate_atacseq_workflow",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_analysis_workflow",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_qc_workflow",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_qc_workflow",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#generate_rnaseq_coverage_workflow",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_atacseq_workflow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_analysis_workflow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_chipseq_qc_workflow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#generate_rnaseq_coverage_workflow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#runnable_script_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_path_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_positive_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#main",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#runnable_script_path",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#sanitize_path_list",
      "target": "skills/deeptools/scripts/workflow_generator.py#sanitize_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/deeptools/scripts/workflow_generator.py#shell_array",
      "target": "skills/deeptools/scripts/workflow_generator.py#shell_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#classify_confidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#export_to_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#extract_confidence_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#get_top_predictions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#parse_confidence_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#parse_single_complex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#print_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "skills/diffdock/scripts/analyze_results.py#print_top_predictions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#export_to_csv",
      "target": "skills/diffdock/scripts/analyze_results.py#classify_confidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#main",
      "target": "skills/diffdock/scripts/analyze_results.py#export_to_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#main",
      "target": "skills/diffdock/scripts/analyze_results.py#parse_confidence_scores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#main",
      "target": "skills/diffdock/scripts/analyze_results.py#print_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#main",
      "target": "skills/diffdock/scripts/analyze_results.py#print_top_predictions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#parse_confidence_scores",
      "target": "skills/diffdock/scripts/analyze_results.py#parse_single_complex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#parse_single_complex",
      "target": "skills/diffdock/scripts/analyze_results.py#extract_confidence_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#print_summary",
      "target": "skills/diffdock/scripts/analyze_results.py#classify_confidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#print_top_predictions",
      "target": "skills/diffdock/scripts/analyze_results.py#classify_confidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/analyze_results.py#print_top_predictions",
      "target": "skills/diffdock/scripts/analyze_results.py#get_top_predictions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#create_template_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#validate_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#validate_file_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#validate_smiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py#main",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#create_template_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py#main",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#validate_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py#validate_csv",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#validate_file_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/prepare_batch_csv.py#validate_csv",
      "target": "skills/diffdock/scripts/prepare_batch_csv.py#validate_smiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_core_dependencies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_diffdock_installation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_esm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_python_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_pytorch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#check_pytorch_geometric",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#print_installation_instructions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "skills/diffdock/scripts/setup_check.py#print_performance_notes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "esm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py",
      "target": "torch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#check_core_dependencies",
      "target": "skills/diffdock/scripts/setup_check.py#check_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#check_pytorch_geometric",
      "target": "skills/diffdock/scripts/setup_check.py#check_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#check_core_dependencies",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#check_diffdock_installation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#check_esm",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#check_python_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#check_pytorch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#check_pytorch_geometric",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#print_installation_instructions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/diffdock/scripts/setup_check.py#main",
      "target": "skills/diffdock/scripts/setup_check.py#print_performance_notes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_methods",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_symbol",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_methods",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_symbols",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#numeric_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#print_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#safe_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "inspect",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_report",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_methods",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_report",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_symbol",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_report",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#numeric_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_methods",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#safe_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#inspect_symbol",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#safe_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#build_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_methods",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_symbols",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#main",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#print_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#print_text",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_methods",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/inspect_dxpy.py#print_text",
      "target": "skills/dnanexus-integration/scripts/inspect_dxpy.py#missing_required_symbols",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#load_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#print_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#load_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#print_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#main",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#print_text",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.determine_kind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.looks_embedded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_access",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_exec_depends",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_execution_policy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_https_app",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_instance_selector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_parameter_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_regional_options",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_specs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_system_requirements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_timeout_policy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.add",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.looks_embedded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.determine_kind",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.scan_for_embedded_secrets",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_access",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_https_app",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_regional_options",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_specs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_access",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_access",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_exec_depends",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_exec_depends",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_execution_policy",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_execution_policy",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_https_app",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_instance_selector",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_instance_selector",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_metadata",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_metadata",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_parameter_list",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_regional_options",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_regional_options",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_system_requirements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_regional_options",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_exec_depends",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_execution_policy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_timeout_policy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_run_spec",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_specs",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_specs",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_parameter_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_specs",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_system_requirements",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_system_requirements",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_instance_selector",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.validate_timeout_policy",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.warning",
      "target": "skills/dnanexus-integration/scripts/validate_dxapp.py#Validator.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "skills/docx/scripts/accept_changes.py#accept_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "skills/docx/scripts/accept_changes.py#_setup_libreoffice_macro",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "skills/docx/scripts/accept_changes.py#accept_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "logging",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "office.soffice",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/accept_changes.py#accept_changes",
      "target": "skills/docx/scripts/accept_changes.py#_setup_libreoffice_macro",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_append_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_encode_smart_quotes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_ensure_comment_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_ensure_comment_relationships",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_find_para_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_generate_hex_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_get_next_rid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_has_content_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_has_relationship",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#_next_comment_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#add_comment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "skills/docx/scripts/comment.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "office.helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "xml.parsers.expat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "xml.sax.saxutils",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#_append_xml",
      "target": "skills/docx/scripts/comment.py#_encode_smart_quotes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#_ensure_comment_relationships",
      "target": "skills/docx/scripts/comment.py#_get_next_rid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#add_comment",
      "target": "skills/docx/scripts/comment.py#_append_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#add_comment",
      "target": "skills/docx/scripts/comment.py#_ensure_comment_content_types",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#add_comment",
      "target": "skills/docx/scripts/comment.py#_ensure_comment_relationships",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#add_comment",
      "target": "skills/docx/scripts/comment.py#_find_para_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#add_comment",
      "target": "skills/docx/scripts/comment.py#_generate_hex_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#add_comment",
      "target": "skills/docx/scripts/comment.py#_next_comment_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/comment.py#main",
      "target": "skills/docx/scripts/comment.py#add_comment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_can_merge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_consolidate_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_element_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_find_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_find_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_first_child_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_get_child",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_get_children",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_has_preserve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_is_adjacent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_is_element",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_is_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_merge_or_die",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_merge_run_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_next_element_sibling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_next_sibling_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_remove_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_run_tag_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#_strip_rsid_attrs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "skills/docx/scripts/merge_runs.py#merge_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "office.helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_can_merge",
      "target": "skills/docx/scripts/merge_runs.py#_get_child",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_consolidate_text",
      "target": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "target": "skills/docx/scripts/merge_runs.py#_get_children",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "target": "skills/docx/scripts/merge_runs.py#_has_preserve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "target": "skills/docx/scripts/merge_runs.py#_is_adjacent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_consolidate_text_elements",
      "target": "skills/docx/scripts/merge_runs.py#_rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_find_elements",
      "target": "skills/docx/scripts/merge_runs.py#_find_elements.traverse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_find_elements",
      "target": "skills/docx/scripts/merge_runs.py#_find_elements.traverse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_find_elements.traverse",
      "target": "skills/docx/scripts/merge_runs.py#_find_elements.traverse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_find_elements.traverse",
      "target": "skills/docx/scripts/merge_runs.py#_is_element",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_find_runs",
      "target": "skills/docx/scripts/merge_runs.py#_find_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_find_runs",
      "target": "skills/docx/scripts/merge_runs.py#_is_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_first_child_run",
      "target": "skills/docx/scripts/merge_runs.py#_is_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_get_child",
      "target": "skills/docx/scripts/merge_runs.py#_get_children",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_get_children",
      "target": "skills/docx/scripts/merge_runs.py#_is_element",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_or_die",
      "target": "skills/docx/scripts/merge_runs.py#merge_runs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_can_merge",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_consolidate_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_first_child_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_is_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_merge_run_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_next_element_sibling",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "target": "skills/docx/scripts/merge_runs.py#_next_sibling_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_next_sibling_run",
      "target": "skills/docx/scripts/merge_runs.py#_is_run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_remove_elements",
      "target": "skills/docx/scripts/merge_runs.py#_find_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_rendered_text",
      "target": "skills/docx/scripts/merge_runs.py#_element_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#_rendered_text",
      "target": "skills/docx/scripts/merge_runs.py#_has_preserve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#main",
      "target": "skills/docx/scripts/merge_runs.py#_merge_or_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#merge_runs",
      "target": "skills/docx/scripts/merge_runs.py#_find_runs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#merge_runs",
      "target": "skills/docx/scripts/merge_runs.py#_merge_runs_in",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#merge_runs",
      "target": "skills/docx/scripts/merge_runs.py#_remove_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#merge_runs",
      "target": "skills/docx/scripts/merge_runs.py#_run_tag_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/merge_runs.py#merge_runs",
      "target": "skills/docx/scripts/merge_runs.py#_strip_rsid_attrs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "skills/docx/scripts/office/helpers/__init__.py#opc_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "skills/docx/scripts/office/helpers/__init__.py#part_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "skills/docx/scripts/office/helpers/__init__.py#rels_source_part",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "skills/docx/scripts/office/helpers/__init__.py#rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "skills/docx/scripts/office/helpers/__init__.py#rezip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "skills/docx/scripts/office/helpers/__init__.py#safe_extract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/__init__.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#find_chart_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "target": "skills/docx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "target": "skills/docx/scripts/office/helpers/pptx_slide.py#fatal_slide_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "target": "skills/docx/scripts/office/helpers/pptx_slide.py#is_schema_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_slide.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_masters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_sort_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#_shares",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_masters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#_shares",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/docx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "skills/docx/scripts/office/soffice.py#run_soffice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "skills/docx/scripts/office/soffice.py#_ensure_shim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "skills/docx/scripts/office/soffice.py#_needs_shim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "skills/docx/scripts/office/soffice.py#get_soffice_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "skills/docx/scripts/office/soffice.py#run_soffice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "atexit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "socket",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py#get_soffice_env",
      "target": "skills/docx/scripts/office/soffice.py#_ensure_shim",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py#get_soffice_env",
      "target": "skills/docx/scripts/office/soffice.py#_needs_shim",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/soffice.py#run_soffice",
      "target": "skills/docx/scripts/office/soffice.py#get_soffice_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "skills/docx/scripts/office/validate.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "skills/docx/scripts/office/validate.py#_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "skills/docx/scripts/office/validate.py#_has_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "skills/docx/scripts/office/validate.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "defusedxml.common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "validators",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py#main",
      "target": "skills/docx/scripts/office/validate.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validate.py#main",
      "target": "skills/docx/scripts/office/validate.py#_has_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/__init__.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/__init__.py",
      "target": ".docx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/__init__.py",
      "target": ".pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/__init__.py",
      "target": ".redlining",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "skills/docx/scripts/office/validators/base.py#_load_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "functools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_unique_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#_load_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "target": "skills/docx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "BaseSchemaValidator",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "target": "skills/docx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_chart",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_slide",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_theme",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._get_schema_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._preprocess_for_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "BaseSchemaValidator",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "target": "skills/docx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "defusedxml.common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/docx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#choose_engine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#create_treeview_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#load_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#mode_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#parser_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#render_smartview",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#render_treeview",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#run_interactive_smartview",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#support_color",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#support_fraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#validate_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#validate_bind_address",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "ete4",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "ete4.parser.newick",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "ete4.smartview",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "ete4.treeview",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "ipaddress",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#choose_engine",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout.draw_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout.draw_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout.draw_node",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#support_color",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#create_treeview_style",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#support_color",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#create_treeview_style",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#load_tree",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#choose_engine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#create_smartview_layout",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#render_smartview",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#render_treeview",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#run_interactive_smartview",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#main",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#validate_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#render_smartview",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#render_treeview",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#create_treeview_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#render_treeview",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#run_interactive_smartview",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#run_interactive_smartview",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#validate_bind_address",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#support_color",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#support_fraction",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#validate_args",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/quick_visualize.py#validate_bind_address",
      "target": "skills/etetoolkit/scripts/quick_visualize.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#comma_separated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_ascii",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_compare",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_leaves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_prune",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_reroot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#command_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#numeric_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#parser_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#print_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#read_keep_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#resolve_unique_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#save_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#tree_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "skills/etetoolkit/scripts/tree_operations.py#validate_requested_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "ete4",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "ete4.parser.newick",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_ascii",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_compare",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_compare",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_convert",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_convert",
      "target": "skills/etetoolkit/scripts/tree_operations.py#save_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_leaves",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_prune",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_prune",
      "target": "skills/etetoolkit/scripts/tree_operations.py#read_keep_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_prune",
      "target": "skills/etetoolkit/scripts/tree_operations.py#save_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_prune",
      "target": "skills/etetoolkit/scripts/tree_operations.py#validate_requested_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_reroot",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_reroot",
      "target": "skills/etetoolkit/scripts/tree_operations.py#resolve_unique_node",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_reroot",
      "target": "skills/etetoolkit/scripts/tree_operations.py#save_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_reroot",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_stats",
      "target": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_stats",
      "target": "skills/etetoolkit/scripts/tree_operations.py#print_stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#command_stats",
      "target": "skills/etetoolkit/scripts/tree_operations.py#tree_stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#load_tree",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#main",
      "target": "skills/etetoolkit/scripts/tree_operations.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#read_keep_names",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#resolve_unique_node",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#save_tree",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#tree_stats",
      "target": "skills/etetoolkit/scripts/tree_operations.py#numeric_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/etetoolkit/scripts/tree_operations.py#validate_requested_names",
      "target": "skills/etetoolkit/scripts/tree_operations.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#_build_contents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#_to_typed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#ExtractedDocument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "skills/exa-search/scripts/exa_extract.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "exa_py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py#_to_typed",
      "target": "skills/exa-search/scripts/exa_extract.py#ExtractedDocument",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py#ExtractedDocument",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py#main",
      "target": "skills/exa-search/scripts/exa_extract.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py#main",
      "target": "skills/exa-search/scripts/exa_extract.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py#run",
      "target": "skills/exa-search/scripts/exa_extract.py#_build_contents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_extract.py#run",
      "target": "skills/exa-search/scripts/exa_extract.py#_to_typed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#_build_contents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#_result_to_typed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#_split_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "skills/exa-search/scripts/exa_search.py#SearchResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "exa_py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#_result_to_typed",
      "target": "skills/exa-search/scripts/exa_search.py#SearchResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#main",
      "target": "skills/exa-search/scripts/exa_search.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#main",
      "target": "skills/exa-search/scripts/exa_search.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#run",
      "target": "skills/exa-search/scripts/exa_search.py#_build_contents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#run",
      "target": "skills/exa-search/scripts/exa_search.py#_result_to_typed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#run",
      "target": "skills/exa-search/scripts/exa_search.py#_split_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exa-search/scripts/exa_search.py#SearchResult",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#central_composite",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#fractional_factorial",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#latin_hypercube",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#plackett_burman",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#two_level_factorial",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#box_behnken",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#central_composite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#fractional_factorial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#full_factorial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#latin_hypercube",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#plackett_burman",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "skills/experimental-design/scripts/doe_designs.py#two_level_factorial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py",
      "target": "pyDOE3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#box_behnken",
      "target": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#box_behnken",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#central_composite",
      "target": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#central_composite",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#fractional_factorial",
      "target": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#fractional_factorial",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#full_factorial",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#latin_hypercube",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#plackett_burman",
      "target": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#plackett_burman",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#two_level_factorial",
      "target": "skills/experimental-design/scripts/doe_designs.py#_decode_two_level",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/doe_designs.py#two_level_factorial",
      "target": "skills/experimental-design/scripts/doe_designs.py#_randomize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#arm_balance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#block_randomization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#cluster_randomization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#simple_randomization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#stratified_block_randomization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#_normalize_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#arm_balance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#assign_factorial_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#block_randomization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#cluster_randomization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#simple_randomization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py",
      "target": "skills/experimental-design/scripts/randomization.py#stratified_block_randomization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py#block_randomization",
      "target": "skills/experimental-design/scripts/randomization.py#_normalize_ratio",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py#cluster_randomization",
      "target": "skills/experimental-design/scripts/randomization.py#block_randomization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py#simple_randomization",
      "target": "skills/experimental-design/scripts/randomization.py#_normalize_ratio",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/experimental-design/scripts/randomization.py#stratified_block_randomization",
      "target": "skills/experimental-design/scripts/randomization.py#block_randomization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#_first_nonempty_text_byte",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#automated_capability_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#preflight_npz",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#suffix_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#validate_magic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#suffix_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_capabilities.py#validate_magic",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#_first_nonempty_text_byte",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_absolute_lexical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_json_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_url_and_traversal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_strict_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_suffix_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_unique_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_within_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#emit_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#load_strict_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#markdown_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#sanitize_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_reject_json_constant",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_reject_url_and_traversal",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_strict_json_bytes",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_unique_json_object",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#_within_root",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#atomic_write_bytes",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#atomic_write_bytes",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#bounded_integer",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_url_and_traversal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_suffix_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_input_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_url_and_traversal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_suffix_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_output_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_reject_url_and_traversal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#checked_root",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#sanitize_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#emit_json",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#_strict_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#emit_json",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#emit_markdown",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#emit_markdown",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#load_strict_json",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#markdown_scalar",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#sanitize_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#sha256_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_common.py#validate_keys",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_array_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_dtype_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_sample_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_shape_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_hdf5",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_numpy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "_tabular",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#_array_report",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_dtype_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#_array_report",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_sample_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#_dtype_report",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_hdf5",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_hdf5",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_dtype_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_hdf5",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_shape_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_json",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_json_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_numpy",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#preflight_npz",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_numpy",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_numpy",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#_array_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_distribution_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_moment_skew",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_parse_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_quantile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#delimiter_for_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#normalize_missing_tokens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_json_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#resolve_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ScanSummary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "heapq",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#_distribution_report",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_moment_skew",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#_distribution_report",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_quantile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_distribution_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#normalize_missing_tokens",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_header",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_header",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions.on_header",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#resolve_column",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.partition_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#normalize_missing_tokens",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.partition_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.update_partition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_header",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#resolve_column",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_row",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_row",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_parse_time",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_row",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.update_partition",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.on_row",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#is_missing",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage.update_partition",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#is_missing",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.__post_init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.as_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.__post_init__",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.add",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.add",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#is_missing",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.add",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.as_report",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#_quantile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator.as_report",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#PrioritySample.values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_json_structure",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#normalize_missing_tokens",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table.on_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table.on_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table.on_header",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ColumnAccumulator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#delimiter_for_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/_tabular.py#scan_table",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#ScanSummary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#capability_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#capability_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#capability_matrix",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#automated_capability_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#validate_magic",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#display_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "_tabular",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_distributions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/distribution_sensitivity.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_infer_output_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#markdown_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "_structured",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "_tabular",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "capability_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "image_inspector",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "sequence_inspector",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#emit_markdown",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_infer_output_format",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#markdown_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_hdf5",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_json",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "target": "skills/exploratory-data-analysis/scripts/_structured.py#inspect_numpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#inspect_image_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#inspect_sequence_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_report",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_report",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#build_report",
      "target": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#analyze_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/eda_analyzer.py#markdown_report",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#markdown_scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_bounded_element_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_pillow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_tiff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#inspect_image_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "tifffile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_pillow",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_bounded_element_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_tiff",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_bounded_element_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#validate_magic",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#inspect_image_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#inspect_image_file",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_pillow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/image_inspector.py#inspect_image_file",
      "target": "skills/exploratory-data-analysis/scripts/image_inspector.py#_inspect_tiff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "_tabular",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#audit_missingness_and_leakage",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/missingness_leakage_audit.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#render_scaffold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "capability_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#emit_markdown",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/capability_manifest.py#inspect_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/report_scaffold.py#render_scaffold",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/report_scaffold.py#render_scaffold",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#markdown_scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#inspect_sequence_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "Bio.SeqIO.FastaIO",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "Bio.SeqIO.QualityIO",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#validate_magic",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#inspect_sequence_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#inspect_sequence_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/sequence_inspector.py#inspect_sequence_file",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#stable_token",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "skills/exploratory-data-analysis/scripts/tabular_profile.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "skills/exploratory-data-analysis/scripts/tabular_profile.py#_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "skills/exploratory-data-analysis/scripts/tabular_profile.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "skills/exploratory-data-analysis/scripts/tabular_profile.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "_tabular",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_capabilities.py#capability_for_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_common.py#bounded_file_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/_tabular.py#profile_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/exploratory-data-analysis/scripts/tabular_profile.py#_main",
      "target": "skills/exploratory-data-analysis/scripts/tabular_profile.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#channel_kind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#channel_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#dataset_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#finite_statistics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#inspect_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#iter_datasets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "skills/flowio/scripts/inspect_fcs.py#write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "flowio",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "flowio.exceptions",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#channel_records",
      "target": "skills/flowio/scripts/inspect_fcs.py#channel_kind",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#dataset_record",
      "target": "skills/flowio/scripts/inspect_fcs.py#channel_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#dataset_record",
      "target": "skills/flowio/scripts/inspect_fcs.py#finite_statistics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#inspect_file",
      "target": "skills/flowio/scripts/inspect_fcs.py#dataset_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#inspect_file",
      "target": "skills/flowio/scripts/inspect_fcs.py#iter_datasets",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#inspect_file",
      "target": "skills/flowio/scripts/inspect_fcs.py#sha256_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#main",
      "target": "skills/flowio/scripts/inspect_fcs.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#main",
      "target": "skills/flowio/scripts/inspect_fcs.py#inspect_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/flowio/scripts/inspect_fcs.py#main",
      "target": "skills/flowio/scripts/inspect_fcs.py#write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#_absolute_lexical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#_reject_json_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#_reject_unsafe_path_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#_within_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#atomic_write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#checked_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#checked_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#fail_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#relative_display",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#require_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#require_text_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#safe_relative_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#safe_slug",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#strict_json_loads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "skills/fluidsim/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#_reject_json_constant",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "target": "skills/fluidsim/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#_reject_unsafe_path_text",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#_unique_object",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#_within_root",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#atomic_write",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#bounded_int",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_input",
      "target": "skills/fluidsim/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_input",
      "target": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_input",
      "target": "skills/fluidsim/scripts/_common.py#_reject_unsafe_path_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_input",
      "target": "skills/fluidsim/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_input",
      "target": "skills/fluidsim/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_input",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_output",
      "target": "skills/fluidsim/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_output",
      "target": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_output",
      "target": "skills/fluidsim/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_output",
      "target": "skills/fluidsim/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_output",
      "target": "skills/fluidsim/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_output",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_root",
      "target": "skills/fluidsim/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_root",
      "target": "skills/fluidsim/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_root",
      "target": "skills/fluidsim/scripts/_common.py#_reject_unsafe_path_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#checked_root",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#emit_json",
      "target": "skills/fluidsim/scripts/_common.py#json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#fail_json",
      "target": "skills/fluidsim/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#finite_float",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "target": "skills/fluidsim/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#json_bytes",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#load_json",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#require_mapping",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#require_text",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#require_text_list",
      "target": "skills/fluidsim/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#require_text_list",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#safe_relative_path",
      "target": "skills/fluidsim/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#safe_relative_path",
      "target": "skills/fluidsim/scripts/_common.py#safe_slug",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#safe_relative_path",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#safe_slug",
      "target": "skills/fluidsim/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#safe_slug",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#strict_json_loads",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#ToolError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/_common.py#validate_keys",
      "target": "skills/fluidsim/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "skills/fluidsim/scripts/_schema.py#_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "skills/fluidsim/scripts/_schema.py#_validate_parameter_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "skills/fluidsim/scripts/_schema.py#example_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "skills/fluidsim/scripts/_schema.py#flatten_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "skills/fluidsim/scripts/_schema.py#normalized_copy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "skills/fluidsim/scripts/_schema.py#validate_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#_validate_parameter_structure",
      "target": "skills/fluidsim/scripts/_common.py#require_mapping",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#flatten_parameters",
      "target": "skills/fluidsim/scripts/_schema.py#flatten_parameters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#normalized_copy",
      "target": "skills/fluidsim/scripts/_schema.py#validate_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#validate_config",
      "target": "skills/fluidsim/scripts/_common.py#require_mapping",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#validate_config",
      "target": "skills/fluidsim/scripts/_common.py#safe_slug",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#validate_config",
      "target": "skills/fluidsim/scripts/_schema.py#_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/_schema.py#validate_config",
      "target": "skills/fluidsim/scripts/_schema.py#_validate_parameter_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#_bounded_slice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#_iter_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#_summarize_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#OnlineStats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#summarize_scalar_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "skills/fluidsim/scripts/budget_summary.py#summarize_spectral_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#_summarize_values",
      "target": "skills/fluidsim/scripts/budget_summary.py#_summarize_values.converted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#_summarize_values",
      "target": "skills/fluidsim/scripts/budget_summary.py#_summarize_values.converted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#main",
      "target": "skills/fluidsim/scripts/budget_summary.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#main",
      "target": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#OnlineStats",
      "target": "skills/fluidsim/scripts/budget_summary.py#OnlineStats.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#OnlineStats",
      "target": "skills/fluidsim/scripts/budget_summary.py#OnlineStats.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#OnlineStats",
      "target": "skills/fluidsim/scripts/budget_summary.py#OnlineStats.report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "target": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "target": "skills/fluidsim/scripts/_common.py#relative_display",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "target": "skills/fluidsim/scripts/budget_summary.py#summarize_scalar_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize",
      "target": "skills/fluidsim/scripts/budget_summary.py#summarize_spectral_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize_scalar_file",
      "target": "skills/fluidsim/scripts/budget_summary.py#_iter_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize_scalar_file",
      "target": "skills/fluidsim/scripts/budget_summary.py#OnlineStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize_spectral_file",
      "target": "skills/fluidsim/scripts/budget_summary.py#_bounded_slice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/budget_summary.py#summarize_spectral_file",
      "target": "skills/fluidsim/scripts/budget_summary.py#_summarize_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#estimate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "._schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py#estimate",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py#main",
      "target": "skills/fluidsim/scripts/_schema.py#normalized_copy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py#main",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/grid_resource_estimator.py#main",
      "target": "skills/fluidsim/scripts/grid_resource_estimator.py#estimate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#_attributes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#_clean_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#_kind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#_object_address",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#inspect_hdf5_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "skills/fluidsim/scripts/output_inventory.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#_attributes",
      "target": "skills/fluidsim/scripts/output_inventory.py#_clean_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#_attributes",
      "target": "skills/fluidsim/scripts/output_inventory.py#_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inspect_hdf5_metadata",
      "target": "skills/fluidsim/scripts/output_inventory.py#_attributes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inspect_hdf5_metadata",
      "target": "skills/fluidsim/scripts/output_inventory.py#_clean_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inspect_hdf5_metadata",
      "target": "skills/fluidsim/scripts/output_inventory.py#_object_address",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "target": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "target": "skills/fluidsim/scripts/_common.py#relative_display",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "target": "skills/fluidsim/scripts/output_inventory.py#_kind",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "target": "skills/fluidsim/scripts/output_inventory.py#inspect_hdf5_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#main",
      "target": "skills/fluidsim/scripts/output_inventory.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/output_inventory.py#main",
      "target": "skills/fluidsim/scripts/output_inventory.py#inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_attrs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_find_state_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_safe_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_same",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#compare",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#load_hdf5_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#load_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "._schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#_attrs",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_safe_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#_find_state_file",
      "target": "skills/fluidsim/scripts/_common.py#iter_local_files",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#compare",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_same",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#compare",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#compare.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#compare",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#compare.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#load_hdf5_state",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_attrs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/_common.py#relative_display",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/_schema.py#normalized_copy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#_find_state_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#compare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#load_hdf5_state",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/restart_compatibility.py#main",
      "target": "skills/fluidsim/scripts/restart_compatibility.py#load_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#_literal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#render_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "._schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "target": "skills/fluidsim/scripts/_schema.py#normalized_copy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py#main",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#render_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py#render_script",
      "target": "skills/fluidsim/scripts/_schema.py#flatten_parameters",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/simulation_dry_run.py#render_script",
      "target": "skills/fluidsim/scripts/simulation_dry_run.py#_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "skills/fluidsim/scripts/solver_config_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "skills/fluidsim/scripts/solver_config_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "skills/fluidsim/scripts/solver_config_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "._schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py#main",
      "target": "skills/fluidsim/scripts/_schema.py#example_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/fluidsim/scripts/solver_config_validator.py#main",
      "target": "skills/fluidsim/scripts/solver_config_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#acceptable_suffixes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#build_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#cost_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#describe_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#encode_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#error_detail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#fetch_catalogue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#find_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#format_cost",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#format_pricing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#image_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#list_models",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#model_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#models_supporting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#normalise_media_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#output_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#preflight",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#print_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#redacted_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#request_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#RequestRejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#retry_delay",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#save_images",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "skills/generate-image/scripts/generate_image.py#spec_problem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "difflib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#acceptable_suffixes",
      "target": "skills/generate-image/scripts/generate_image.py#normalise_media_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#ApiError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#build_payload",
      "target": "skills/generate-image/scripts/generate_image.py#encode_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#cost_lines",
      "target": "skills/generate-image/scripts/generate_image.py#format_cost",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#encode_reference",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#fetch_catalogue",
      "target": "skills/generate-image/scripts/generate_image.py#request_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#find_api_key",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#format_pricing",
      "target": "skills/generate-image/scripts/generate_image.py#format_cost",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#image_bytes",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#image_bytes",
      "target": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#list_models",
      "target": "skills/generate-image/scripts/generate_image.py#fetch_catalogue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#list_models",
      "target": "skills/generate-image/scripts/generate_image.py#print_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#build_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#cost_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#fetch_catalogue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#find_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#list_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#model_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#preflight",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#redacted_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#request_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#main",
      "target": "skills/generate-image/scripts/generate_image.py#save_images",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#model_info",
      "target": "skills/generate-image/scripts/generate_image.py#fetch_catalogue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#model_info",
      "target": "skills/generate-image/scripts/generate_image.py#format_pricing",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#model_info",
      "target": "skills/generate-image/scripts/generate_image.py#print_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#model_info",
      "target": "skills/generate-image/scripts/generate_image.py#request_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#models_supporting",
      "target": "skills/generate-image/scripts/generate_image.py#spec_problem",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#output_paths",
      "target": "skills/generate-image/scripts/generate_image.py#acceptable_suffixes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#output_paths",
      "target": "skills/generate-image/scripts/generate_image.py#normalise_media_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#preflight",
      "target": "skills/generate-image/scripts/generate_image.py#models_supporting",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#preflight",
      "target": "skills/generate-image/scripts/generate_image.py#RequestRejected",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#preflight",
      "target": "skills/generate-image/scripts/generate_image.py#spec_problem",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#print_model",
      "target": "skills/generate-image/scripts/generate_image.py#describe_spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "target": "skills/generate-image/scripts/generate_image.py#error_detail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "target": "skills/generate-image/scripts/generate_image.py#retry_delay",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#request_json",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#request_json",
      "target": "skills/generate-image/scripts/generate_image.py#request_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#RequestRejected",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#save_images",
      "target": "skills/generate-image/scripts/generate_image.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#save_images",
      "target": "skills/generate-image/scripts/generate_image.py#image_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/generate-image/scripts/generate_image.py#save_images",
      "target": "skills/generate-image/scripts/generate_image.py#output_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#_open_binary_nofollow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#_reject_unsafe_text_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#add_path_mode_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#delimiter_from_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#display_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#fail_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#int_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#iter_text_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#load_chrom_sizes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#local_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#print_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#read_delimited_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "gzip",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#_open_binary_nofollow",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#_reject_symlink_components",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#_reject_unsafe_text_path",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#bounded_int",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#display_path",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#fail_json",
      "target": "skills/geniml/scripts/_common.py#print_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#int_type",
      "target": "skills/geniml/scripts/_common.py#int_type.parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#int_type.parse",
      "target": "skills/geniml/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#iter_text_lines",
      "target": "skills/geniml/scripts/_common.py#_open_binary_nofollow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#iter_text_lines",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#load_chrom_sizes",
      "target": "skills/geniml/scripts/_common.py#iter_text_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#load_chrom_sizes",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#local_path",
      "target": "skills/geniml/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#local_path",
      "target": "skills/geniml/scripts/_common.py#_reject_unsafe_text_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#local_path",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#read_delimited_manifest",
      "target": "skills/geniml/scripts/_common.py#iter_text_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#read_delimited_manifest",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#SafetyError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/_common.py#sha256_file",
      "target": "skills/geniml/scripts/_common.py#_open_binary_nofollow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#sha256_file",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "target": "skills/geniml/scripts/_common.py#iter_text_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "target": "skills/geniml/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "skills/geniml/scripts/bed_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "skills/geniml/scripts/bed_validator.py#_record_issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "skills/geniml/scripts/bed_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "skills/geniml/scripts/bed_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "skills/geniml/scripts/bed_validator.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py#main",
      "target": "skills/geniml/scripts/bed_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py#main",
      "target": "skills/geniml/scripts/bed_validator.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/bed_validator.py#validate",
      "target": "skills/geniml/scripts/bed_validator.py#_record_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "skills/geniml/scripts/consensus_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "skills/geniml/scripts/consensus_plan.py#_manifest_bed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "skills/geniml/scripts/consensus_plan.py#_render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "skills/geniml/scripts/consensus_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "skills/geniml/scripts/consensus_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "skills/geniml/scripts/consensus_plan.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py#main",
      "target": "skills/geniml/scripts/consensus_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py#main",
      "target": "skills/geniml/scripts/consensus_plan.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py#plan",
      "target": "skills/geniml/scripts/_common.py#delimiter_from_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py#plan",
      "target": "skills/geniml/scripts/_common.py#read_delimited_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py#plan",
      "target": "skills/geniml/scripts/consensus_plan.py#_manifest_bed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/consensus_plan.py#plan",
      "target": "skills/geniml/scripts/consensus_plan.py#_render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "skills/geniml/scripts/corpus_auditor.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "skills/geniml/scripts/corpus_auditor.py#_manifest_local_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "skills/geniml/scripts/corpus_auditor.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "skills/geniml/scripts/corpus_auditor.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "skills/geniml/scripts/corpus_auditor.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py#audit",
      "target": "skills/geniml/scripts/_common.py#delimiter_from_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py#audit",
      "target": "skills/geniml/scripts/_common.py#read_delimited_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py#audit",
      "target": "skills/geniml/scripts/corpus_auditor.py#_manifest_local_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py#main",
      "target": "skills/geniml/scripts/corpus_auditor.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/corpus_auditor.py#main",
      "target": "skills/geniml/scripts/corpus_auditor.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "skills/geniml/scripts/embedding_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "skills/geniml/scripts/embedding_plan.py#_parquet_magic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "skills/geniml/scripts/embedding_plan.py#_render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "skills/geniml/scripts/embedding_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "skills/geniml/scripts/embedding_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "skills/geniml/scripts/embedding_plan.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py#main",
      "target": "skills/geniml/scripts/embedding_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py#main",
      "target": "skills/geniml/scripts/embedding_plan.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py#plan",
      "target": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py#plan",
      "target": "skills/geniml/scripts/embedding_plan.py#_parquet_magic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/embedding_plan.py#plan",
      "target": "skills/geniml/scripts/embedding_plan.py#_render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_read_checksum_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_redacted_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_risk_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_safe_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_walk_regular_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "target": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_read_checksum_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_redacted_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_risk_for",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_safe_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#_walk_regular_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#main",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/model_artifact_inspector.py#main",
      "target": "skills/geniml/scripts/model_artifact_inspector.py#inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#_count_universe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#_parquet_magic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#_safe_child",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "target": "skills/geniml/scripts/_common.py#simple_yaml_mapping",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#_count_universe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#_parquet_magic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#_safe_child",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py#main",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geniml/scripts/tokenizer_compatibility.py#main",
      "target": "skills/geniml/scripts/tokenizer_compatibility.py#inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#Convention",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#Convention",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#format_region",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#from_canonical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#get_convention",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#iter_data_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#naming_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#parse_region",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#strip_chr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "skills/genomic-coordinates/scripts/_common.py#to_canonical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "target": "skills/genomic-coordinates/scripts/_common.py#strip_chr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Convention",
      "target": "skills/genomic-coordinates/scripts/_common.py#Convention.label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._load_all",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._load_fai",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference.contigs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference.length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.__init__",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.__init__",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._load_all",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.__init__",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._load_fai",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.__init__",
      "target": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference._load_fai",
      "target": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference._resolve",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference._resolve",
      "target": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.fetch",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.fetch",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference.length",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.fetch",
      "target": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#Reference.length",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference._resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/_common.py#ReferenceError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed12",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_gff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#detect_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#load_genome",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed12",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed12",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_gff",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_gff",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_gff",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "target": "skills/genomic-coordinates/scripts/_common.py#naming_style",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_naming",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#check_bounds",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#load_genome",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_bed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_gff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#audit_vcf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#detect_format",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#main",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#load_genome",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/audit_intervals.py#SortState.check",
      "target": "skills/genomic-coordinates/scripts/audit_intervals.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#compare",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#identify",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_fasta_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_intervals",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_sam_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_sizes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_vcf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#compare",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#compare",
      "target": "skills/genomic-coordinates/scripts/_common.py#naming_style",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#identify",
      "target": "skills/genomic-coordinates/scripts/_common.py#canonical_contig",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_fasta_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_intervals",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_sam_header",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_sizes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#read_vcf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "target": "skills/genomic-coordinates/scripts/_common.py#naming_style",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#compare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#identify",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/check_contigs.py#main",
      "target": "skills/genomic-coordinates/scripts/check_contigs.py#load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#read_intervals",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "target": "skills/genomic-coordinates/scripts/_common.py#from_canonical",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "target": "skills/genomic-coordinates/scripts/_common.py#to_canonical",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one.render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one.render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one.render",
      "target": "skills/genomic-coordinates/scripts/_common.py#format_region",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "target": "skills/genomic-coordinates/scripts/_common.py#get_convention",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "target": "skills/genomic-coordinates/scripts/_common.py#parse_region",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#convert_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#main",
      "target": "skills/genomic-coordinates/scripts/convert_coords.py#read_intervals",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#read_intervals",
      "target": "skills/genomic-coordinates/scripts/_common.py#iter_data_lines",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/convert_coords.py#read_intervals",
      "target": "skills/genomic-coordinates/scripts/_common.py#parse_region",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#classify",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#normalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#parse_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#read_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#VariantError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#parse_spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#read_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#main",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#normalize",
      "target": "skills/genomic-coordinates/scripts/_common.py#Reference.fetch",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#normalize",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#classify",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#normalize",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#VariantError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#parse_spec",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#VariantError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#read_records",
      "target": "skills/genomic-coordinates/scripts/_common.py#iter_data_lines",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#run",
      "target": "skills/genomic-coordinates/scripts/normalize_variant.py#normalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/genomic-coordinates/scripts/normalize_variant.py#VariantError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#_candidate_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#_json_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#_root_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#_strict_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#crs_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#disable_proj_network",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#duplicate_column_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#fail_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#geometry_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#inspect_geoparquet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#json_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#native_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#package_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#reject_nonlocal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "skills/geopandas/scripts/_common.py#write_new_geopackage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "pyarrow",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "pyogrio",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "pyproj",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "shapely",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_candidate_path",
      "target": "skills/geopandas/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_candidate_path",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_candidate_path",
      "target": "skills/geopandas/scripts/_common.py#reject_nonlocal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_json_scalar",
      "target": "skills/geopandas/scripts/_common.py#_json_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_reject_constant",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_reject_symlink_components",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_root_path",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_root_path",
      "target": "skills/geopandas/scripts/_common.py#reject_nonlocal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#_strict_object",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#bounded_limit",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_input_file",
      "target": "skills/geopandas/scripts/_common.py#_candidate_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_input_file",
      "target": "skills/geopandas/scripts/_common.py#_root_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_input_file",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_input_file",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_output_file",
      "target": "skills/geopandas/scripts/_common.py#_candidate_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_output_file",
      "target": "skills/geopandas/scripts/_common.py#_root_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#checked_output_file",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#crs_summary",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#disable_proj_network",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#duplicate_column_state",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#emit_json",
      "target": "skills/geopandas/scripts/_common.py#json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#fail_json",
      "target": "skills/geopandas/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#finite_number",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "target": "skills/geopandas/scripts/_common.py#_json_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "target": "skills/geopandas/scripts/_common.py#crs_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_geoparquet",
      "target": "skills/geopandas/scripts/_common.py#_json_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_geoparquet",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "target": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "target": "skills/geopandas/scripts/_common.py#inspect_geoparquet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "target": "skills/geopandas/scripts/_common.py#inspect_gdal_vector",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#native_versions",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#reject_nonlocal",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#write_new_geopackage",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/_common.py#write_new_geopackage",
      "target": "skills/geopandas/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#_candidate_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#_dynamic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "pyproj",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "pyproj.aoi",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "pyproj.transformer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#main",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#main",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "target": "skills/geopandas/scripts/_common.py#crs_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "target": "skills/geopandas/scripts/_common.py#disable_proj_network",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "target": "skills/geopandas/scripts/_common.py#native_versions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#_candidate_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/crs_reprojection_plan.py#plan",
      "target": "skills/geopandas/scripts/crs_reprojection_plan.py#_dynamic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "skills/geopandas/scripts/export_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "skills/geopandas/scripts/export_plan.py#_format_risks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "skills/geopandas/scripts/export_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "skills/geopandas/scripts/export_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "skills/geopandas/scripts/export_plan.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py#main",
      "target": "skills/geopandas/scripts/export_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py#main",
      "target": "skills/geopandas/scripts/export_plan.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py#plan",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py#plan",
      "target": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py#plan",
      "target": "skills/geopandas/scripts/_common.py#native_versions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/export_plan.py#plan",
      "target": "skills/geopandas/scripts/export_plan.py#_format_risks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#_type_transition_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#main",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#main",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/_common.py#crs_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/_common.py#duplicate_column_state",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/_common.py#geometry_state",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/_common.py#native_versions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/_common.py#write_new_geopackage",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/geometry_validity_report.py#report",
      "target": "skills/geopandas/scripts/geometry_validity_report.py#_type_transition_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#checklist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#main",
      "target": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#main",
      "target": "skills/geopandas/scripts/sensitive_coordinates_checklist.py#checklist",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#_counter_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#_run_chunked_join",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#_work_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "pyproj",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#_run_chunked_join",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#_counter_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#_run_chunked_join",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#_work_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/_common.py#crs_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/_common.py#duplicate_column_state",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/_common.py#geometry_state",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/_common.py#load_geodataframe",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/_common.py#native_versions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#_run_chunked_join",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#main",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/spatial_join_audit.py#main",
      "target": "skills/geopandas/scripts/spatial_join_audit.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "skills/geopandas/scripts/vector_inventory.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "skills/geopandas/scripts/vector_inventory.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "skills/geopandas/scripts/vector_inventory.py#inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "skills/geopandas/scripts/vector_inventory.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py#inventory",
      "target": "skills/geopandas/scripts/_common.py#bounded_limit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py#inventory",
      "target": "skills/geopandas/scripts/_common.py#inspect_local_vector",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py#inventory",
      "target": "skills/geopandas/scripts/_common.py#native_versions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py#main",
      "target": "skills/geopandas/scripts/vector_inventory.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/geopandas/scripts/vector_inventory.py#main",
      "target": "skills/geopandas/scripts/vector_inventory.py#inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#_safe_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#argparse_nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#argparse_positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#bounded_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#cli_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#json_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#read_json_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#_safe_output_path",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#emit_json",
      "target": "skills/get-available-resources/scripts/_common.py#_safe_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#emit_json",
      "target": "skills/get-available-resources/scripts/_common.py#json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#emit_json",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#json_text",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#read_json_file",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "skills/get-available-resources/scripts/accelerator_diagnostics.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_diagnostic_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "skills/get-available-resources/scripts/accelerator_diagnostics.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "snapshot_tools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_diagnostic_plan",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_diagnostic_plan",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py#main",
      "target": "skills/get-available-resources/scripts/_common.py#cli_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py#main",
      "target": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_diagnostic_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/accelerator_diagnostics.py#main",
      "target": "skills/get-available-resources/scripts/accelerator_diagnostics.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_accelerator_upper_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_amd_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_amd_memory_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_cgroup_relative_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_container_context",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_cpu_inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_disk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_process_cpu_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_effective_cpu",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_linux_physical_cores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_load_psutil",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_mib_to_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_observed_at",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_cpu_max",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_first_repeated_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_linux_meminfo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_slurm_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_slurm_memory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_read_bounded_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_record_probe_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_recursive_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_run_bounded_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_try_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_visibility_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#detect_all_resources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_apple_profiler_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_cpu_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_nvidia_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "threading",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_amd_entries",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_amd_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_amd_entries",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_amd_memory_bytes",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_amd_memory_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_accelerator_upper_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_record_probe_failure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_visibility_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_apple_profiler_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_nvidia_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_cpu_inventory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_linux_physical_cores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_cpu_inventory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_cpu_inventory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_disk",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_disk",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_disk",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_linux_meminfo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_try_read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_process_cpu_count",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_detect_process_cpu_count",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_linux_physical_cores",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_try_read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_load_psutil",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_load_psutil",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_parse_cpu_max",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_record_probe_failure",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_record_probe_failure",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_recursive_scalar",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_recursive_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#_run_bounded_command",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_run_bounded_command.drain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_container_context",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_accelerators",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_cpu_inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_disk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_memory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_detect_process_cpu_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_effective_cpu",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_load_psutil",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_mac_sysctl_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_observed_at",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_visibility_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "target": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_all_resources",
      "target": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_cgroup_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_cpu_max",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_try_read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_cgroup_v2",
      "target": "skills/get-available-resources/scripts/detect_resources.py#parse_cpu_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_first_repeated_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_slurm_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_parse_slurm_memory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#detect_scheduler",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#main",
      "target": "skills/get-available-resources/scripts/_common.py#cli_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#main",
      "target": "skills/get-available-resources/scripts/detect_resources.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#main",
      "target": "skills/get-available-resources/scripts/detect_resources.py#collect_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_amd_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_amd_memory_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_recursive_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_amd_json",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_apple_profiler_json",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_apple_profiler_json",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_nvidia_csv",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_bounded_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_nvidia_csv",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_mib_to_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/detect_resources.py#parse_nvidia_csv",
      "target": "skills/get-available-resources/scripts/detect_resources.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "skills/get-available-resources/scripts/plan_workload.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "skills/get-available-resources/scripts/plan_workload.py#_accelerator_decision",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "skills/get-available-resources/scripts/plan_workload.py#_optional_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "skills/get-available-resources/scripts/plan_workload.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "skills/get-available-resources/scripts/plan_workload.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "snapshot_tools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#_optional_number",
      "target": "skills/get-available-resources/scripts/_common.py#bounded_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#build_parser",
      "target": "skills/get-available-resources/scripts/_common.py#argparse_nonnegative_int",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#build_parser",
      "target": "skills/get-available-resources/scripts/_common.py#argparse_positive_int",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "target": "skills/get-available-resources/scripts/plan_workload.py#_accelerator_decision",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "target": "skills/get-available-resources/scripts/plan_workload.py#_optional_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#main",
      "target": "skills/get-available-resources/scripts/_common.py#cli_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#main",
      "target": "skills/get-available-resources/scripts/plan_workload.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/plan_workload.py#main",
      "target": "skills/get-available-resources/scripts/plan_workload.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_check_optional_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_diff_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_expect_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_is_optional_nonnegative_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_strip_volatile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#_check_optional_number",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_is_optional_nonnegative_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#_diff_values",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_diff_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#_is_optional_nonnegative_number",
      "target": "skills/get-available-resources/scripts/_common.py#bounded_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "target": "skills/get-available-resources/scripts/_common.py#ResourceToolError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_diff_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_strip_volatile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "target": "skills/get-available-resources/scripts/_common.py#cli_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#diff_snapshots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#main",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_check_optional_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/get-available-resources/scripts/snapshot_tools.py#validate_snapshot",
      "target": "skills/get-available-resources/scripts/snapshot_tools.py#_expect_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "skills/gget/scripts/batch_sequence_analysis.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "skills/gget/scripts/batch_sequence_analysis.py#analyze_sequences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "skills/gget/scripts/batch_sequence_analysis.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "skills/gget/scripts/batch_sequence_analysis.py#read_fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "gget",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py#analyze_sequences",
      "target": "skills/gget/scripts/batch_sequence_analysis.py#read_fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/batch_sequence_analysis.py#main",
      "target": "skills/gget/scripts/batch_sequence_analysis.py#analyze_sequences",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "skills/gget/scripts/enrichment_pipeline.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "skills/gget/scripts/enrichment_pipeline.py#enrichment_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "skills/gget/scripts/enrichment_pipeline.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "skills/gget/scripts/enrichment_pipeline.py#read_gene_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "gget",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py#main",
      "target": "skills/gget/scripts/enrichment_pipeline.py#enrichment_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/enrichment_pipeline.py#main",
      "target": "skills/gget/scripts/enrichment_pipeline.py#read_gene_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "skills/gget/scripts/gene_analysis.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "skills/gget/scripts/gene_analysis.py#analyze_gene",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "skills/gget/scripts/gene_analysis.py#fasta_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "skills/gget/scripts/gene_analysis.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "gget",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py#analyze_gene",
      "target": "skills/gget/scripts/gene_analysis.py#fasta_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gget/scripts/gene_analysis.py#main",
      "target": "skills/gget/scripts/gene_analysis.py#analyze_gene",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#_open_binary_nofollow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#_reject_unsafe_text_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#add_path_mode_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#display_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#fail_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#inspect_bed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#int_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#iter_text_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#load_chrom_sizes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#local_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#print_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "skills/gtars/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "gzip",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#_open_binary_nofollow",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#_reject_symlink_components",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#_reject_unsafe_text_path",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#display_path",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#fail_json",
      "target": "skills/gtars/scripts/_common.py#print_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#inspect_bed",
      "target": "skills/gtars/scripts/_common.py#inspect_bed.issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#inspect_bed",
      "target": "skills/gtars/scripts/_common.py#iter_text_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#inspect_bed",
      "target": "skills/gtars/scripts/_common.py#sha256_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#inspect_bed",
      "target": "skills/gtars/scripts/_common.py#inspect_bed.issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#int_type",
      "target": "skills/gtars/scripts/_common.py#int_type.parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#int_type.parse",
      "target": "skills/gtars/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#iter_text_lines",
      "target": "skills/gtars/scripts/_common.py#_open_binary_nofollow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#iter_text_lines",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_chrom_sizes",
      "target": "skills/gtars/scripts/_common.py#iter_text_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_chrom_sizes",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_json",
      "target": "skills/gtars/scripts/_common.py#iter_text_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_json",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_json",
      "target": "skills/gtars/scripts/_common.py#load_json.invalid_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_json",
      "target": "skills/gtars/scripts/_common.py#load_json.object_pairs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_json.invalid_constant",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#load_json.object_pairs",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#local_path",
      "target": "skills/gtars/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#local_path",
      "target": "skills/gtars/scripts/_common.py#_reject_unsafe_text_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#local_path",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#SafetyError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/gtars/scripts/_common.py#sha256_file",
      "target": "skills/gtars/scripts/_common.py#_open_binary_nofollow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/_common.py#sha256_file",
      "target": "skills/gtars/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#_native_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#_parse_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#_read_checksums",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#_read_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "skills/gtars/scripts/artifact_inspector.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "email.parser",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "target": "skills/gtars/scripts/artifact_inspector.py#_native_format",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "target": "skills/gtars/scripts/artifact_inspector.py#_parse_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "target": "skills/gtars/scripts/artifact_inspector.py#_read_checksums",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "target": "skills/gtars/scripts/artifact_inspector.py#_read_prefix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py#main",
      "target": "skills/gtars/scripts/artifact_inspector.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/artifact_inspector.py#main",
      "target": "skills/gtars/scripts/artifact_inspector.py#inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "skills/gtars/scripts/bed_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "skills/gtars/scripts/bed_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "skills/gtars/scripts/bed_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "skills/gtars/scripts/bed_validator.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py#main",
      "target": "skills/gtars/scripts/bed_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py#main",
      "target": "skills/gtars/scripts/bed_validator.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/bed_validator.py#validate",
      "target": "skills/gtars/scripts/_common.py#inspect_bed",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "skills/gtars/scripts/coverage_preflight.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "skills/gtars/scripts/coverage_preflight.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "skills/gtars/scripts/coverage_preflight.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "skills/gtars/scripts/coverage_preflight.py#preflight",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py#main",
      "target": "skills/gtars/scripts/coverage_preflight.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py#main",
      "target": "skills/gtars/scripts/coverage_preflight.py#preflight",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/coverage_preflight.py#preflight",
      "target": "skills/gtars/scripts/_common.py#inspect_bed",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "skills/gtars/scripts/execution_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "skills/gtars/scripts/execution_plan.py#_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "skills/gtars/scripts/execution_plan.py#_require",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "skills/gtars/scripts/execution_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "skills/gtars/scripts/execution_plan.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "skills/gtars/scripts/execution_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#_output",
      "target": "skills/gtars/scripts/execution_plan.py#_require",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#build_plan",
      "target": "skills/gtars/scripts/execution_plan.py#_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#build_plan",
      "target": "skills/gtars/scripts/execution_plan.py#_require",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#build_plan",
      "target": "skills/gtars/scripts/execution_plan.py#build_plan.add_bed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#build_plan",
      "target": "skills/gtars/scripts/execution_plan.py#build_plan.add_bed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#build_plan.add_bed",
      "target": "skills/gtars/scripts/_common.py#inspect_bed",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#main",
      "target": "skills/gtars/scripts/execution_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/execution_plan.py#main",
      "target": "skills/gtars/scripts/execution_plan.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#_normalize_expected_digest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#sha512t24u",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "skills/gtars/scripts/refget_digest_plan.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta",
      "target": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta.finish",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta",
      "target": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta.finish",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta.finish",
      "target": "skills/gtars/scripts/refget_digest_plan.py#sha512t24u",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#main",
      "target": "skills/gtars/scripts/refget_digest_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#main",
      "target": "skills/gtars/scripts/refget_digest_plan.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#validate",
      "target": "skills/gtars/scripts/refget_digest_plan.py#_normalize_expected_digest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/refget_digest_plan.py#validate",
      "target": "skills/gtars/scripts/refget_digest_plan.py#_read_fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py#check",
      "target": "skills/gtars/scripts/_common.py#inspect_bed",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py#check",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py#main",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/gtars/scripts/tokenizer_manifest.py#main",
      "target": "skills/gtars/scripts/tokenizer_manifest.py#check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#_defang",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#_host_is_expected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#cmd_all",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#cmd_raw",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#cmd_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#Entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#render_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#render_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_all",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_all",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_all",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#render_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_raw",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_search",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_search",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_search",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#render_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topic",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topic",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#cmd_topic",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#render_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#Entry",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#Entry",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#Entry.matches_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#Entry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown.finalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#parse_markdown.finalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#render_entries",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#render_entry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#render_entry",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#_defang",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hugging-science/scripts/fetch_catalog.py#render_entry",
      "target": "skills/hugging-science/scripts/fetch_catalog.py#_host_is_expected",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_absolute_lexical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_load_yaml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_reject_url_or_secret_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_validate_no_secret_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_validate_plain_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#_within_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#canonical_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#classification_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#count_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#emit_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#label_fingerprint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#load_json_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#named_env_presence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#normalized_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#normalized_sha256",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#resolve_manifest_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#strict_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#strict_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#summarize_numbers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py",
      "target": "yaml",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_load_yaml",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_load_yaml",
      "target": "skills/hypogenic/scripts/_common.py#_load_yaml.construct_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_load_yaml",
      "target": "skills/hypogenic/scripts/_common.py#_load_yaml.UniqueSafeLoader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_load_yaml.construct_mapping",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_reject_constant",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_reject_symlink_components",
      "target": "skills/hypogenic/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_reject_symlink_components",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_reject_url_or_secret_path",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_unique_object",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_no_secret_fields",
      "target": "skills/hypogenic/scripts/_common.py#_validate_no_secret_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_no_secret_fields",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_plain_document",
      "target": "skills/hypogenic/scripts/_common.py#_validate_plain_document.visit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_plain_document",
      "target": "skills/hypogenic/scripts/_common.py#_validate_plain_document.visit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_plain_document.visit",
      "target": "skills/hypogenic/scripts/_common.py#_validate_plain_document.visit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_plain_document.visit",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "target": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#_within_root",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#bounded_int",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#canonical_json_bytes",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "target": "skills/hypogenic/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "target": "skills/hypogenic/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "target": "skills/hypogenic/scripts/_common.py#_reject_url_or_secret_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "target": "skills/hypogenic/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "target": "skills/hypogenic/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_root",
      "target": "skills/hypogenic/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_root",
      "target": "skills/hypogenic/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_root",
      "target": "skills/hypogenic/scripts/_common.py#_reject_url_or_secret_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#checked_root",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#classification_metrics",
      "target": "skills/hypogenic/scripts/_common.py#label_fingerprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#count_values",
      "target": "skills/hypogenic/scripts/_common.py#label_fingerprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#emit_error",
      "target": "skills/hypogenic/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#emit_json",
      "target": "skills/hypogenic/scripts/_common.py#strict_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#finite_number",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_json_document",
      "target": "skills/hypogenic/scripts/_common.py#_validate_plain_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_json_document",
      "target": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_json_document",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "target": "skills/hypogenic/scripts/_common.py#_load_yaml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "target": "skills/hypogenic/scripts/_common.py#_validate_plain_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "target": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#named_env_presence",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#normalized_date",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#normalized_sha256",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#resolve_manifest_path",
      "target": "skills/hypogenic/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#resolve_manifest_path",
      "target": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "target": "skills/hypogenic/scripts/_common.py#_reject_url_or_secret_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#sha256_file",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#strict_bool",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#strict_json_bytes",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "target": "skills/hypogenic/scripts/_common.py#normalized_date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "target": "skills/hypogenic/scripts/_common.py#normalized_sha256",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "target": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "target": "skills/hypogenic/scripts/_common.py#validate_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "target": "skills/hypogenic/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "target": "skills/hypogenic/scripts/_common.py#finite_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "target": "skills/hypogenic/scripts/_common.py#validate_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_keys",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "target": "skills/hypogenic/scripts/_common.py#normalized_sha256",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "target": "skills/hypogenic/scripts/_common.py#validate_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#_validate_no_secret_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#finite_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#normalized_date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#strict_bool",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "target": "skills/hypogenic/scripts/_common.py#validate_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "target": "skills/hypogenic/scripts/_common.py#_validate_prompt_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "target": "skills/hypogenic/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "target": "skills/hypogenic/scripts/_common.py#nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "target": "skills/hypogenic/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "target": "skills/hypogenic/scripts/_common.py#validate_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_bounded_groups",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_data_root_from_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_digest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_field_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_rows_from_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "skills/hypogenic/scripts/audit_dataset.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#_digest",
      "target": "skills/hypogenic/scripts/_common.py#canonical_json_bytes",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#_rows_from_document",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_field_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "target": "skills/hypogenic/scripts/_common.py#count_values",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "target": "skills/hypogenic/scripts/_common.py#load_json_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "target": "skills/hypogenic/scripts/_common.py#resolve_manifest_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_bounded_groups",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_digest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_rows_from_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#main",
      "target": "skills/hypogenic/scripts/_common.py#load_json_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#main",
      "target": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#main",
      "target": "skills/hypogenic/scripts/audit_dataset.py#_data_root_from_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#main",
      "target": "skills/hypogenic/scripts/audit_dataset.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/audit_dataset.py#main",
      "target": "skills/hypogenic/scripts/audit_dataset.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#make_evaluation_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "skills/hypogenic/scripts/evaluate_local.py#make_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "target": "skills/hypogenic/scripts/_common.py#load_json_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "target": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "target": "skills/hypogenic/scripts/_common.py#validate_dataset_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "target": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "target": "skills/hypogenic/scripts/evaluate_local.py#make_evaluation_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_report",
      "target": "skills/hypogenic/scripts/_common.py#load_json_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_report",
      "target": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#_report",
      "target": "skills/hypogenic/scripts/evaluate_local.py#make_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#main",
      "target": "skills/hypogenic/scripts/evaluate_local.py#_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#main",
      "target": "skills/hypogenic/scripts/evaluate_local.py#_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#main",
      "target": "skills/hypogenic/scripts/evaluate_local.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/evaluate_local.py#make_report",
      "target": "skills/hypogenic/scripts/_common.py#classification_metrics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#inspect_hypotheses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#inspect_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#inspect_hypotheses",
      "target": "skills/hypogenic/scripts/_common.py#summarize_numbers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#inspect_hypotheses",
      "target": "skills/hypogenic/scripts/_common.py#validate_hypothesis_bank",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#inspect_results",
      "target": "skills/hypogenic/scripts/_common.py#count_values",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#inspect_results",
      "target": "skills/hypogenic/scripts/_common.py#validate_result_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "target": "skills/hypogenic/scripts/_common.py#load_json_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#inspect_hypotheses",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/inspect_outputs.py#main",
      "target": "skills/hypogenic/scripts/inspect_outputs.py#inspect_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "skills/hypogenic/scripts/plan_run.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "skills/hypogenic/scripts/plan_run.py#_money",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "skills/hypogenic/scripts/plan_run.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "skills/hypogenic/scripts/plan_run.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "skills/hypogenic/scripts/plan_run.py#make_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py",
      "target": "decimal",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py#main",
      "target": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py#main",
      "target": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py#main",
      "target": "skills/hypogenic/scripts/plan_run.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py#main",
      "target": "skills/hypogenic/scripts/plan_run.py#make_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py#make_plan",
      "target": "skills/hypogenic/scripts/_common.py#named_env_presence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/plan_run.py#make_plan",
      "target": "skills/hypogenic/scripts/plan_run.py#_money",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "skills/hypogenic/scripts/validate_config.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "skills/hypogenic/scripts/validate_config.py#_run_policy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "skills/hypogenic/scripts/validate_config.py#_task_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "skills/hypogenic/scripts/validate_config.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "skills/hypogenic/scripts/validate_config.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#_run_policy",
      "target": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#_run_policy",
      "target": "skills/hypogenic/scripts/_common.py#named_env_presence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#_run_policy",
      "target": "skills/hypogenic/scripts/_common.py#validate_run_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#_task_config",
      "target": "skills/hypogenic/scripts/_common.py#load_structured_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#_task_config",
      "target": "skills/hypogenic/scripts/_common.py#validate_task_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#main",
      "target": "skills/hypogenic/scripts/validate_config.py#_run_policy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#main",
      "target": "skills/hypogenic/scripts/validate_config.py#_task_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypogenic/scripts/validate_config.py#main",
      "target": "skills/hypogenic/scripts/validate_config.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#_duplicate_safe_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#_reject_url_like_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#atomic_write_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#error_exit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#read_csv_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#read_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_enum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_exact_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_https_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_identifier_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_partial_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_unique",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#split_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#write_json_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "skills/hypothesis-generation/scripts/_common.py#write_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#_duplicate_safe_object",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#_reject_url_like_path",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#read_csv_records",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#read_csv_records",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#read_json",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#read_json",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#read_markdown",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#read_markdown",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_bool",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_enum",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_enum",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_exact_keys",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_https_url",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_https_url",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_identifier",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_identifier",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_identifier_list",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_identifier_list",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_identifier_list",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_iso_date",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_iso_date",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_list",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_object",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_partial_date",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_partial_date",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_text_list",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_text_list",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#require_unique",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "target": "skills/hypothesis-generation/scripts/_common.py#_reject_url_like_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#safe_input_path",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#safe_output_path",
      "target": "skills/hypothesis-generation/scripts/_common.py#_reject_url_like_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#safe_output_path",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#split_identifiers",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#split_identifiers",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#split_identifiers",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#split_identifiers",
      "target": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#write_json_report",
      "target": "skills/hypothesis-generation/scripts/_common.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#write_json_report",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#write_markdown",
      "target": "skills/hypothesis-generation/scripts/_common.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/_common.py#write_markdown",
      "target": "skills/hypothesis-generation/scripts/_common.py#safe_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#_record_claim_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_search_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py",
      "target": "validate_hypothesis_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#audit",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#_record_claim_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#audit",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_https_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "target": "skills/hypothesis-generation/scripts/_common.py#require_partial_date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_search_boundary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_normalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_controls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_discriminating_tests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_falsifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_nulls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_outcome_interpretation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py",
      "target": "validate_hypothesis_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#audit",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_normalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#audit",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_controls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_discriminating_tests",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_falsifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_nulls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#_parse_outcome_interpretation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "target": "skills/hypothesis-generation/scripts/check_falsification_controls.py#load_checklist",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_falsification_controls.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#load_checklist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py#main",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py#main",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/check_operationalization.py#main",
      "target": "skills/hypothesis-generation/scripts/check_operationalization.py#load_checklist",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ai_use",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_analyses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_estimands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ethics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_hypotheses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_nulls_and_controls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_observation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_operationalizations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_predictions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_question",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "html",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py",
      "target": "validate_hypothesis_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ai_use",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_analyses",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_analyses",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_estimands",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_estimands",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ethics",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_evidence",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_hypotheses",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_hypotheses",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_nulls_and_controls",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_observation",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_operationalizations",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_operationalizations",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_predictions",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_predictions",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_question",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_bullet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ai_use",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_analyses",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_estimands",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_ethics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_hypotheses",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_nulls_and_controls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_observation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_operationalizations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_predictions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_render_question",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#_safe_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#main",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#main",
      "target": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/generate_preregistration_scaffold.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#_finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#lint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py#lint",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py#main",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/lint_causal_claims.py#main",
      "target": "skills/hypothesis-generation/scripts/lint_causal_claims.py#lint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_missing_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_ai_use",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_analysis_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_controls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_estimands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_ethics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_hypotheses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_nulls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_observation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_operationalizations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_predictions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_question",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_risk_register",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_ai_use",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_alternatives",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_analysis_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_controls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_estimands",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_ethics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_hypotheses",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_nulls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_observation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_operationalizations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_predictions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_question",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_parse_risk_register",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#_missing_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#_normalized_expectation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#_unknown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#load_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#validate_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py",
      "target": "validate_hypothesis_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#load_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#main",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#validate_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#validate_matrix",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#validate_matrix",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#_normalized_expectation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#validate_matrix",
      "target": "skills/hypothesis-generation/scripts/validate_prediction_matrix.py#_unknown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#check_minimum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#fetch_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#install_commands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#notify_updates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#parse_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "skills/imaging-data-commons/scripts/check_version.py#print_install_instructions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "idc_index",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#check_minimum",
      "target": "skills/imaging-data-commons/scripts/check_version.py#parse_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#check_minimum",
      "target": "skills/imaging-data-commons/scripts/check_version.py#print_install_instructions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#main",
      "target": "skills/imaging-data-commons/scripts/check_version.py#check_minimum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#main",
      "target": "skills/imaging-data-commons/scripts/check_version.py#notify_updates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#notify_updates",
      "target": "skills/imaging-data-commons/scripts/check_version.py#fetch_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#notify_updates",
      "target": "skills/imaging-data-commons/scripts/check_version.py#install_commands",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#notify_updates",
      "target": "skills/imaging-data-commons/scripts/check_version.py#parse_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/imaging-data-commons/scripts/check_version.py#print_install_instructions",
      "target": "skills/imaging-data-commons/scripts/check_version.py#install_commands",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_normalize_review_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_parse_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_parse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#ReviewResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#_parse_score",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#_parse_verdict",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._build_generation_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._enhance_prompt_with_research",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._extract_image_from_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._image_to_base64",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._make_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.improve_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.research_topic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.web_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.__init__",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._extract_image_from_response",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._make_request",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._extract_image_from_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._build_generation_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._enhance_prompt_with_research",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.improve_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.research_topic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.research_topic",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_parse_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_parse_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.review_image",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#ReviewResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.web_search",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#main",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#main",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#main",
      "target": "skills/infographics/scripts/generate_infographic_ai.py#InfographicGenerator.generate_iterative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic_ai.py#ReviewResult",
      "target": "NamedTuple",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "skills/infographics/scripts/generate_infographic.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "skills/infographics/scripts/generate_infographic.py#build_subprocess_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "skills/infographics/scripts/generate_infographic.py#list_options",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "skills/infographics/scripts/generate_infographic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "skills/infographics/scripts/generate_infographic.py#resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py#main",
      "target": "skills/infographics/scripts/generate_infographic.py#build_subprocess_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py#main",
      "target": "skills/infographics/scripts/generate_infographic.py#list_options",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/infographics/scripts/generate_infographic.py#main",
      "target": "skills/infographics/scripts/generate_infographic.py#resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_catalog.py",
      "target": "skills/iso-standards-readiness/scripts/_catalog.py#StandardProfile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_catalog.py",
      "target": "skills/iso-standards-readiness/scripts/_catalog.py#StandardProfile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_catalog.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_check_depth_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_safe_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#build_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#emit_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#finish",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#is_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#load_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#profile_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#valid_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#_check_depth_and_size",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#_reject_constant",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#_safe_input_file",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#_unique_object",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#emit_report",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Finding",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Finding.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#finish",
      "target": "skills/iso-standards-readiness/scripts/_common.py#build_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#finish",
      "target": "skills/iso-standards-readiness/scripts/_common.py#emit_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#load_json",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_check_depth_and_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#load_json",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_safe_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#load_json",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#load_markdown",
      "target": "skills/iso-standards-readiness/scripts/_common.py#_safe_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#load_markdown",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "target": "skills/iso-standards-readiness/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "target": "skills/iso-standards-readiness/scripts/_common.py#valid_iso_date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "target": "skills/iso-standards-readiness/scripts/_common.py#is_placeholder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "target": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "target": "skills/iso-standards-readiness/scripts/audit_document_records.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "target": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#main",
      "target": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/audit_document_records.py#validate",
      "target": "skills/iso-standards-readiness/scripts/audit_document_records.py#_core",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py",
      "target": "skills/iso-standards-readiness/scripts/check_capa.py#_text_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py",
      "target": "skills/iso-standards-readiness/scripts/check_capa.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py",
      "target": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#_text_array",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#_text_array",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#main",
      "target": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_capa.py#validate",
      "target": "skills/iso-standards-readiness/scripts/check_capa.py#_text_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "target": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "target": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#main",
      "target": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_qmsr_transition.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "target": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "target": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "target": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#main",
      "target": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#validate",
      "target": "skills/iso-standards-readiness/scripts/check_supplier_controls.py#_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "skills/iso-standards-readiness/scripts/check_traceability.py#_reference_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "skills/iso-standards-readiness/scripts/check_traceability.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#_reference_list",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#_reference_list",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#main",
      "target": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/check_traceability.py#validate",
      "target": "skills/iso-standards-readiness/scripts/check_traceability.py#_reference_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "skills/iso-standards-readiness/scripts/gap_analyzer.py#_entry_ready",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "skills/iso-standards-readiness/scripts/gap_analyzer.py#analyze",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "skills/iso-standards-readiness/scripts/gap_analyzer.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py",
      "target": "validate_evidence_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py#analyze",
      "target": "skills/iso-standards-readiness/scripts/gap_analyzer.py#_entry_ready",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#profile_for",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/gap_analyzer.py#main",
      "target": "skills/iso-standards-readiness/scripts/gap_analyzer.py#analyze",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_safe_evidence_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_text_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_text_array",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_text_array",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#profile_for",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#main",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.approval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.evidence",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.source_refs",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_safe_evidence_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#validate",
      "target": "skills/iso-standards-readiness/scripts/validate_evidence_manifest.py#_text_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "skills/iso-standards-readiness/scripts/_common.py#guarded_main",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#_text_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#_text_list",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#_text_list",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#profile_for",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#require_root_object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#main",
      "target": "skills/iso-standards-readiness/scripts/_common.py#standard_parser",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#main",
      "target": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.add",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.choice",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.controlled_item",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.date",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.object",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/_common.py#Review.unique_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#validate",
      "target": "skills/iso-standards-readiness/scripts/validate_scope_intake.py#_text_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_coerce",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_is_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_normalise_region",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_region_solids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#cylinder_census",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#format_check_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#intersection_volume",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_standards",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#main_guard",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#measure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_interfaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#normalise_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#normalise_interfaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#parse_params",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#run_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#sha256_of",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "build123d",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "OCP.BRepAdaptor",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#_normalise_region",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#cylinder_census",
      "target": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_region_solids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#intersection_volume",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#measure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_standards",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_parameters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#intersection_volume",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "target": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "target": "skills/lab-hardware-cad/scripts/_common.py#run_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#load_standards",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#main_guard",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#measure",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#model_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#normalise_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#model_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#normalise_interfaces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#normalise_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_normalise_region",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#normalise_checks",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#normalise_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#parse_params",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_coerce",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#parse_params",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#run_model",
      "target": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#run_model",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#run_model",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_parameters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "target": "skills/lab-hardware-cad/scripts/_common.py#_is_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "target": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#_evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#_min_distance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#_parse_floats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_bores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_clearance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_facts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_interfaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#cmd_standards",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "skills/lab-hardware-cad/scripts/check.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_interfaces",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#normalise_interfaces",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#_evaluate",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#_parse_floats",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_bores",
      "target": "skills/lab-hardware-cad/scripts/_common.py#cylinder_census",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_bores",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_clearance",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_clearance",
      "target": "skills/lab-hardware-cad/scripts/_common.py#intersection_volume",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_clearance",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_clearance",
      "target": "skills/lab-hardware-cad/scripts/check.py#_min_distance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_facts",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_facts",
      "target": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/_common.py#measure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_fit",
      "target": "skills/lab-hardware-cad/scripts/check.py#_evaluate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "target": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "target": "skills/lab-hardware-cad/scripts/_common.py#format_check_result",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "target": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_geometry",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_interfaces",
      "target": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_interfaces",
      "target": "skills/lab-hardware-cad/scripts/check.py#_declared_interfaces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_interfaces",
      "target": "skills/lab-hardware-cad/scripts/check.py#_evaluate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "target": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "target": "skills/lab-hardware-cad/scripts/_common.py#format_check_result",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "target": "skills/lab-hardware-cad/scripts/_common.py#normalise_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_probe",
      "target": "skills/lab-hardware-cad/scripts/check.py#_parse_floats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_standards",
      "target": "skills/lab-hardware-cad/scripts/_common.py#get_standard",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/check.py#cmd_standards",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_standards",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "skills/lab-hardware-cad/scripts/gen.py#_build123d_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "skills/lab-hardware-cad/scripts/gen.py#_export_dxf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "skills/lab-hardware-cad/scripts/gen.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "build123d.exporters",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#_export_dxf",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#evaluate_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#format_check_result",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#import_model",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_interfaces",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#model_parameters",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#parse_params",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#require_build123d",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#sha256_of",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#shape_facts",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/gen.py#_build123d_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/gen.py#main",
      "target": "skills/lab-hardware-cad/scripts/gen.py#_export_dxf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_edge_polylines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_require_matplotlib",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_shade",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_tessellate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_to_rgb",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_view_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "matplotlib.colors",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "mpl_toolkits.mplot3d.art3d",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#_require_matplotlib",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#_tessellate",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#eprint",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#LabCadError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/_common.py#load_shape",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_edge_polylines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_require_matplotlib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_shade",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_tessellate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_to_rgb",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/lab-hardware-cad/scripts/snapshot.py#main",
      "target": "skills/lab-hardware-cad/scripts/snapshot.py#_view_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_add_plan_options",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_dump",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_expires_ms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_load_credentials",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_secret",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_secret_fingerprint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#command_self_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#encode_eln_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#validate_eln_component",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#validate_inventory_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "getpass",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "hmac",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "setup_config",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_expires_ms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#validate_eln_component",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_expires_ms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#validate_inventory_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#build_parser",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_add_plan_options",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_load_credentials",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_secret_fingerprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#build_eln_auth_params",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#validate_eln_component",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_eln_plan",
      "target": "skills/labarchive-integration/scripts/setup_config.py#normalize_eln_api_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_load_credentials",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_secret_fingerprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#build_inventory_headers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_inventory_plan",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#validate_inventory_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_self_test",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_self_test",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_secret_fingerprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#command_self_test",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_expires_ms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_secret",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#create_signature",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#encode_eln_signature",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#main",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/entry_operations.py#main",
      "target": "skills/labarchive-integration/scripts/entry_operations.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_find_child",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_is_symlink",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_local_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_manifest_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_member_path_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_parse_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_write_json_safely",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#command_inspect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#InspectionError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "xml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_find_child",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_local_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_manifest_reference",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_find_child",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_manifest_reference",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_member_path_error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_parse_manifest",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_find_child",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_parse_manifest",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_local_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_parse_manifest",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_manifest_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#_write_json_safely",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#InspectionError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#command_inspect",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#command_inspect",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_write_json_safely",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#command_inspect",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_is_symlink",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_member_path_error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_parse_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#inspect_container",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#InspectionError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#InspectionError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#main",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#_emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/notebook_operations.py#main",
      "target": "skills/labarchive-integration/scripts/notebook_operations.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_dump",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_select_api_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#command_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#command_regions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#ConfigError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "skills/labarchive-integration/scripts/setup_config.py#normalize_eln_api_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "getpass",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#_select_api_url",
      "target": "skills/labarchive-integration/scripts/setup_config.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#_select_api_url",
      "target": "skills/labarchive-integration/scripts/setup_config.py#normalize_eln_api_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#command_check",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#command_check",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_present",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#command_check",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_select_api_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#command_regions",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#ConfigError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#main",
      "target": "skills/labarchive-integration/scripts/setup_config.py#_dump",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#main",
      "target": "skills/labarchive-integration/scripts/setup_config.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/labarchive-integration/scripts/setup_config.py#normalize_eln_api_url",
      "target": "skills/labarchive-integration/scripts/setup_config.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#build_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#has_required_failures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_methods",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_symbol",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#normalize_repr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#print_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#safe_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "inspect",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#build_report",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_methods",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#build_report",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_symbol",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_methods",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#normalize_repr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_methods",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#safe_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_symbol",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#normalize_repr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#inspect_symbol",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#safe_signature",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#main",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#build_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#main",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#has_required_failures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#main",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#print_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#safe_signature",
      "target": "skills/latchbio-integration/scripts/inspect_latch_sdk.py#normalize_repr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_score",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_verdict",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#main",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#main",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#main",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ReviewResult",
      "target": "NamedTuple",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/latex-posters/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "skills/latex-posters/scripts/generate_schematic.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "skills/latex-posters/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "skills/latex-posters/scripts/generate_schematic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "skills/latex-posters/scripts/generate_schematic.py#resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py#main",
      "target": "skills/latex-posters/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/latex-posters/scripts/generate_schematic.py#main",
      "target": "skills/latex-posters/scripts/generate_schematic.py#resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#_result_to_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#_text_item_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#iter_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#parse_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "liteparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py#_result_to_dict",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#_text_item_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py#main",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#iter_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py#main",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#parse_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/liteparse/scripts/batch_parse_dir.py#parse_one",
      "target": "skills/liteparse/scripts/batch_parse_dir.py#_result_to_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "skills/literature-review/scripts/generate_pdf.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "skills/literature-review/scripts/generate_pdf.py#check_dependencies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "skills/literature-review/scripts/generate_pdf.py#generate_pdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "skills/literature-review/scripts/generate_pdf.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py#main",
      "target": "skills/literature-review/scripts/generate_pdf.py#check_dependencies",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_pdf.py#main",
      "target": "skills/literature-review/scripts/generate_pdf.py#generate_pdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_score",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_verdict",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#main",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#main",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#main",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ReviewResult",
      "target": "NamedTuple",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/literature-review/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "skills/literature-review/scripts/generate_schematic.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "skills/literature-review/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "skills/literature-review/scripts/generate_schematic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "skills/literature-review/scripts/generate_schematic.py#resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py#main",
      "target": "skills/literature-review/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/generate_schematic.py#main",
      "target": "skills/literature-review/scripts/generate_schematic.py#resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#deduplicate_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#filter_by_year",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#format_search_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#generate_search_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "skills/literature-review/scripts/search_databases.py#rank_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py#main",
      "target": "skills/literature-review/scripts/search_databases.py#deduplicate_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py#main",
      "target": "skills/literature-review/scripts/search_databases.py#filter_by_year",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py#main",
      "target": "skills/literature-review/scripts/search_databases.py#format_search_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py#main",
      "target": "skills/literature-review/scripts/search_databases.py#generate_search_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/search_databases.py#main",
      "target": "skills/literature-review/scripts/search_databases.py#rank_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "skills/literature-review/scripts/verify_citations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "skills/literature-review/scripts/verify_citations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._extract_year",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._format_authors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._get_crossref_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.extract_dois",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.format_citation_apa",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.format_citation_nature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_citations_in_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._get_crossref_metadata",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._extract_year",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._get_crossref_metadata",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._format_authors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_citations_in_file",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.extract_dois",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_citations_in_file",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_doi",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier._get_crossref_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#main",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#main",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.format_citation_apa",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/literature-review/scripts/verify_citations.py#main",
      "target": "skills/literature-review/scripts/verify_citations.py#CitationVerifier.verify_citations_in_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#error_exit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#parse_fraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#parse_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#read_csv_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#require_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#require_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#require_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#safe_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#safe_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#split_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "skills/market-research-reports/scripts/_common.py#write_json_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "target": "skills/market-research-reports/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_fraction",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_iso_date",
      "target": "skills/market-research-reports/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_iso_date",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_number",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#parse_year",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#read_csv_records",
      "target": "skills/market-research-reports/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#read_csv_records",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#read_json",
      "target": "skills/market-research-reports/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#read_json",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#require_identifier",
      "target": "skills/market-research-reports/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#require_identifier",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#require_list",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#require_object",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#require_text",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#safe_input_path",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#safe_output_path",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#split_ids",
      "target": "skills/market-research-reports/scripts/_common.py#require_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#split_ids",
      "target": "skills/market-research-reports/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#split_ids",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#split_ids",
      "target": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/_common.py#write_json_report",
      "target": "skills/market-research-reports/scripts/_common.py#safe_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#_load_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#_source_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#_source_index",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "target": "skills/market-research-reports/scripts/_common.py#split_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#_source_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#main",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#_load_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#main",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/audit_claim_citations.py#main",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_identifier_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_scenarios",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_top_down",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "target": "skills/market-research-reports/scripts/_common.py#parse_fraction",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_identifier_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_identifier_array",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_metadata",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_metadata",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_scenarios",
      "target": "skills/market-research-reports/scripts/_common.py#parse_fraction",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_scenarios",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_scenarios",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_identifier_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_top_down",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_top_down",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#_top_down",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_identifier_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_bottom_up",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_scenarios",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#_top_down",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#main",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/calculate_market_sizing.py#main",
      "target": "skills/market-research-reports/scripts/calculate_market_sizing.py#calculate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "skills/market-research-reports/scripts/check_unit_consistency.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "skills/market-research-reports/scripts/check_unit_consistency.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "skills/market-research-reports/scripts/check_unit_consistency.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py#main",
      "target": "skills/market-research-reports/scripts/check_unit_consistency.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/check_unit_consistency.py#main",
      "target": "skills/market-research-reports/scripts/check_unit_consistency.py#check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_cagr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_project",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_rate_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#_identifiers",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#_metadata",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#_metadata",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#_metadata",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_identifiers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#_rate_path",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/_common.py#parse_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_cagr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_identifiers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_project",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#_rate_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#main",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/forecast_sensitivity.py#main",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_one_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_period",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_safe_new_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_string_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_write_csv_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#_period",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#generate",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_one_line",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#generate",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_safe_new_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#generate",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_write_csv_header",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#main",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#main",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#main",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_period",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/generate_report_scaffold.py#validate_manifest",
      "target": "skills/market-research-reports/scripts/generate_report_scaffold.py#_string_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#_source_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py#main",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#_source_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py#main",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py#main",
      "target": "skills/market-research-reports/scripts/validate_competitor_matrix.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_competitor_matrix.py#validate",
      "target": "skills/market-research-reports/scripts/_common.py#split_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_archive_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_load_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_publication_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_publication_date",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#main",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#main",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#main",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "target": "skills/market-research-reports/scripts/_common.py#parse_currency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "target": "skills/market-research-reports/scripts/_common.py#parse_year",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "target": "skills/market-research-reports/scripts/_common.py#require_unique_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_archive_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_publication_date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#atomic_write_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#ConversionRecord",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#convert_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#discover_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#normalize_extensions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#output_path_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "skills/markitdown/scripts/batch_convert.py#write_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "markitdown",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#convert_one",
      "target": "skills/markitdown/scripts/batch_convert.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#convert_one",
      "target": "skills/markitdown/scripts/batch_convert.py#ConversionRecord",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#convert_one",
      "target": "skills/markitdown/scripts/batch_convert.py#output_path_for",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#main",
      "target": "skills/markitdown/scripts/batch_convert.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#main",
      "target": "skills/markitdown/scripts/batch_convert.py#convert_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#main",
      "target": "skills/markitdown/scripts/batch_convert.py#discover_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#main",
      "target": "skills/markitdown/scripts/batch_convert.py#normalize_extensions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#main",
      "target": "skills/markitdown/scripts/batch_convert.py#write_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/batch_convert.py#write_manifest",
      "target": "skills/markitdown/scripts/batch_convert.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#atomic_write_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#create_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#digest_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#escape_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#humanize_filename_component",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#infer_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#LiteratureRecord",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#output_path_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#render_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "skills/markitdown/scripts/convert_literature.py#yaml_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "markitdown",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "target": "skills/markitdown/scripts/convert_literature.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "target": "skills/markitdown/scripts/convert_literature.py#digest_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "target": "skills/markitdown/scripts/convert_literature.py#infer_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "target": "skills/markitdown/scripts/convert_literature.py#LiteratureRecord",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "target": "skills/markitdown/scripts/convert_literature.py#output_path_for",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "target": "skills/markitdown/scripts/convert_literature.py#render_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#create_index",
      "target": "skills/markitdown/scripts/convert_literature.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#create_index",
      "target": "skills/markitdown/scripts/convert_literature.py#escape_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#infer_metadata",
      "target": "skills/markitdown/scripts/convert_literature.py#humanize_filename_component",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#main",
      "target": "skills/markitdown/scripts/convert_literature.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#main",
      "target": "skills/markitdown/scripts/convert_literature.py#convert_paper",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#main",
      "target": "skills/markitdown/scripts/convert_literature.py#create_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/convert_literature.py#render_document",
      "target": "skills/markitdown/scripts/convert_literature.py#yaml_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "skills/markitdown/scripts/inspect_installation.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "skills/markitdown/scripts/inspect_installation.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "skills/markitdown/scripts/inspect_installation.py#distribution_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "skills/markitdown/scripts/inspect_installation.py#inspect_installation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "skills/markitdown/scripts/inspect_installation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "skills/markitdown/scripts/inspect_installation.py#print_human_readable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "markitdown",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py#inspect_installation",
      "target": "skills/markitdown/scripts/inspect_installation.py#distribution_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py#main",
      "target": "skills/markitdown/scripts/inspect_installation.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py#main",
      "target": "skills/markitdown/scripts/inspect_installation.py#inspect_installation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/markitdown/scripts/inspect_installation.py#main",
      "target": "skills/markitdown/scripts/inspect_installation.py#print_human_readable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#choose_score_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#create_metric",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#create_processor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#installed_matchms_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#load_and_process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#matched_peaks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#metadata_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#numeric_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#spectrum_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#validate_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "skills/matchms/scripts/library_search.py#write_hits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "matchms",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "matchms.filtering",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "matchms.importing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "matchms.similarity",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#main",
      "target": "skills/matchms/scripts/library_search.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#main",
      "target": "skills/matchms/scripts/library_search.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#run",
      "target": "skills/matchms/scripts/library_search.py#create_metric",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#run",
      "target": "skills/matchms/scripts/library_search.py#create_processor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#run",
      "target": "skills/matchms/scripts/library_search.py#installed_matchms_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#run",
      "target": "skills/matchms/scripts/library_search.py#load_and_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#run",
      "target": "skills/matchms/scripts/library_search.py#validate_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#run",
      "target": "skills/matchms/scripts/library_search.py#write_hits",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#write_hits",
      "target": "skills/matchms/scripts/library_search.py#choose_score_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#write_hits",
      "target": "skills/matchms/scripts/library_search.py#matched_peaks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#write_hits",
      "target": "skills/matchms/scripts/library_search.py#metadata_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#write_hits",
      "target": "skills/matchms/scripts/library_search.py#numeric_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matchms/scripts/library_search.py#write_hits",
      "target": "skills/matchms/scripts/library_search.py#spectrum_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#_raw_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#_reject_duplicate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#_reject_symlink_chain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#_validate_json_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#checked_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#checked_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#fail_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#parse_json_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#read_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#read_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#validate_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#validate_release",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "skills/matlab/scripts/_common.py#write_new_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#_raw_path",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#_reject_duplicate_keys",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#_reject_symlink_chain",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#_validate_json_shape",
      "target": "skills/matlab/scripts/_common.py#_validate_json_shape",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#_validate_json_shape",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#bounded_int",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_input",
      "target": "skills/matlab/scripts/_common.py#_raw_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_input",
      "target": "skills/matlab/scripts/_common.py#_reject_symlink_chain",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_input",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_output",
      "target": "skills/matlab/scripts/_common.py#_raw_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_output",
      "target": "skills/matlab/scripts/_common.py#_reject_symlink_chain",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_output",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_root",
      "target": "skills/matlab/scripts/_common.py#_raw_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_root",
      "target": "skills/matlab/scripts/_common.py#_reject_symlink_chain",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#checked_root",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/_common.py#fail_json",
      "target": "skills/matlab/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#load_json",
      "target": "skills/matlab/scripts/_common.py#parse_json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#load_json",
      "target": "skills/matlab/scripts/_common.py#read_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#parse_json_text",
      "target": "skills/matlab/scripts/_common.py#_validate_json_shape",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#parse_json_text",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#read_bytes",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#read_text",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#read_text",
      "target": "skills/matlab/scripts/_common.py#read_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#sha256_file",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#validate_identifier",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#validate_release",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/_common.py#write_new_text",
      "target": "skills/matlab/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#_title_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#function_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#test_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#_title_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#function_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#test_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#main",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/generate_function_scaffold.py#main",
      "target": "skills/matlab/scripts/generate_function_scaffold.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#_redacted_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#identify_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "skills/matlab/scripts/inventory_mat_file.py#scipy_inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.append_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.append_record",
      "target": "skills/matlab/scripts/inventory_mat_file.py#_redacted_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.walk",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.append_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.walk",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#hdf5_inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#identify_header",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#scipy_inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#main",
      "target": "skills/matlab/scripts/inventory_mat_file.py#inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#main",
      "target": "skills/matlab/scripts/inventory_mat_file.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/inventory_mat_file.py#scipy_inventory",
      "target": "skills/matlab/scripts/inventory_mat_file.py#_redacted_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#_executable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#_numeric_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "skills/matlab/scripts/plan_batch_command.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#_numeric_row",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "target": "skills/matlab/scripts/_common.py#parse_json_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "target": "skills/matlab/scripts/plan_batch_command.py#_executable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#main",
      "target": "skills/matlab/scripts/plan_batch_command.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#main",
      "target": "skills/matlab/scripts/plan_batch_command.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "target": "skills/matlab/scripts/plan_batch_command.py#_numeric_row",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_batch_command.py#matlab_literal",
      "target": "skills/matlab/scripts/plan_batch_command.py#matlab_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#compatibility_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#normalize_python",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py#main",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py#main",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py#plan",
      "target": "skills/matlab/scripts/_common.py#validate_release",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py#plan",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#compatibility_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/plan_python_compatibility.py#plan",
      "target": "skills/matlab/scripts/plan_python_compatibility.py#normalize_python",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#_finite_nonnegative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#_named_fact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#_runtime_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#build",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "skills/matlab/scripts/reproducibility_report.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#_runtime_version",
      "target": "skills/matlab/scripts/_common.py#validate_release",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#build",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#build",
      "target": "skills/matlab/scripts/reproducibility_report.py#_finite_nonnegative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#build",
      "target": "skills/matlab/scripts/reproducibility_report.py#_named_fact",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#build",
      "target": "skills/matlab/scripts/reproducibility_report.py#_runtime_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#main",
      "target": "skills/matlab/scripts/reproducibility_report.py#build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/reproducibility_report.py#main",
      "target": "skills/matlab/scripts/reproducibility_report.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#_opaque_finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#_without_comments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#collect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#scan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "skills/matlab/scripts/scan_m_code.py#scan_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#_opaque_finding",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#main",
      "target": "skills/matlab/scripts/scan_m_code.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#main",
      "target": "skills/matlab/scripts/scan_m_code.py#scan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#scan",
      "target": "skills/matlab/scripts/scan_m_code.py#_opaque_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#scan",
      "target": "skills/matlab/scripts/scan_m_code.py#collect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#scan",
      "target": "skills/matlab/scripts/scan_m_code.py#scan_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#scan_source",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/scan_m_code.py#scan_source",
      "target": "skills/matlab/scripts/scan_m_code.py#_without_comments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_validate_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_validate_product",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#_validate_path",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#_validate_path",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#_validate_product",
      "target": "skills/matlab/scripts/_common.py#validate_release",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#_validate_product",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#main",
      "target": "skills/matlab/scripts/validate_project_manifest.py#parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#main",
      "target": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "target": "skills/matlab/scripts/_common.py#relative_id",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "target": "skills/matlab/scripts/_common.py#validate_release",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_validate_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matlab/scripts/validate_project_manifest.py#validate",
      "target": "skills/matlab/scripts/validate_project_manifest.py#_validate_product",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_3d_plot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_bar_chart",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_box_plot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_contour_plot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_heatmap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_histogram",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_line_plot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_scatter_plot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#create_violin_plot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#generate_sample_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "skills/matplotlib/scripts/plot_template.py#set_publication_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "matplotlib.gridspec",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py",
      "target": "scipy.stats",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_bar_chart",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_box_plot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_contour_plot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_heatmap",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_histogram",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_line_plot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#create_scatter_plot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "target": "skills/matplotlib/scripts/plot_template.py#generate_sample_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#main",
      "target": "skills/matplotlib/scripts/plot_template.py#create_3d_plot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#main",
      "target": "skills/matplotlib/scripts/plot_template.py#create_comprehensive_figure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#main",
      "target": "skills/matplotlib/scripts/plot_template.py#generate_sample_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/plot_template.py#main",
      "target": "skills/matplotlib/scripts/plot_template.py#set_publication_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#create_style_preview",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#generate_preview_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#interactive_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#list_available_presets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#print_style_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "skills/matplotlib/scripts/style_configurator.py#save_style_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py",
      "target": "matplotlib.gridspec",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#create_style_preview",
      "target": "skills/matplotlib/scripts/style_configurator.py#generate_preview_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#interactive_mode",
      "target": "skills/matplotlib/scripts/style_configurator.py#list_available_presets",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#main",
      "target": "skills/matplotlib/scripts/style_configurator.py#create_style_preview",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#main",
      "target": "skills/matplotlib/scripts/style_configurator.py#interactive_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#main",
      "target": "skills/matplotlib/scripts/style_configurator.py#list_available_presets",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#main",
      "target": "skills/matplotlib/scripts/style_configurator.py#print_style_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/matplotlib/scripts/style_configurator.py#main",
      "target": "skills/matplotlib/scripts/style_configurator.py#save_style_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_alert_catalog",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_common_alerts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_complexity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_groups",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_lilly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_nibr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_rule_filters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#generate_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#load_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "skills/medchem/scripts/filter_molecules.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "tqdm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_alert_catalog",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_common_alerts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_complexity",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_groups",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_lilly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_nibr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#apply_rule_filters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#generate_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/medchem/scripts/filter_molecules.py#main",
      "target": "skills/medchem/scripts/filter_molecules.py#load_molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_add_network_policy_options",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_add_query_common",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_apply_service_to_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_classify_logs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_headers_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_is_timeout_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_json_from_http",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_looks_like_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_normalize_node_bindings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_open_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_origin",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_parse_kp_parameter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_preflight_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_provider_parameter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_require_exact_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_resource_ids_for_role",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_response_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_retry_delay",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_unique",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_utc_now",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_validate_query_response_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_version_series",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_operations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_query_edge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#extract_publications",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#HttpResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#make_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#new_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#NormalizationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#normalize_entity_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#QueryContract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#read_bounded_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#RejectRepeatedValueAction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#serialize_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#sha256_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#TransportError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_result_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "email.utils",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "ipaddress",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "socket",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py",
      "target": "uuid",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_add_query_common",
      "target": "skills/ncats-arax/scripts/arax_client.py#_add_network_policy_options",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "target": "skills/ncats-arax/scripts/arax_client.py#make_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_apply_service_to_manifest",
      "target": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo.as_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "target": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "target": "skills/ncats-arax/scripts/arax_client.py#_version_series",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "target": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_classify_logs",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_classify_logs",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "target": "skills/ncats-arax/scripts/arax_client.py#_decode_json.reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_json_from_http",
      "target": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_looks_like_curie",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_normalize_node_bindings",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_open_url",
      "target": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_parse_kp_parameter",
      "target": "skills/ncats-arax/scripts/arax_client.py#_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_parse_kp_parameter",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_parse_kp_parameter",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_preflight_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#_version_series",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_preflight_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo.as_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#sha256_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_require_exact_keys",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "target": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "target": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "target": "skills/ncats-arax/scripts/arax_client.py#HttpResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_unique",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#_require_exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_validate_query_response_version",
      "target": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "target": "skills/ncats-arax/scripts/arax_client.py#_utc_now",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_operations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_query_edge",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_one_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_operations",
      "target": "skills/ncats-arax/scripts/arax_client.py#_provider_parameter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_parser",
      "target": "skills/ncats-arax/scripts/arax_client.py#_add_network_policy_options",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_parser",
      "target": "skills/ncats-arax/scripts/arax_client.py#_add_query_common",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_operations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_query_edge",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#build_two_hop_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "target": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "target": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "target": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_apply_service_to_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_build_from_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_json_from_http",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_validate_query_response_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#new_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#serialize_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#sha256_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_apply_service_to_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_json_from_http",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#new_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#NormalizationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#normalize_entity_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#_apply_service_to_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#_preflight_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#_record_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#_retain_failure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#_write_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#atomic_write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#fetch_openapi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#new_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_decode_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#_validate_query_response_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#main",
      "target": "skills/ncats-arax/scripts/arax_client.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#main",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_graph_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#main",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_normalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#main",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_preflight",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#main",
      "target": "skills/ncats-arax/scripts/arax_client.py#handle_summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#main",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#make_warning",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#new_manifest",
      "target": "skills/ncats-arax/scripts/arax_client.py#_utc_now",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#NormalizationError",
      "target": "skills/ncats-arax/scripts/arax_client.py#NormalizationError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#NormalizationError",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#normalize_entity_request",
      "target": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_looks_like_curie",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#make_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_normalization_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo.as_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "target": "skills/ncats-arax/scripts/arax_client.py#_check_trapi_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "target": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_openapi_service_info",
      "target": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "target": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_qualifiers",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_classify_logs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_normalize_node_bindings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_resource_ids_for_role",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#extract_publications",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#parse_trapi_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_headers_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_open_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_response_status",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#HttpResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#read_bounded_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#post_query",
      "target": "skills/ncats-arax/scripts/arax_client.py#TransportError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "target": "skills/ncats-arax/scripts/arax_client.py#PreflightError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#prepare_output_directory",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#read_bounded_response",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#RejectRepeatedValueAction",
      "target": "skills/ncats-arax/scripts/arax_client.py#RejectRepeatedValueAction.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered_list",
      "target": "skills/ncats-arax/scripts/arax_client.py#render_text_summary.rendered",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#_headers_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#_is_timeout_error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#_open_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#_response_status",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#_retry_delay",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#HttpResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#read_bounded_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#request_get_with_retry",
      "target": "skills/ncats-arax/scripts/arax_client.py#TransportError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "target": "skills/ncats-arax/scripts/arax_client.py#_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#resolve_mode",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_result_limit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "target": "skills/ncats-arax/scripts/arax_client.py#ResponseError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#ResponseError",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler",
      "target": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler.redirect_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#SameOriginHttpsRedirectHandler.redirect_request",
      "target": "skills/ncats-arax/scripts/arax_client.py#_origin",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#serialize_request",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo",
      "target": "skills/ncats-arax/scripts/arax_client.py#ServiceInfo.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#TransportError",
      "target": "skills/ncats-arax/scripts/arax_client.py#TransportError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#TransportError",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "target": "skills/ncats-arax/scripts/arax_client.py#AraxClientError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "target": "skills/ncats-arax/scripts/arax_client.py#_append_warning",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "target": "skills/ncats-arax/scripts/arax_client.py#PreflightError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_base_url",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "target": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "target": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "target": "skills/ncats-arax/scripts/arax_client.py#_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_predicates",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "target": "skills/ncats-arax/scripts/arax_client.py#_has_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "target": "skills/ncats-arax/scripts/arax_client.py#_sanitize_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_provider_id",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_result_limit",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#_parse_kp_parameter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#_require_exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#_validate_edge_contract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#QueryContract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#UsageError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_biolink_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_curie",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ncats-arax/scripts/arax_client.py#validate_saved_request_contract",
      "target": "skills/ncats-arax/scripts/arax_client.py#validate_result_limit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_absolute_lexical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_format_csv_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_read_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_reject_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_suffix_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#_within_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#csv_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#dataframe_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#json_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#parse_name_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#sha256_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#strict_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "skills/neurokit2/scripts/_common.py#write_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_format_csv_value",
      "target": "skills/neurokit2/scripts/_common.py#_format_csv_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_format_csv_value",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_read_header",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_reject_constant",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "target": "skills/neurokit2/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_reject_url",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_unique_object",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#_within_root",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#atomic_write_bytes",
      "target": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#atomic_write_bytes",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#bounded_int",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#_reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#_suffix_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#_reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#_suffix_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_output_file",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_root",
      "target": "skills/neurokit2/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_root",
      "target": "skills/neurokit2/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_root",
      "target": "skills/neurokit2/scripts/_common.py#_reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#checked_root",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#csv_bytes",
      "target": "skills/neurokit2/scripts/_common.py#_format_csv_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#csv_bytes",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#emit_json",
      "target": "skills/neurokit2/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#emit_json",
      "target": "skills/neurokit2/scripts/_common.py#strict_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#finite_float",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#load_json_object",
      "target": "skills/neurokit2/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#load_json_object",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#parse_name_list",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "target": "skills/neurokit2/scripts/_common.py#_read_header",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#strict_json_bytes",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#validate_keys",
      "target": "skills/neurokit2/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#write_csv",
      "target": "skills/neurokit2/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/_common.py#write_csv",
      "target": "skills/neurokit2/scripts/_common.py#csv_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_artifact_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_row_to_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_row_to_json",
      "target": "skills/neurokit2/scripts/_common.py#json_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_summary",
      "target": "skills/neurokit2/scripts/_common.py#json_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#dataframe_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_artifact_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_row_to_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#main",
      "target": "skills/neurokit2/scripts/ecg_hrv_pipeline.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#_finite_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#_finite_values",
      "target": "skills/neurokit2/scripts/_common.py#json_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#_stats",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#_finite_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#dataframe_rows",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#json_number",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#_finite_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#_stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/eda_pipeline.py#main",
      "target": "skills/neurokit2/scripts/eda_pipeline.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#_event_times",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#_gaussian",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#generate_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py#generate_rows",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#_event_times",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py#generate_rows",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#_gaussian",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py#main",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/generate_synthetic.py#main",
      "target": "skills/neurokit2/scripts/generate_synthetic.py#generate_rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "skills/neurokit2/scripts/inspect_signal.py#_parse_units",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "skills/neurokit2/scripts/inspect_signal.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "skills/neurokit2/scripts/inspect_signal.py#inspect_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "skills/neurokit2/scripts/inspect_signal.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#inspect_csv",
      "target": "skills/neurokit2/scripts/inspect_signal.py#_parse_units",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#inspect_csv",
      "target": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#main",
      "target": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#main",
      "target": "skills/neurokit2/scripts/inspect_signal.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#main",
      "target": "skills/neurokit2/scripts/inspect_signal.py#inspect_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats",
      "target": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats",
      "target": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats.add_cell",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats",
      "target": "skills/neurokit2/scripts/inspect_signal.py#OnlineStats.report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_event_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_parse_events",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_sample_offset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "skills/neurokit2/scripts/plan_epochs.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "skills/neurokit2/scripts/plan_epochs.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "skills/neurokit2/scripts/plan_epochs.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#_event_samples",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_sample_offset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#main",
      "target": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#main",
      "target": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#main",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_event_samples",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#main",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_parse_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#main",
      "target": "skills/neurokit2/scripts/plan_epochs.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#main",
      "target": "skills/neurokit2/scripts/plan_epochs.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/plan_epochs.py#plan",
      "target": "skills/neurokit2/scripts/plan_epochs.py#_sample_offset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#_stream_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#validate_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py#_stream_profile",
      "target": "skills/neurokit2/scripts/_common.py#read_numeric_columns",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py#main",
      "target": "skills/neurokit2/scripts/_common.py#require_deidentified",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py#main",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py#main",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#validate_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neurokit2/scripts/validate_multimodal.py#validate_manifest",
      "target": "skills/neurokit2/scripts/validate_multimodal.py#_stream_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/assets/analysis_template.py",
      "target": "skills/neuropixels-analysis/assets/analysis_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/assets/analysis_template.py",
      "target": "skills/neuropixels-analysis/assets/analysis_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/assets/analysis_template.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/assets/analysis_template.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/assets/analysis_template.py",
      "target": "spikeinterface.exporters",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "target": "skills/neuropixels-analysis/scripts/compute_metrics.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "target": "skills/neuropixels-analysis/scripts/compute_metrics.py#compute_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "target": "skills/neuropixels-analysis/scripts/compute_metrics.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/compute_metrics.py#main",
      "target": "skills/neuropixels-analysis/scripts/compute_metrics.py#compute_metrics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#explore_recording",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_power_spectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_probe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_traces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#explore_recording",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_power_spectrum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_probe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "skills/neuropixels-analysis/scripts/explore_recording.py#plot_traces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/explore_recording.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "target": "skills/neuropixels-analysis/scripts/export_to_phy.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "target": "skills/neuropixels-analysis/scripts/export_to_phy.py#export_phy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "target": "skills/neuropixels-analysis/scripts/export_to_phy.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py",
      "target": "spikeinterface.exporters",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/export_to_phy.py#main",
      "target": "skills/neuropixels-analysis/scripts/export_to_phy.py#export_phy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#check_drift",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#correct_motion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#curate_units",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#export_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#load_recording",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#postprocess",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#preprocess",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_spike_sorting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "spikeinterface.sortingcomponents.peak_detection",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py",
      "target": "spikeinterface.sortingcomponents.peak_localization",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#check_drift",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#correct_motion",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#curate_units",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#export_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#load_recording",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#postprocess",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#preprocess",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_pipeline",
      "target": "skills/neuropixels-analysis/scripts/neuropixels_pipeline.py#run_spike_sorting",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "target": "skills/neuropixels-analysis/scripts/preprocess_recording.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "target": "skills/neuropixels-analysis/scripts/preprocess_recording.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "target": "skills/neuropixels-analysis/scripts/preprocess_recording.py#preprocess_recording",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py",
      "target": "probeinterface",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/preprocess_recording.py#main",
      "target": "skills/neuropixels-analysis/scripts/preprocess_recording.py#preprocess_recording",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "target": "skills/neuropixels-analysis/scripts/run_sorting.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "target": "skills/neuropixels-analysis/scripts/run_sorting.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "target": "skills/neuropixels-analysis/scripts/run_sorting.py#run_sorting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/run_sorting.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/neuropixels-analysis/scripts/run_sorting.py#main",
      "target": "skills/neuropixels-analysis/scripts/run_sorting.py#run_sorting",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#annotation_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#owner_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#positive_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#redaction_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#scope_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#shape_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "omero_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#annotation_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#annotation_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#annotation_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#owner_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#annotation_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "target": "skills/omero-integration/scripts/omero_common.py#take_bounded",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#export_one_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#redaction_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#scope_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#scrubbed_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "target": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "target": "skills/omero-integration/scripts/omero_common.py#unwrap_omero",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#owner_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#owner_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#shape_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#roi_record",
      "target": "skills/omero-integration/scripts/omero_common.py#take_bounded",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#shape_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#call_or_none",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/export_image_metadata.py#shape_record",
      "target": "skills/omero-integration/scripts/export_image_metadata.py#normalized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#call_or_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#collect_inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#dry_run_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#object_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "skills/omero-integration/scripts/inventory.py#positive_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "omero_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#collect_inventory",
      "target": "skills/omero-integration/scripts/inventory.py#object_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#dry_run_payload",
      "target": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/inventory.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/inventory.py#collect_inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/inventory.py#dry_run_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#scrubbed_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#object_record",
      "target": "skills/omero-integration/scripts/inventory.py#call_or_none",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/inventory.py#object_record",
      "target": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#atomic_write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#BoundedResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#ConnectionConfig",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#DependencyError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#OutputPathError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#parse_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#parse_port",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#require_secure_transport",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#scrubbed_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#take_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#unwrap_omero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "skills/omero-integration/scripts/omero_common.py#validate_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "omero.gateway",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#atomic_write_json",
      "target": "skills/omero-integration/scripts/omero_common.py#OutputPathError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#ConnectionConfig",
      "target": "skills/omero-integration/scripts/omero_common.py#ConnectionConfig.authentication_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#DependencyError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#emit_json",
      "target": "skills/omero-integration/scripts/omero_common.py#atomic_write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "target": "skills/omero-integration/scripts/omero_common.py#DependencyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#gateway_session",
      "target": "skills/omero-integration/scripts/omero_common.py#require_secure_transport",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "target": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "target": "skills/omero-integration/scripts/omero_common.py#unwrap_omero",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "target": "skills/omero-integration/scripts/omero_common.py#ConnectionConfig",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "target": "skills/omero-integration/scripts/omero_common.py#parse_bool",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "target": "skills/omero-integration/scripts/omero_common.py#parse_port",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "target": "skills/omero-integration/scripts/omero_common.py#validate_host",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#OutputPathError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#parse_bool",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#parse_port",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#require_secure_transport",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#take_bounded",
      "target": "skills/omero-integration/scripts/omero_common.py#BoundedResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/omero_common.py#validate_host",
      "target": "skills/omero-integration/scripts/omero_common.py#ConfigError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#image_selector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#import_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#path_depth",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#plan_export",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#plan_import",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#positive_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#scan_import_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "skills/omero-integration/scripts/plan_transfer.py#validated_output_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "omero_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#scrubbed_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#main",
      "target": "skills/omero-integration/scripts/plan_transfer.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#main",
      "target": "skills/omero-integration/scripts/plan_transfer.py#plan_export",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#main",
      "target": "skills/omero-integration/scripts/plan_transfer.py#plan_import",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#plan_export",
      "target": "skills/omero-integration/scripts/plan_transfer.py#validated_output_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#plan_import",
      "target": "skills/omero-integration/scripts/plan_transfer.py#scan_import_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/plan_transfer.py#scan_import_path",
      "target": "skills/omero-integration/scripts/plan_transfer.py#path_depth",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "skills/omero-integration/scripts/validate_config.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "skills/omero-integration/scripts/validate_config.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "skills/omero-integration/scripts/validate_config.py#format_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "skills/omero-integration/scripts/validate_config.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "skills/omero-integration/scripts/validate_config.py#resolve_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "omero_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "socket",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py#main",
      "target": "skills/omero-integration/scripts/omero_common.py#scrubbed_error",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py#main",
      "target": "skills/omero-integration/scripts/validate_config.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py#main",
      "target": "skills/omero-integration/scripts/validate_config.py#format_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/omero-integration/scripts/validate_config.py#main",
      "target": "skills/omero-integration/scripts/validate_config.py#resolve_host",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_add_annotation_flags",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_chr_to_str",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_filters_echo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_parse_region_str",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_one_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_save_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_split_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_variant_to_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zygosity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants_in_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants_in_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "dnaerys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_split_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_parse_region_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_save_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_filters_echo",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_split_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_one_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_region_one_label",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_chr_to_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_filters_echo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_one_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zygosity",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_chr_to_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_variant_to_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zygosity",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#_variant_to_dict",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_chr_to_str",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#build_parser",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_add_annotation_flags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zygosity",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_samples_hom_ref.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants_in_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_count_variants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_count_variants_in_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_split_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_dataset_info.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_kinship.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_annotation_filter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_build_regions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_region_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_request_echo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zyg_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_zygosity",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_call_with_retry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_samples_hom_ref.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants_in_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_run_select_variants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#cmd_select_variants_in_samples",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_split_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#main",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_api.py#main",
      "target": "skills/onekgpd/scripts/onekgpd_api.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_children_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_none_if_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_none_if_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_population_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_save_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_split_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_stats_obj",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_pop_lower",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_reg_lower",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_populations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_superpopulations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "gzip",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#_children_index",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_present",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_save_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_present",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_populations",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_populations",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_superpopulations",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_list_superpopulations",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_population_stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_stats_obj",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_population_stats",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_pop_lower",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_children_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_none_if_absent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_none_if_empty",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_sample_metadata",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_split_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_pop_lower",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_reg_lower",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population.match",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_select_samples_by_population.match",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_emit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_population_stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_stats_obj",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#cmd_superpopulation_summary",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_valid_reg_lower",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#main",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/onekgpd/scripts/onekgpd_meta.py#main",
      "target": "skills/onekgpd/scripts/onekgpd_meta.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#_detail_from_body",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#apply_uri_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#classify_prefix_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#compact_id_from_identifiers_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#get_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#get_resource",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#identifiers_landing_pages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#identifiers_resolver_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#IdError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#is_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#landing_page_urls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#local_matches_pattern",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#ontobee_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#resolve_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#split_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#_detail_from_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#IdError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#classify_prefix_query",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#apply_uri_format",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#classify_prefix_query",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#local_matches_pattern",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#classify_prefix_query",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#split_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#get_reference",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#get_resource",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#IdError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#landing_page_urls",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#ontobee_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#NotFoundError",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#IdError",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#resolve_identifiers",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#identifiers_resolver_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/id_client.py#resolve_identifiers",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#IdError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#read_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#write_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "id_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#classify_prefix_query",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#compact_id_from_identifiers_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#get_reference",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#get_resource",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#is_prefix",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#landing_page_urls",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#resolve_identifiers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "target": "skills/ontology-term-resolution/scripts/id_client.py#split_query",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#lookup_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#read_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/lookup_prefix.py#main",
      "target": "skills/ontology-term-resolution/scripts/lookup_prefix.py#write_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#map_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#read_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#to_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#write_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py",
      "target": "zooma_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#map_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#read_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#write_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#map_one",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#annotate",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#map_one",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#flatten_hit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/map_terms.py#write_output",
      "target": "skills/ontology-term-resolution/scripts/map_terms.py#to_rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#_terms_by_iri",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#ancestor_curies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#candidate_iris",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#curie_to_ontology_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#dedupe_candidates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#iri_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#iri_to_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#is_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#match_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#normalize_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#rank_candidates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#synonyms_of",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#_request",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#_terms_by_iri",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#_terms_by_iri",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#ancestor_curies",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#ancestor_curies",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#iri_for",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#match_type",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#normalize_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#match_type",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#synonyms_of",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#rank_candidates",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#dedupe_candidates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#rank_candidates",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#match_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#search",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#_terms_by_iri",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#candidate_iris",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#curie_to_ontology_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#OlsError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#read_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#resolve_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#to_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#write_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "ols_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#iri_for",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#is_curie",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#read_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#resolve_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#write_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#resolve_one",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#rank_candidates",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#resolve_one",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#search",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/resolve_terms.py#write_output",
      "target": "skills/ontology-term-resolution/scripts/resolve_terms.py#to_rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#read_pairs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#write_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "ols_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#ancestor_curies",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#iri_to_curie",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#is_curie",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#normalize_label",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#synonyms_of",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#term_detail",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#is_curie",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#check_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#read_pairs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/validate_terms.py#main",
      "target": "skills/ontology-term-resolution/scripts/validate_terms.py#write_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#annotate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#flatten_hit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#ontology_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#ZoomaError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "ols_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py#annotate",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#ontology_filter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py#annotate",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#ZoomaError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py#flatten_hit",
      "target": "skills/ontology-term-resolution/scripts/ols_client.py#iri_to_curie",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py#ontology_filter",
      "target": "skills/ontology-term-resolution/scripts/zooma_client.py#ZoomaError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/ontology-term-resolution/scripts/zooma_client.py#ZoomaError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#ask_question",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#create_chat_session",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#delete_chat_session",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#get_session_history",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#search_knowledge_base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#send_chat_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#ask_question",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#build_context",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#create_chat_session",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#delete_chat_session",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#get_session_history",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#list_chat_sessions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#search_knowledge_base",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "skills/open-notebook/scripts/chat_interaction.py#send_chat_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/chat_interaction.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#create_notebook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#delete_notebook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#list_notebooks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#update_notebook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#create_notebook",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#delete_notebook",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#get_notebook",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#link_source_to_notebook",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#list_notebooks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#unlink_source_from_notebook",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "skills/open-notebook/scripts/notebook_management.py#update_notebook",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/notebook_management.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#add_text_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#add_url_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#delete_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#list_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#wait_for_processing",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#add_text_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#add_url_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#delete_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#get_source_insights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#list_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#retry_failed_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#upload_file_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "skills/open-notebook/scripts/source_ingestion.py#wait_for_processing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/open-notebook/scripts/source_ingestion.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer._steps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.axis_signs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_statistics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_strain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_vorticity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.get_velocity_magnitude",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.grid_spacing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.plot_vector_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_strain",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer._steps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_vorticity",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer._steps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "skills/openpiv/scripts/run_example.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "skills/openpiv/scripts/run_example.py#bundled_image_pair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "skills/openpiv/scripts/run_example.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "analyze",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "openpiv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "runner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py#main",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py#main",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_statistics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py#main",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.compute_vorticity",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py#main",
      "target": "skills/openpiv/scripts/analyze.py#PIVAnalyzer.plot_vector_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py#main",
      "target": "skills/openpiv/scripts/run_example.py#bundled_image_pair",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/run_example.py#main",
      "target": "skills/openpiv/scripts/runner.py#run_openpiv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "skills/openpiv/scripts/runner.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "skills/openpiv/scripts/runner.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "skills/openpiv/scripts/runner.py#run_openpiv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "openpiv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/openpiv/scripts/runner.py#main",
      "target": "skills/openpiv/scripts/runner.py#run_openpiv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/absorbance_reader_template.py",
      "target": "skills/opentrons-integration/scripts/absorbance_reader_template.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/absorbance_reader_template.py",
      "target": "opentrons",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/basic_protocol_template.py",
      "target": "skills/opentrons-integration/scripts/basic_protocol_template.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/basic_protocol_template.py",
      "target": "opentrons",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py",
      "target": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/ot2_basic_protocol_template.py",
      "target": "opentrons",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/pcr_setup_template.py",
      "target": "skills/opentrons-integration/scripts/pcr_setup_template.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/pcr_setup_template.py",
      "target": "opentrons",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "target": "skills/opentrons-integration/scripts/runtime_parameters_template.py#add_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "target": "skills/opentrons-integration/scripts/runtime_parameters_template.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/runtime_parameters_template.py",
      "target": "opentrons",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/serial_dilution_template.py",
      "target": "skills/opentrons-integration/scripts/serial_dilution_template.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/opentrons-integration/scripts/serial_dilution_template.py",
      "target": "opentrons",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#build_generated_params_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#build_nextflow_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#build_samplesheet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#create_conda_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#default_conda_env_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#default_script_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#detect_java_major_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_no_spaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_pipeline_repo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_runtime_tools",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#extract_job_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#find_conda_env_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#format_submit_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#has_any_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#is_remote_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_module_load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_walltime_hhmmss",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#parse_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#parse_env_list_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_reference_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#scheduler_header_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#script_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#submit_command_for_executor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_repo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#warn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#write_generated_params_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#write_launch_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "shlex",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#build_nextflow_command",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_reference_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#create_conda_env",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#create_conda_env",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#default_conda_env_file",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#script_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#detect_java_major_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#has_any_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#warn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_no_spaces",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_pipeline_repo",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_pipeline_repo",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_pipeline_repo",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_repo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_runtime_tools",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_runtime_tools",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#warn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#extract_job_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#submit_command_for_executor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#find_conda_env_prefix",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#parse_env_list_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#build_nextflow_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#build_samplesheet",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#default_script_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_dependency_tools",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_pipeline_repo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_runtime_tools",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#execute_launch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#format_submit_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#parse_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#submit_command_for_executor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#write_generated_params_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#main",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#write_launch_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_module_load",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_walltime_hhmmss",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#create_conda_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#default_conda_env_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#find_conda_env_prefix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#resolve_runtime",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#warn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#scheduler_header_lines",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_walltime_hhmmss",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#ensure_no_spaces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#is_remote_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#normalize_module_load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_inputs",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#validate_repo",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#is_remote_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#verify_bam_and_index",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#warn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#write_generated_params_file",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#build_generated_params_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pacsomatic/scripts/run_pacsomatic.py#write_launch_script",
      "target": "skills/pacsomatic/scripts/run_pacsomatic.py#scheduler_header_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#InputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#read_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#redact_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "skills/paper-lookup/scripts/_common.py#strip_control",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "target": "skills/paper-lookup/scripts/_common.py#strip_control",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#InputError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#load_json",
      "target": "skills/paper-lookup/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#load_json",
      "target": "skills/paper-lookup/scripts/_common.py#read_input",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#read_input",
      "target": "skills/paper-lookup/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation.complete",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation.note",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation.ok",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#id_from_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#link_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#split_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#main",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#main",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#main",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#id_from_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#link_for",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/arxiv_atom.py#parse_entry",
      "target": "skills/paper-lookup/scripts/arxiv_atom.py#split_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#collect_sections",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#comments_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#extract_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#find_article",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#section_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#collect_sections",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#collect_sections",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#section_title",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#comments_in",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text.walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#element_text.walk",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#extract_metadata",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#extract_metadata",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#collect_sections",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#comments_in",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#extract_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#find_article",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#main",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/jats_to_text.py#section_title",
      "target": "skills/paper-lookup/scripts/jats_to_text.py#element_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#reconstruct",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#works_from",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py#main",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py#main",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py#main",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#works_from",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py#reconstruct",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py#summarize",
      "target": "skills/paper-lookup/scripts/_common.py#collapse_ws",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/openalex_abstract.py#summarize",
      "target": "skills/paper-lookup/scripts/openalex_abstract.py#reconstruct",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_rxiv_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#Api",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_crossref_parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_crossref_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_europepmc_parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_europepmc_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_openalex_parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_openalex_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_rxiv_parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#_rxiv_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#Api",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#Page",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "skills/paper-lookup/scripts/paginate.py#walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#_crossref_parse",
      "target": "skills/paper-lookup/scripts/paginate.py#Page",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#_europepmc_parse",
      "target": "skills/paper-lookup/scripts/paginate.py#Page",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#_openalex_parse",
      "target": "skills/paper-lookup/scripts/paginate.py#Page",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#_rxiv_parse",
      "target": "skills/paper-lookup/scripts/paginate.py#Page",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#_rxiv_url",
      "target": "skills/paper-lookup/scripts/paginate.py#_rxiv_url.build",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#main",
      "target": "skills/paper-lookup/scripts/_common.py#redact_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#main",
      "target": "skills/paper-lookup/scripts/paginate.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#main",
      "target": "skills/paper-lookup/scripts/paginate.py#walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#walk",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#walk",
      "target": "skills/paper-lookup/scripts/_common.py#Reconciliation.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#walk",
      "target": "skills/paper-lookup/scripts/_common.py#redact_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/paper-lookup/scripts/paginate.py#walk",
      "target": "skills/paper-lookup/scripts/paginate.py#fetch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_absolute_lexical",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_reject_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_suffix_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#_within_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#parse_name_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#strict_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "skills/pathml/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#_reject_constant",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "target": "skills/pathml/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#_reject_url",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#_unique_object",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#_within_root",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#atomic_write_bytes",
      "target": "skills/pathml/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#atomic_write_bytes",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#bounded_int",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#_reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#_suffix_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_input_file",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#_reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#_suffix_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_output_file",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_root",
      "target": "skills/pathml/scripts/_common.py#_absolute_lexical",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_root",
      "target": "skills/pathml/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_root",
      "target": "skills/pathml/scripts/_common.py#_reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#checked_root",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathml/scripts/_common.py#emit_json",
      "target": "skills/pathml/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#emit_json",
      "target": "skills/pathml/scripts/_common.py#strict_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#finite_float",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#load_json_object",
      "target": "skills/pathml/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#load_json_object",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#parse_name_list",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#sha256_file",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#strict_json_bytes",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/_common.py#validate_keys",
      "target": "skills/pathml/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#_next_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#_read_pnm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#_read_with_pillow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#_write_mask",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#calculate_qc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#read_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "skills/pathml/scripts/image_qc.py#synthetic_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#_read_pnm",
      "target": "skills/pathml/scripts/image_qc.py#_next_token",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#main",
      "target": "skills/pathml/scripts/image_qc.py#_write_mask",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#main",
      "target": "skills/pathml/scripts/image_qc.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#main",
      "target": "skills/pathml/scripts/image_qc.py#calculate_qc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#main",
      "target": "skills/pathml/scripts/image_qc.py#read_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#main",
      "target": "skills/pathml/scripts/image_qc.py#synthetic_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#read_image",
      "target": "skills/pathml/scripts/image_qc.py#_read_pnm",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/image_qc.py#read_image",
      "target": "skills/pathml/scripts/image_qc.py#_read_with_pillow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "skills/pathml/scripts/plan_inference.py#_load_card",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "skills/pathml/scripts/plan_inference.py#_select",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "skills/pathml/scripts/plan_inference.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "skills/pathml/scripts/plan_inference.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "skills/pathml/scripts/plan_inference.py#make_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py#main",
      "target": "skills/pathml/scripts/plan_inference.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py#main",
      "target": "skills/pathml/scripts/plan_inference.py#make_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py#make_plan",
      "target": "skills/pathml/scripts/plan_inference.py#_load_card",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_inference.py#make_plan",
      "target": "skills/pathml/scripts/plan_inference.py#_select",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "skills/pathml/scripts/plan_pipeline.py#_parse_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "skills/pathml/scripts/plan_pipeline.py#_stable_pathml_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "skills/pathml/scripts/plan_pipeline.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "skills/pathml/scripts/plan_pipeline.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "skills/pathml/scripts/plan_pipeline.py#make_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py#main",
      "target": "skills/pathml/scripts/plan_pipeline.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py#main",
      "target": "skills/pathml/scripts/plan_pipeline.py#make_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py#make_plan",
      "target": "skills/pathml/scripts/plan_pipeline.py#_parse_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/plan_pipeline.py#make_plan",
      "target": "skills/pathml/scripts/plan_pipeline.py#_stable_pathml_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#_inspect_dicom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#_inspect_openslide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#_inspect_raster",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#_matched_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#_validate_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "skills/pathml/scripts/slide_manifest.py#validate_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "openslide",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "pydicom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "target": "skills/pathml/scripts/slide_manifest.py#_inspect_dicom",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "target": "skills/pathml/scripts/slide_manifest.py#_inspect_openslide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "target": "skills/pathml/scripts/slide_manifest.py#_inspect_raster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "target": "skills/pathml/scripts/slide_manifest.py#_matched_suffix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#main",
      "target": "skills/pathml/scripts/slide_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#main",
      "target": "skills/pathml/scripts/slide_manifest.py#inspect_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#main",
      "target": "skills/pathml/scripts/slide_manifest.py#validate_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#validate_manifest",
      "target": "skills/pathml/scripts/slide_manifest.py#_matched_suffix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/slide_manifest.py#validate_manifest",
      "target": "skills/pathml/scripts/slide_manifest.py#_validate_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#_parse_csv_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#validate_graph",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#validate_multiplex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py#main",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py#main",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#validate_graph",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py#main",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#validate_multiplex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py#validate_graph",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py#validate_multiplex",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathml/scripts/validate_spatial_schema.py#validate_multiplex",
      "target": "skills/pathml/scripts/validate_spatial_schema.py#_parse_csv_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_encode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_error_detail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_fetch_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#bin_weekly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#children_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#descendants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_lineage_notes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_pango_aliases",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#flag_low_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#format_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#iso_week_start",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_definition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#logit_slope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#looks_like_lineage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#mutations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pango_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#parent_chain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#range_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#recombinant_parents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#sanitize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#supports_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#top_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias_full",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#week_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#wilson_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_error_detail",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#sanitize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_fetch_text",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#bin_weekly",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#iso_week_start",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#count",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#descendants",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#children_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#emit",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#format_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#emit",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#sanitize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_lineage_notes",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_fetch_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_pango_aliases",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_fetch_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#format_table",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#sanitize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_definition",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#looks_like_lineage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates.sort_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_filter",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#mutations",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#supports_range",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_encode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#_error_detail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#request",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias_full",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#parse_where",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#weekly_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "lapis_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#count",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#flag_low_coverage",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_filter",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#logit_slope",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#range_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#top_values",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#week_range",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#wilson_interval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#parse_where",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#weekly_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#parse_where",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#weekly_counts",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/lineage_prevalence.py#weekly_counts",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#bin_weekly",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#parse_where",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "lapis_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#count",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_filter",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#range_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#parse_where",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#parse_where",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/mutation_profile.py#profile",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#mutations",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#cohort_curve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#month_window",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "lapis_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#cohort_curve",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#aggregated",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#LapisError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_date_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#range_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#cohort_curve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/reporting_lag.py#month_window",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#normalise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "lapis_client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#children_map",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#count",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#data_version",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#descendants",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#describe_instance",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_lineage_notes",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#fetch_pango_aliases",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_definition",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#lineage_field_candidates",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pango_provenance",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#parent_chain",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#pick_lineage_field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#recombinant_parents",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#resolve_base_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/lapis_client.py#unalias_full",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#main",
      "target": "skills/pathogen-variant-surveillance/scripts/resolve_lineage.py#normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_build_rank_from_deseq2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_symbols",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_dotplot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_gene_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_rnk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#run_gsea",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#run_ora",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#_build_rank_from_deseq2",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_rnk",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#main",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_dotplot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#main",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#run_gsea",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#main",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#run_ora",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#run_gsea",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_build_rank_from_deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#run_gsea",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#run_ora",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_clean_symbols",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pathway-enrichment/scripts/run_enrichment.py#run_ora",
      "target": "skills/pathway-enrichment/scripts/run_enrichment.py#_read_gene_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py",
      "target": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py",
      "target": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py",
      "target": "skills/pdf/scripts/check_bounding_boxes.py#RectAndField",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages",
      "target": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages.rects_intersect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages",
      "target": "skills/pdf/scripts/check_bounding_boxes.py#RectAndField",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages",
      "target": "skills/pdf/scripts/check_bounding_boxes.py#get_bounding_box_messages.rects_intersect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_fillable_fields.py",
      "target": "pypdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/check_fillable_fields.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/convert_pdf_to_images.py",
      "target": "skills/pdf/scripts/convert_pdf_to_images.py#convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/convert_pdf_to_images.py",
      "target": "skills/pdf/scripts/convert_pdf_to_images.py#convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/convert_pdf_to_images.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/convert_pdf_to_images.py",
      "target": "pdf2image",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/convert_pdf_to_images.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/create_validation_image.py",
      "target": "skills/pdf/scripts/create_validation_image.py#create_validation_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/create_validation_image.py",
      "target": "skills/pdf/scripts/create_validation_image.py#create_validation_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/create_validation_image.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/create_validation_image.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/create_validation_image.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "skills/pdf/scripts/extract_form_field_info.py#write_field_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "skills/pdf/scripts/extract_form_field_info.py#get_full_annotation_field_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "skills/pdf/scripts/extract_form_field_info.py#make_field_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "skills/pdf/scripts/extract_form_field_info.py#write_field_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "pypdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "target": "skills/pdf/scripts/extract_form_field_info.py#get_full_annotation_field_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "target": "skills/pdf/scripts/extract_form_field_info.py#make_field_dict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "target": "skills/pdf/scripts/extract_form_field_info.py#get_field_info.sort_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_field_info.py#write_field_info",
      "target": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py",
      "target": "skills/pdf/scripts/extract_form_structure.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py",
      "target": "skills/pdf/scripts/extract_form_structure.py#extract_form_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py",
      "target": "skills/pdf/scripts/extract_form_structure.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py",
      "target": "pdfplumber",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/extract_form_structure.py#main",
      "target": "skills/pdf/scripts/extract_form_structure.py#extract_form_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#fill_pdf_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#monkeypatch_pydpf_method",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#fill_pdf_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#monkeypatch_pydpf_method",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#validation_error_for_field_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "extract_form_field_info",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "pypdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "pypdf.constants",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "pypdf.generic",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py#fill_pdf_fields",
      "target": "skills/pdf/scripts/extract_form_field_info.py#get_field_info",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py#fill_pdf_fields",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#validation_error_for_field_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_fillable_fields.py#monkeypatch_pydpf_method",
      "target": "skills/pdf/scripts/fill_fillable_fields.py#monkeypatch_pydpf_method.patched_get_inherited",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#fill_pdf_form",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#fill_pdf_form",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#transform_from_image_coords",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#transform_from_pdf_coords",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "pypdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "pypdf.annotations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#fill_pdf_form",
      "target": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#transform_from_image_coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#fill_pdf_form",
      "target": "skills/pdf/scripts/fill_pdf_form_with_annotations.py#transform_from_pdf_coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#_duplicate_safe_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#atomic_write_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#error_exit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#read_csv_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#read_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_enum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_exact_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_identifier_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_text_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_unique",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#require_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#safe_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#safe_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#split_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#write_json_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "skills/peer-review/scripts/_common.py#write_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#_duplicate_safe_object",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#read_csv_records",
      "target": "skills/peer-review/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#read_csv_records",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#read_json",
      "target": "skills/peer-review/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#read_json",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#read_markdown",
      "target": "skills/peer-review/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#read_markdown",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_bool",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_doi",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_doi",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_enum",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_enum",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_exact_keys",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_identifier",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_identifier",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_identifier_list",
      "target": "skills/peer-review/scripts/_common.py#require_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_identifier_list",
      "target": "skills/peer-review/scripts/_common.py#require_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_identifier_list",
      "target": "skills/peer-review/scripts/_common.py#require_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_iso_date",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_iso_date",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_list",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_object",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_text",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_text_list",
      "target": "skills/peer-review/scripts/_common.py#require_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_text_list",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_unique",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_url",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#require_url",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#safe_input_path",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#safe_output_path",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#split_identifiers",
      "target": "skills/peer-review/scripts/_common.py#require_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#split_identifiers",
      "target": "skills/peer-review/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#split_identifiers",
      "target": "skills/peer-review/scripts/_common.py#require_unique",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#split_identifiers",
      "target": "skills/peer-review/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#write_json_report",
      "target": "skills/peer-review/scripts/_common.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#write_json_report",
      "target": "skills/peer-review/scripts/_common.py#safe_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#write_markdown",
      "target": "skills/peer-review/scripts/_common.py#atomic_write_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/_common.py#write_markdown",
      "target": "skills/peer-review/scripts/_common.py#safe_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "skills/peer-review/scripts/audit_citations.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "skills/peer-review/scripts/audit_citations.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "skills/peer-review/scripts/audit_citations.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "skills/peer-review/scripts/audit_citations.py#extract_citations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "skills/peer-review/scripts/audit_citations.py#load_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "skills/peer-review/scripts/audit_citations.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py#audit",
      "target": "skills/peer-review/scripts/audit_citations.py#extract_citations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py#load_references",
      "target": "skills/peer-review/scripts/_common.py#require_doi",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py#load_references",
      "target": "skills/peer-review/scripts/_common.py#require_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py#main",
      "target": "skills/peer-review/scripts/audit_citations.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py#main",
      "target": "skills/peer-review/scripts/audit_citations.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_citations.py#main",
      "target": "skills/peer-review/scripts/audit_citations.py#load_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#load_checklist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py#main",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py#main",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/audit_statistics_reproducibility.py#main",
      "target": "skills/peer-review/scripts/audit_statistics_reproducibility.py#load_checklist",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "skills/peer-review/scripts/generate_review_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "skills/peer-review/scripts/generate_review_scaffold.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "skills/peer-review/scripts/generate_review_scaffold.py#generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "skills/peer-review/scripts/generate_review_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py",
      "target": "validate_review_intake",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py#generate",
      "target": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py#main",
      "target": "skills/peer-review/scripts/generate_review_scaffold.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/generate_review_scaffold.py#main",
      "target": "skills/peer-review/scripts/generate_review_scaffold.py#generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "skills/peer-review/scripts/lint_review.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "skills/peer-review/scripts/lint_review.py#_comment_blocks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "skills/peer-review/scripts/lint_review.py#_content_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "skills/peer-review/scripts/lint_review.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "skills/peer-review/scripts/lint_review.py#lint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "skills/peer-review/scripts/lint_review.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py#lint",
      "target": "skills/peer-review/scripts/lint_review.py#_comment_blocks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py#lint",
      "target": "skills/peer-review/scripts/lint_review.py#_content_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py#main",
      "target": "skills/peer-review/scripts/lint_review.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/lint_review.py#main",
      "target": "skills/peer-review/scripts/lint_review.py#lint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#assess",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#select_guidelines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#assess",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#select_guidelines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "target": "skills/peer-review/scripts/_common.py#require_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#assess",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_coverage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/select_reporting_guidelines.py#main",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#load_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#validate_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py#main",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py#main",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#load_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_claim_evidence.py#main",
      "target": "skills/peer-review/scripts/validate_claim_evidence.py#validate_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "skills/peer-review/scripts/validate_review_intake.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "skills/peer-review/scripts/validate_review_intake.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "skills/peer-review/scripts/validate_review_intake.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py#main",
      "target": "skills/peer-review/scripts/validate_review_intake.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/peer-review/scripts/validate_review_intake.py#main",
      "target": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#check_dependencies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#count_sequences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_fasttree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_iqtree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_mafft",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#tree_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#visualize_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "ete3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_fasttree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_iqtree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_mafft",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#tree_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py#main",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#visualize_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/phylogenetics/scripts/phylogenetic_analysis.py#run_mafft",
      "target": "skills/phylogenetics/scripts/phylogenetic_analysis.py#count_sequences",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#_json_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#_sniff_delimiter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#fmt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#group_by",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_positive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#require_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#Table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#column",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "target": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#parse_positive",
      "target": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#parse_positive",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "target": "skills/pkpd-modeling/scripts/_common.py#_sniff_delimiter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "target": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report._render_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report._render_table",
      "target": "skills/pkpd-modeling/scripts/_common.py#fmt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report._render_table",
      "target": "skills/pkpd-modeling/scripts/_common.py#Table.headers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "target": "skills/pkpd-modeling/scripts/_common.py#fmt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report._render_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "target": "skills/pkpd-modeling/scripts/_common.py#Table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#require_columns",
      "target": "skills/pkpd-modeling/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_common.py#Table",
      "target": "skills/pkpd-modeling/scripts/_common.py#Table.headers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#_absorption_term",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#_require_scipy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_bolus",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_infusion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_oral",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_transit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#Dose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#effect_compartment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#emax",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#imax",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#indirect_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#micro_constants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "skills/pkpd-modeling/scripts/_models.py#steady_state_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "scipy.integrate",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses",
      "target": "skills/pkpd-modeling/scripts/_models.py#_require_scipy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses",
      "target": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses.rhs_with_infusions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "target": "skills/pkpd-modeling/scripts/_models.py#Dose",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#conc_infusion",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_bolus",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#conc_oral",
      "target": "skills/pkpd-modeling/scripts/_models.py#_absorption_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition.auc_unit_dose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition.half_lives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition.mrt_iv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition.n_compartments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition.terminal_half_life",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Disposition",
      "target": "skills/pkpd-modeling/scripts/_models.py#Disposition.vss",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#Dose",
      "target": "skills/pkpd-modeling/scripts/_models.py#Dose.__post_init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#indirect_response",
      "target": "skills/pkpd-modeling/scripts/_models.py#_require_scipy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#indirect_response",
      "target": "skills/pkpd-modeling/scripts/_models.py#indirect_response.drive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#indirect_response",
      "target": "skills/pkpd-modeling/scripts/_models.py#indirect_response.rhs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#indirect_response.rhs",
      "target": "skills/pkpd-modeling/scripts/_models.py#indirect_response.drive",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_bolus",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_infusion",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_oral",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten",
      "target": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten.rhs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd",
      "target": "skills/pkpd-modeling/scripts/_models.py#_integrate_with_doses",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd.rhs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_tmdd.rhs_qss",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#allometric",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#fit_exponent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#hed_mg_per_kg",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#maturation_fraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#rule_of_exponents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#allometric",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#fit_exponent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#hed_mg_per_kg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#maturation_fraction",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/allometry_and_fih.py#run",
      "target": "skills/pkpd-modeling/scripts/allometry_and_fih.py#rule_of_exponents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#abel_limits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#AverageBE",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#crossover_2x2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#cv_from_s2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#load_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#parallel_design",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#reference_variability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#rsabe_bound",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#s2_from_cv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#tost_power",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "scipy.stats",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#crossover_2x2",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#AverageBE",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#crossover_2x2",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#cv_from_s2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#load_records",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#load_records",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#parallel_design",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#AverageBE",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#parallel_design",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#cv_from_s2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#reference_variability",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability.cvwr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability.swr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#ReferenceVariability.cvwr",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#cv_from_s2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#abel_limits",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#crossover_2x2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#load_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#parallel_design",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#reference_variability",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#rsabe_bound",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#sample_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#run",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#tost_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#sample_size",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#tost_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/bioequivalence.py#tost_power",
      "target": "skills/pkpd-modeling/scripts/bioequivalence.py#s2_from_cv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#_is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#_num",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#_is_missing",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#_num",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset.col",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset.col",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#Findings.max_severity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/check_popk_dataset.py#run",
      "target": "skills/pkpd-modeling/scripts/check_popk_dataset.py#check_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#classify",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#inlet_concentration",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#r1_reversible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#r2_time_dependent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#r3_induction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static.terms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static.terms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#classify",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#inlet_concentration",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#mechanistic_static",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#r1_reversible",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#r2_time_dependent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/ddi_static.py#run",
      "target": "skills/pkpd-modeling/scripts/ddi_static.py#r3_induction",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_cqtc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_logistic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#quartile_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "scipy.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "scipy.stats",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.predict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.unpack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.predict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.unpack",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.predict",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax.unpack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#fit_logistic",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_logistic.neg_loglik",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_cqtc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_emax",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#fit_logistic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/exposure_response.py#run",
      "target": "skills/pkpd-modeling/scripts/exposure_response.py#quartile_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_regimen",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_weights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitSpec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#initial_estimates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#runs_test_p",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#secondary_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "_models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "scipy.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "scipy.stats",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#runs_test_p",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#secondary_parameters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#_regimen",
      "target": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_weights",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#initial_estimates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one.residual",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one.residual",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_weights",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#fit_one.residual",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult.aic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitResult.bic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitSpec",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitSpec.parameter_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_regimen",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "target": "skills/pkpd-modeling/scripts/_models.py#conc_transit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "target": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#predictor.predict",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#group_by",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#_fit_and_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#run",
      "target": "skills/pkpd-modeling/scripts/fit_compartmental.py#FitSpec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#secondary_parameters",
      "target": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/fit_compartmental.py#secondary_parameters",
      "target": "skills/pkpd-modeling/scripts/_models.py#steady_state_metrics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#_loglinear_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#_parse_conc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#_partial_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#_segment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#_window_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#cumulative_auc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#estimate_lambda_z",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#interpolate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#LambdaZ",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#partial_auc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#Profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "skills/pkpd-modeling/scripts/nca.py#summarise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#_parse_conc",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#_window_spec",
      "target": "skills/pkpd-modeling/scripts/nca.py#_partial_spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "target": "skills/pkpd-modeling/scripts/nca.py#cumulative_auc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "target": "skills/pkpd-modeling/scripts/nca.py#estimate_lambda_z",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "target": "skills/pkpd-modeling/scripts/nca.py#LambdaZ",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "target": "skills/pkpd-modeling/scripts/nca.py#partial_auc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#cumulative_auc",
      "target": "skills/pkpd-modeling/scripts/nca.py#_segment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#estimate_lambda_z",
      "target": "skills/pkpd-modeling/scripts/nca.py#_loglinear_fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#estimate_lambda_z",
      "target": "skills/pkpd-modeling/scripts/nca.py#LambdaZ",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#LambdaZ",
      "target": "skills/pkpd-modeling/scripts/nca.py#LambdaZ.half_life",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "target": "skills/pkpd-modeling/scripts/_common.py#parse_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "target": "skills/pkpd-modeling/scripts/_common.py#read_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "target": "skills/pkpd-modeling/scripts/nca.py#_parse_conc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "target": "skills/pkpd-modeling/scripts/nca.py#Profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#partial_auc",
      "target": "skills/pkpd-modeling/scripts/nca.py#_segment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#partial_auc",
      "target": "skills/pkpd-modeling/scripts/nca.py#interpolate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/nca.py#analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/nca.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/nca.py#load_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/nca.py#run",
      "target": "skills/pkpd-modeling/scripts/nca.py#summarise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#_regimen_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#summarise_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "_models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/_models.py#steady_state_metrics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#_regimen_spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.percentiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#summarise_interval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.evaluate~2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run",
      "target": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.percentiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.evaluate",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_michaelis_menten",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/simulate_regimen.py#run.evaluate~2",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/_common.py#main_wrapper",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#exposure_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#recommend_dose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "_models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "scipy.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#build_parser",
      "target": "skills/pkpd-modeling/scripts/_common.py#add_format_argument",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#exposure_metrics",
      "target": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#exposure_metrics",
      "target": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#exposure_metrics",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.objective",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.objective",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "target": "skills/pkpd-modeling/scripts/_models.py#build_regimen",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "target": "skills/pkpd-modeling/scripts/_models.py#disposition",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate.predict",
      "target": "skills/pkpd-modeling/scripts/_models.py#simulate_linear",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel.individualise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.emit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.finding",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.note",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.scalar",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/_common.py#Report.table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#exposure_metrics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#map_estimate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel.individualise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#run",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#recommend_dose",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult.individualise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pkpd-modeling/scripts/tdm_bayes.py#VancomycinAdult",
      "target": "skills/pkpd-modeling/scripts/tdm_bayes.py#PopulationModel",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#_linear_channel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#_object_without_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#_reject_nonfinite_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#canonical_json_hash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#commit_temp_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#contrast_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#has_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#parse_aware_datetime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#parse_hex_color",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#private_temp_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#relative_luminance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#require_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#require_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "skills/pptx-posters/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#_object_without_duplicates",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#_reject_nonfinite_constant",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#atomic_write_bytes",
      "target": "skills/pptx-posters/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#atomic_write_bytes",
      "target": "skills/pptx-posters/scripts/_common.py#commit_temp_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#atomic_write_bytes",
      "target": "skills/pptx-posters/scripts/_common.py#private_temp_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#checked_input_file",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#checked_output_file",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#commit_temp_file",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#contrast_ratio",
      "target": "skills/pptx-posters/scripts/_common.py#relative_luminance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#emit_json",
      "target": "skills/pptx-posters/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#emit_json",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#finite_number",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#has_placeholder",
      "target": "skills/pptx-posters/scripts/_common.py#has_placeholder.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#has_placeholder",
      "target": "skills/pptx-posters/scripts/_common.py#has_placeholder.walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#has_placeholder.walk",
      "target": "skills/pptx-posters/scripts/_common.py#has_placeholder.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "target": "skills/pptx-posters/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#parse_aware_datetime",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#parse_aware_datetime",
      "target": "skills/pptx-posters/scripts/_common.py#require_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#parse_hex_color",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#parse_hex_color",
      "target": "skills/pptx-posters/scripts/_common.py#require_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#positive_int",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#relative_luminance",
      "target": "skills/pptx-posters/scripts/_common.py#_linear_channel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#require_bool",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#require_string",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "target": "skills/pptx-posters/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "target": "skills/pptx-posters/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "target": "skills/pptx-posters/scripts/_common.py#require_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_common.py#sha256_file",
      "target": "skills/pptx-posters/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_nullable_source_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_source_id_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_string_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_approval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_asset_path_syntax",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_box",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_canvas",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_palette",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_physical_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_quality",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_requirements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_nullable_source_id",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_source_id_list",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_source_id_list",
      "target": "skills/pptx-posters/scripts/_manifest.py#_string_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_approval",
      "target": "skills/pptx-posters/scripts/_common.py#parse_aware_datetime",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_approval",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "target": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_asset_path_syntax",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_canvas",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_source_id_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_string_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "target": "skills/pptx-posters/scripts/_manifest.py#_source_id_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_box",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_palette",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_palette",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_physical_output",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_quality",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_quality",
      "target": "skills/pptx-posters/scripts/_manifest.py#_nullable_source_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_requirements",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_requirements",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_sources",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#_validate_sources",
      "target": "skills/pptx-posters/scripts/_manifest.py#_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "target": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "target": "skills/pptx-posters/scripts/_common.py#canonical_json_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_common.py#has_placeholder",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_common.py#reject_unknown_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_assets",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_canvas",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_palette",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_physical_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_quality",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_requirements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#_validate_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_allowed_generated_part",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_font_sizes_pt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_all_xml_parts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_forbidden_markup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_image_payloads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_one_slide_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_relationships",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_slide_accessibility",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_intersection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_local_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_preflight_members",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_preflight_zip_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_relationship_source_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_resolve_internal_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_shape_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_shape_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_shape_transform",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#_unsafe_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#patch_accessibility_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "skills/pptx-posters/scripts/_pptx.py#strip_generated_printer_settings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "struct",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_all_xml_parts",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_all_xml_parts",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_content_types",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_content_types",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_forbidden_markup",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_forbidden_markup",
      "target": "skills/pptx-posters/scripts/_pptx.py#_local_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_forbidden_markup",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_image_payloads",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_one_slide_profile",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_one_slide_profile",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_one_slide_profile",
      "target": "skills/pptx-posters/scripts/_pptx.py#_resolve_internal_target",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_relationships",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_relationships",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_relationships",
      "target": "skills/pptx-posters/scripts/_pptx.py#_resolve_internal_target",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_inspect_slide_accessibility",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "target": "skills/pptx-posters/scripts/_pptx.py#_unsafe_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_preflight_members",
      "target": "skills/pptx-posters/scripts/_pptx.py#_allowed_generated_part",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_preflight_members",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_preflight_zip_directory",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_resolve_internal_target",
      "target": "skills/pptx-posters/scripts/_pptx.py#_relationship_source_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#_shape_transform",
      "target": "skills/pptx-posters/scripts/_pptx.py#_local_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_font_sizes_pt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_intersection",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_local_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_shape_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_shape_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#_shape_transform",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "target": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_all_xml_parts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_content_types",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_forbidden_markup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_image_payloads",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_one_slide_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_relationships",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_inspect_slide_accessibility",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_preflight_members",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#_preflight_zip_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#patch_accessibility_metadata",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#patch_accessibility_metadata",
      "target": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#strip_generated_printer_settings",
      "target": "skills/pptx-posters/scripts/_pptx.py#_parse_xml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/_pptx.py#strip_generated_printer_settings",
      "target": "skills/pptx-posters/scripts/_pptx.py#_preflight_members",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "skills/pptx-posters/scripts/check_layout.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "skills/pptx-posters/scripts/check_layout.py#_manifest_settings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "skills/pptx-posters/scripts/check_layout.py#_positive_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "skills/pptx-posters/scripts/check_layout.py#apply_manifest_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "skills/pptx-posters/scripts/check_layout.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "skills/pptx-posters/scripts/check_layout.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "_pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py#_manifest_settings",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py#main",
      "target": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py#main",
      "target": "skills/pptx-posters/scripts/check_layout.py#_manifest_settings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py#main",
      "target": "skills/pptx-posters/scripts/check_layout.py#apply_manifest_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_layout.py#main",
      "target": "skills/pptx-posters/scripts/check_layout.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "skills/pptx-posters/scripts/check_palette.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "skills/pptx-posters/scripts/check_palette.py#_lstar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "skills/pptx-posters/scripts/check_palette.py#audit_palette",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "skills/pptx-posters/scripts/check_palette.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "skills/pptx-posters/scripts/check_palette.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py#audit_palette",
      "target": "skills/pptx-posters/scripts/check_palette.py#_lstar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py#main",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py#main",
      "target": "skills/pptx-posters/scripts/check_palette.py#audit_palette",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/check_palette.py#main",
      "target": "skills/pptx-posters/scripts/check_palette.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_add_picture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_build_presentation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_require_exact_dependencies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_rgb",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_set_text_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "skills/pptx-posters/scripts/generate_poster.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "_pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "inventory_images",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "pptx.dml.color",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "pptx.enum.text",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "pptx.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#_build_presentation",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_add_picture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#_build_presentation",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_rgb",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#_build_presentation",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_set_text_shape",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#_set_text_shape",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_rgb",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_common.py#commit_temp_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_common.py#private_temp_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_pptx.py#patch_accessibility_metadata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/_pptx.py#strip_generated_printer_settings",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_build_presentation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/generate_poster.py#_require_exact_dependencies",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#main",
      "target": "skills/pptx-posters/scripts/generate_poster.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/generate_poster.py#main",
      "target": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "skills/pptx-posters/scripts/inspect_pptx.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "skills/pptx-posters/scripts/inspect_pptx.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "skills/pptx-posters/scripts/inspect_pptx.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "_pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py#main",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/inspect_pptx.py#main",
      "target": "skills/pptx-posters/scripts/inspect_pptx.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "skills/pptx-posters/scripts/inventory_images.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "skills/pptx-posters/scripts/inventory_images.py#_pillow_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "skills/pptx-posters/scripts/inventory_images.py#_read_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "skills/pptx-posters/scripts/inventory_images.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "target": "skills/pptx-posters/scripts/_common.py#resolve_local_asset",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "target": "skills/pptx-posters/scripts/inventory_images.py#_pillow_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "target": "skills/pptx-posters/scripts/inventory_images.py#_read_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py#main",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py#main",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/inventory_images.py#main",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "skills/pptx-posters/scripts/plan_export.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "skills/pptx-posters/scripts/plan_export.py#build_export_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "skills/pptx-posters/scripts/plan_export.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "skills/pptx-posters/scripts/plan_export.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py#main",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py#main",
      "target": "skills/pptx-posters/scripts/plan_export.py#build_export_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/plan_export.py#main",
      "target": "skills/pptx-posters/scripts/plan_export.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "skills/pptx-posters/scripts/validate_manifest.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "skills/pptx-posters/scripts/validate_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "skills/pptx-posters/scripts/validate_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py#main",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx-posters/scripts/validate_manifest.py#main",
      "target": "skills/pptx-posters/scripts/validate_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_add_to_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_add_to_presentation_rels",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_find_slide_relationship",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_get_next_slide_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_insert_into_sld_id_lst",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_register_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#_rid_for_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#add_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#add_slide_to_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#get_next_slide_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "skills/pptx/scripts/add_slide.py#parse_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "office.helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_add_to_presentation_rels",
      "target": "skills/pptx/scripts/add_slide.py#_find_slide_relationship",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_get_next_slide_id",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_insert_into_sld_id_lst",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "target": "skills/pptx/scripts/add_slide.py#_find_slide_relationship",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "target": "skills/pptx/scripts/add_slide.py#_rid_for_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_register_slide",
      "target": "skills/pptx/scripts/add_slide.py#_add_to_content_types",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_register_slide",
      "target": "skills/pptx/scripts/add_slide.py#_add_to_presentation_rels",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_register_slide",
      "target": "skills/pptx/scripts/add_slide.py#_get_next_slide_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_register_slide",
      "target": "skills/pptx/scripts/add_slide.py#_insert_into_sld_id_lst",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_rid_for_slide",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#_rid_for_slide",
      "target": "skills/pptx/scripts/add_slide.py#_find_slide_relationship",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#add_slide",
      "target": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#add_slide",
      "target": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#add_slide",
      "target": "skills/pptx/scripts/add_slide.py#parse_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#add_slide_to_package",
      "target": "skills/pptx/scripts/add_slide.py#add_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "target": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "target": "skills/pptx/scripts/add_slide.py#_register_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#create_slide_from_layout",
      "target": "skills/pptx/scripts/add_slide.py#get_next_slide_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "target": "skills/pptx/scripts/add_slide.py#_precheck_registration",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "target": "skills/pptx/scripts/add_slide.py#_register_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#duplicate_slide",
      "target": "skills/pptx/scripts/add_slide.py#get_next_slide_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#main",
      "target": "skills/pptx/scripts/add_slide.py#_die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#main",
      "target": "skills/pptx/scripts/add_slide.py#add_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/add_slide.py#main",
      "target": "skills/pptx/scripts/add_slide.py#add_slide_to_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#clean_unused_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#_referenced_by",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#_slide_rids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#clean_unused_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#get_referenced_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#get_slides_in_sldidlst",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#RefusedToClean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#remove_orphaned_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#remove_orphaned_rels_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#remove_orphaned_slides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#remove_trash_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "skills/pptx/scripts/clean.py#update_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "office.helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#get_referenced_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#RefusedToClean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#remove_orphaned_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#remove_orphaned_rels_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#remove_orphaned_slides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#remove_trash_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#clean_unused_files",
      "target": "skills/pptx/scripts/clean.py#update_content_types",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#get_referenced_files",
      "target": "skills/pptx/scripts/clean.py#_referenced_by",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#get_slides_in_sldidlst",
      "target": "skills/pptx/scripts/clean.py#_slide_rids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#RefusedToClean",
      "target": "Exception",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx/scripts/clean.py#remove_orphaned_slides",
      "target": "skills/pptx/scripts/clean.py#get_slides_in_sldidlst",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/clean.py#remove_orphaned_slides",
      "target": "skills/pptx/scripts/clean.py#RefusedToClean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "skills/pptx/scripts/office/helpers/__init__.py#opc_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "skills/pptx/scripts/office/helpers/__init__.py#part_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "skills/pptx/scripts/office/helpers/__init__.py#rels_source_part",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "skills/pptx/scripts/office/helpers/__init__.py#rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "skills/pptx/scripts/office/helpers/__init__.py#rezip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "skills/pptx/scripts/office/helpers/__init__.py#safe_extract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/__init__.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#find_chart_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "target": "skills/pptx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_slide.py#fatal_slide_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_slide.py#is_schema_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_slide.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_masters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_sort_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#_shares",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_masters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#_shares",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/pptx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "skills/pptx/scripts/office/soffice.py#run_soffice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "skills/pptx/scripts/office/soffice.py#_ensure_shim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "skills/pptx/scripts/office/soffice.py#_needs_shim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "skills/pptx/scripts/office/soffice.py#get_soffice_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "skills/pptx/scripts/office/soffice.py#run_soffice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "atexit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "socket",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py#get_soffice_env",
      "target": "skills/pptx/scripts/office/soffice.py#_ensure_shim",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py#get_soffice_env",
      "target": "skills/pptx/scripts/office/soffice.py#_needs_shim",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/soffice.py#run_soffice",
      "target": "skills/pptx/scripts/office/soffice.py#get_soffice_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "skills/pptx/scripts/office/validate.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "skills/pptx/scripts/office/validate.py#_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "skills/pptx/scripts/office/validate.py#_has_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "skills/pptx/scripts/office/validate.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "defusedxml.common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "validators",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py#main",
      "target": "skills/pptx/scripts/office/validate.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validate.py#main",
      "target": "skills/pptx/scripts/office/validate.py#_has_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/__init__.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/__init__.py",
      "target": ".docx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/__init__.py",
      "target": ".pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/__init__.py",
      "target": ".redlining",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "skills/pptx/scripts/office/validators/base.py#_load_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "functools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_unique_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#_load_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "target": "skills/pptx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "BaseSchemaValidator",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "target": "skills/pptx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_chart",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_slide",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_theme",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._get_schema_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._preprocess_for_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "BaseSchemaValidator",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "target": "skills/pptx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "defusedxml.common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/pptx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#_is_hidden",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#build_slide_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#convert_to_images",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#create_grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#create_grids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#create_hidden_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#get_slide_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "skills/pptx/scripts/thumbnail.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "defusedxml",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "office.helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "office.soffice",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#build_slide_list",
      "target": "skills/pptx/scripts/thumbnail.py#create_hidden_placeholder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#create_grids",
      "target": "skills/pptx/scripts/thumbnail.py#create_grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#get_slide_info",
      "target": "skills/pptx/scripts/thumbnail.py#_is_hidden",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#main",
      "target": "skills/pptx/scripts/thumbnail.py#build_slide_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#main",
      "target": "skills/pptx/scripts/thumbnail.py#convert_to_images",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#main",
      "target": "skills/pptx/scripts/thumbnail.py#create_grids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pptx/scripts/thumbnail.py#main",
      "target": "skills/pptx/scripts/thumbnail.py#get_slide_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "skills/primekg/scripts/query_primekg.py#_load_kg",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "skills/primekg/scripts/query_primekg.py#find_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "skills/primekg/scripts/query_primekg.py#get_disease_context",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "skills/primekg/scripts/query_primekg.py#get_neighbors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "skills/primekg/scripts/query_primekg.py#search_nodes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py#find_paths",
      "target": "skills/primekg/scripts/query_primekg.py#_load_kg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py#get_disease_context",
      "target": "skills/primekg/scripts/query_primekg.py#get_neighbors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py#get_disease_context",
      "target": "skills/primekg/scripts/query_primekg.py#search_nodes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py#get_neighbors",
      "target": "skills/primekg/scripts/query_primekg.py#_load_kg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/primekg/scripts/query_primekg.py#search_nodes",
      "target": "skills/primekg/scripts/query_primekg.py#_load_kg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_api_error_from_body",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_bounded_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_path_inside_cwd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_retry_delay",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_sensitive_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#build_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#credential_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#emit_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#encode_protocol_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#HttpResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#is_official_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#parse_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#require_api_success",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#safe_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#safe_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_guid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_nonnegative_integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_protocol_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_remote_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_retries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_timeout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "skills/protocolsio-integration/scripts/_common.py#write_private_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#_api_error_from_body",
      "target": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#_api_error_from_body",
      "target": "skills/protocolsio-integration/scripts/_common.py#parse_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#_bounded_read",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#_path_inside_cwd",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#_reject_constant",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#_unique_object",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "target": "skills/protocolsio-integration/scripts/_common.py#ApiError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#build_url",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#build_url",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#emit_error",
      "target": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#emit_error",
      "target": "skills/protocolsio-integration/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#encode_protocol_identifier",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_protocol_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "target": "skills/protocolsio-integration/scripts/_common.py#parse_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "target": "skills/protocolsio-integration/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler",
      "target": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler.redirect_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#parse_json_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#_api_error_from_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#_bounded_read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#_retry_delay",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#HttpResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_remote_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_retries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#request_bytes",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_timeout",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#require_api_success",
      "target": "skills/protocolsio-integration/scripts/_common.py#ApiError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#safe_input_path",
      "target": "skills/protocolsio-integration/scripts/_common.py#_path_inside_cwd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#safe_input_path",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#safe_output_path",
      "target": "skills/protocolsio-integration/scripts/_common.py#_path_inside_cwd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#safe_output_path",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "target": "skills/protocolsio-integration/scripts/_common.py#_sensitive_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "target": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_guid",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_nonnegative_integer",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "target": "skills/protocolsio-integration/scripts/_common.py#is_official_host",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_protocol_identifier",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_remote_url",
      "target": "skills/protocolsio-integration/scripts/_common.py#is_official_host",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_remote_url",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_retries",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/_common.py#validate_timeout",
      "target": "skills/protocolsio-integration/scripts/_common.py#SafetyError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_opaque_cursor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_pagination_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_validated_next_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#_validated_next_url",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_remote_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_opaque_cursor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_pagination_object",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#_validated_next_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#main",
      "target": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#main",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/pagination_helper.py#main",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_drop_sensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_hash_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_int_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_protocol_uri",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_sensitive_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_slug",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_upload_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_comment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_publish",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_steps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_update",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#credential_env_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#urllib_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "hmac",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_drop_sensitive",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_drop_sensitive",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_int_id",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_nonnegative_integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_payload",
      "target": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_sensitive_paths",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_sensitive_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_upload_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_hash_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_comment",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_ids",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_ids",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_int_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_publish",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_steps",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_guid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_steps",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_update",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_update",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_int_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_guid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_protocol_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_drop_sensitive",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_exact_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_int_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_protocol_uri",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_sensitive_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_slug",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_upload_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_comment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_publish",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_steps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_validate_update",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#credential_env_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#urllib_target",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#main",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#main",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/plan_write_request.py#main",
      "target": "skills/protocolsio-integration/scripts/plan_write_request.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_add_protocol_arguments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_pdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_get_items",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_has_pagination",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_request_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_require_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": ".pagination_helper",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "pagination_helper",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "target": "skills/protocolsio-integration/scripts/pagination_helper.py#inspect_pagination",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_get_items",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_has_pagination",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_request_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_pdf",
      "target": "skills/protocolsio-integration/scripts/_common.py#write_private_bytes",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_pdf",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_require_token",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#encode_protocol_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_plan",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_protocol_identifier",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_request_json",
      "target": "skills/protocolsio-integration/scripts/_common.py#parse_json_bytes",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#_request_json",
      "target": "skills/protocolsio-integration/scripts/_common.py#require_api_success",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#build_parser",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_add_protocol_arguments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_execute_pdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_request_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_require_token",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#main",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#main",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/protocols_read.py#main",
      "target": "skills/protocolsio-integration/scripts/protocols_read.py#execute",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#_validate_secret_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#validate_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py#main",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py#main",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#validate_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py#validate_config",
      "target": "skills/protocolsio-integration/scripts/_common.py#credential_status",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py#validate_config",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_auth_config.py#validate_config",
      "target": "skills/protocolsio-integration/scripts/validate_auth_config.py#_validate_secret_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_protocol_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_authors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_public",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_steps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_version_specific",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_authors",
      "target": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#main",
      "target": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#main",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#main",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/_common.py#clean_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_bounded_string",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_protocol_object",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_authors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_public",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_validate_steps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/protocolsio-integration/scripts/validate_protocol_json.py#validate_and_summarize",
      "target": "skills/protocolsio-integration/scripts/validate_protocol_json.py#_version_specific",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#_reject_duplicate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#resolve_local_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#secret_key_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#strict_json_dumps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#strict_json_loads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#validate_sha256",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "skills/pufferlib/scripts/_common.py#validate_slug",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "target": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#_reject_constant",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#_reject_duplicate_keys",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#bounded_int",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#emit_json",
      "target": "skills/pufferlib/scripts/_common.py#strict_json_dumps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#load_json_object",
      "target": "skills/pufferlib/scripts/_common.py#resolve_local_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#load_json_object",
      "target": "skills/pufferlib/scripts/_common.py#strict_json_loads",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#load_json_object",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#resolve_local_path",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#secret_key_paths",
      "target": "skills/pufferlib/scripts/_common.py#secret_key_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#strict_json_dumps",
      "target": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#strict_json_loads",
      "target": "skills/pufferlib/scripts/_common.py#_assert_finite_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#strict_json_loads",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#UserInputError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#validate_sha256",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/_common.py#validate_slug",
      "target": "skills/pufferlib/scripts/_common.py#UserInputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_partitions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#benchmark",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": ".env_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "env_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.close",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize.percentile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize.percentile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#benchmark",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_partitions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#benchmark",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_run_partition",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#benchmark",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#_summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#main",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#benchmark",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/benchmark_vectorization.py#main",
      "target": "skills/pufferlib/scripts/benchmark_vectorization.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_require",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_validate_reset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_validate_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": ".env_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "env_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_require",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.close",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_validate_reset",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_require",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#_validate_step",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_require",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#main",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#main",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_check_determinism",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_require",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_validate_reset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_contract_validator.py#_validate_step",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.close",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_contract_validator.py#validate_synthetic",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#BoxSpace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#DiscreteSpace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#run_demo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#BoxSpace",
      "target": "skills/pufferlib/scripts/env_template.py#BoxSpace.contains",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#DiscreteSpace",
      "target": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.contains",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#DiscreteSpace",
      "target": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#DiscreteSpace",
      "target": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#main",
      "target": "skills/pufferlib/scripts/env_template.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#main",
      "target": "skills/pufferlib/scripts/env_template.py#run_demo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#run_demo",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#run_demo",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.close",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#run_demo",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#run_demo",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv._observation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.close",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.__init__",
      "target": "skills/pufferlib/scripts/env_template.py#BoxSpace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.__init__",
      "target": "skills/pufferlib/scripts/env_template.py#DiscreteSpace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.reset",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv._observation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "target": "skills/pufferlib/scripts/env_template.py#DiscreteSpace.contains",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv.step",
      "target": "skills/pufferlib/scripts/env_template.py#SyntheticGymEnv._observation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_detect_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_hash_and_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_open_regular_no_follow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_safe_sidecar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#_safe_sidecar",
      "target": "skills/pufferlib/scripts/_common.py#secret_key_paths",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "target": "skills/pufferlib/scripts/_common.py#resolve_local_path",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "target": "skills/pufferlib/scripts/_common.py#validate_sha256",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_detect_format",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_hash_and_prefix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_open_regular_no_follow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#_safe_sidecar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#main",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/inspect_checkpoint.py#main",
      "target": "skills/pufferlib/scripts/inspect_checkpoint.py#inspect_checkpoint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "skills/pufferlib/scripts/repro_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "skills/pufferlib/scripts/repro_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "skills/pufferlib/scripts/repro_plan.py#generate_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "skills/pufferlib/scripts/repro_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": ".validate_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py",
      "target": "validate_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py#main",
      "target": "skills/pufferlib/scripts/_common.py#validate_slug",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py#main",
      "target": "skills/pufferlib/scripts/repro_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/repro_plan.py#main",
      "target": "skills/pufferlib/scripts/repro_plan.py#generate_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "skills/pufferlib/scripts/train_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "skills/pufferlib/scripts/train_template.py#_command_preview",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "skills/pufferlib/scripts/train_template.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "skills/pufferlib/scripts/train_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "skills/pufferlib/scripts/train_template.py#make_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": ".validate_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py",
      "target": "validate_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py#main",
      "target": "skills/pufferlib/scripts/train_template.py#_command_preview",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py#main",
      "target": "skills/pufferlib/scripts/train_template.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py#main",
      "target": "skills/pufferlib/scripts/train_template.py#make_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py#make_plan",
      "target": "skills/pufferlib/scripts/_common.py#validate_slug",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/train_template.py#make_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#default_plan",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_boolean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_checkpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_environment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_evaluation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_logging",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_training",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_vectorization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#default_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_checkpoint",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_environment",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_environment",
      "target": "skills/pufferlib/scripts/_common.py#validate_slug",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_evaluation",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_evaluation",
      "target": "skills/pufferlib/scripts/validate_plan.py#_boolean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_evaluation",
      "target": "skills/pufferlib/scripts/validate_plan.py#_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_logging",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_logging",
      "target": "skills/pufferlib/scripts/validate_plan.py#_boolean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_package",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_training",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_training",
      "target": "skills/pufferlib/scripts/validate_plan.py#_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_vectorization",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_vectorization",
      "target": "skills/pufferlib/scripts/validate_plan.py#_boolean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#_validate_vectorization",
      "target": "skills/pufferlib/scripts/validate_plan.py#_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#main",
      "target": "skills/pufferlib/scripts/validate_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#main",
      "target": "skills/pufferlib/scripts/validate_plan.py#default_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#main",
      "target": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/_common.py#require_keys",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/_common.py#secret_key_paths",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_checkpoint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_environment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_logging",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_training",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pufferlib/scripts/validate_plan.py#validate_plan",
      "target": "skills/pufferlib/scripts/validate_plan.py#_validate_vectorization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#create_plots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#filter_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#infer_shrink_coeff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#load_and_validate_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_deseq2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_statistical_tests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#save_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "pydeseq2.dds",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "pydeseq2.default_inference",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "pydeseq2.ds",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#create_plots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#filter_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#load_and_validate_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_statistical_tests",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#main",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#save_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydeseq2/scripts/run_deseq2_analysis.py#run_statistical_tests",
      "target": "skills/pydeseq2/scripts/run_deseq2_analysis.py#infer_shrink_coeff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#_absolute",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#_reject_json_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#_within_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#atomic_generated_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#atomic_write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#checked_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#checked_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#checked_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#collect_local_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#derive_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#derive_uid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#element_tag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#fail_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#frame_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#pixel_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#require_pixel_stack",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#safe_plugin_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#sha256_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#starter_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#valid_uid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "skills/pydicom/scripts/_common.py#validate_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "hmac",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "numpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "pydicom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#_reject_json_constant",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "target": "skills/pydicom/scripts/_common.py#_absolute",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#_unique_object",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#_within_root",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#atomic_generated_file",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#atomic_generated_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file.validator",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#atomic_generated_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file.writer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#atomic_write",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#bounded_int",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_input",
      "target": "skills/pydicom/scripts/_common.py#_absolute",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_input",
      "target": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_input",
      "target": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_input",
      "target": "skills/pydicom/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_input",
      "target": "skills/pydicom/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_input",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output",
      "target": "skills/pydicom/scripts/_common.py#_absolute",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output",
      "target": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output",
      "target": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output",
      "target": "skills/pydicom/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output",
      "target": "skills/pydicom/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "target": "skills/pydicom/scripts/_common.py#_absolute",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "target": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "target": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "target": "skills/pydicom/scripts/_common.py#_within_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "target": "skills/pydicom/scripts/_common.py#checked_root",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_output_directory",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_root",
      "target": "skills/pydicom/scripts/_common.py#_absolute",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_root",
      "target": "skills/pydicom/scripts/_common.py#_reject_path_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_root",
      "target": "skills/pydicom/scripts/_common.py#_reject_symlink_components",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#checked_root",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#collect_local_files",
      "target": "skills/pydicom/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#collect_local_files",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#derive_uid",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#derive_uid",
      "target": "skills/pydicom/scripts/_common.py#valid_uid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#emit_json",
      "target": "skills/pydicom/scripts/_common.py#json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#fail_json",
      "target": "skills/pydicom/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#frame_count",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#json_bytes",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#load_json",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#parse_size",
      "target": "skills/pydicom/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#parse_size",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#pixel_plan",
      "target": "skills/pydicom/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#pixel_plan",
      "target": "skills/pydicom/scripts/_common.py#frame_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#pixel_plan",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#require_pixel_stack",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#require_pixel_stack",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#require_pydicom",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#require_text",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#safe_plugin_name",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#ToolError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#validate_profile",
      "target": "skills/pydicom/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/_common.py#validate_profile",
      "target": "skills/pydicom/scripts/_common.py#ToolError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_date_action",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_load_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_looks_instance_uid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_map_scalar_uid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_map_uid_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_pseudonym_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_rebuild_file_meta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_shift_date_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_shift_datetime_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "pydicom.dataset",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "pydicom.uid",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "secrets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_date_action",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_shift_date_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_date_action",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_shift_datetime_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_map_scalar_uid",
      "target": "skills/pydicom/scripts/_common.py#derive_uid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_map_uid_value",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_map_scalar_uid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_pseudonym_value",
      "target": "skills/pydicom/scripts/_common.py#derive_token",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_rebuild_file_meta",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#_shift_datetime_text",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_shift_date_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#main",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#main",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#atomic_generated_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#sha256_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#starter_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/_common.py#validate_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_load_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_rebuild_file_meta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file.validator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file.writer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#process_file.validator",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "target": "skills/pydicom/scripts/_common.py#element_tag",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_date_action",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_looks_instance_uid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_map_uid_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/anonymize_dicom.py#transform_dataset",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#_pseudonym_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "skills/pydicom/scripts/deidentification_audit.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "skills/pydicom/scripts/deidentification_audit.py#_has_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "skills/pydicom/scripts/deidentification_audit.py#audit_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "skills/pydicom/scripts/deidentification_audit.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "skills/pydicom/scripts/deidentification_audit.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#audit_dataset",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#audit_dataset",
      "target": "skills/pydicom/scripts/_common.py#element_tag",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#audit_dataset",
      "target": "skills/pydicom/scripts/deidentification_audit.py#_has_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#collect_local_files",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#starter_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#validate_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "target": "skills/pydicom/scripts/deidentification_audit.py#audit_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#main",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#main",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#main",
      "target": "skills/pydicom/scripts/deidentification_audit.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/deidentification_audit.py#main",
      "target": "skills/pydicom/scripts/deidentification_audit.py#build_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "skills/pydicom/scripts/dicom_inventory.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "skills/pydicom/scripts/dicom_inventory.py#_issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "skills/pydicom/scripts/dicom_inventory.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "skills/pydicom/scripts/dicom_inventory.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "target": "skills/pydicom/scripts/_common.py#pixel_plan",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "target": "skills/pydicom/scripts/_common.py#valid_uid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "target": "skills/pydicom/scripts/dicom_inventory.py#_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "target": "skills/pydicom/scripts/_common.py#collect_local_files",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "target": "skills/pydicom/scripts/dicom_inventory.py#_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "target": "skills/pydicom/scripts/dicom_inventory.py#inspect_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#main",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#main",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#main",
      "target": "skills/pydicom/scripts/dicom_inventory.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_inventory.py#main",
      "target": "skills/pydicom/scripts/dicom_inventory.py#inventory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#_apply_grayscale_transforms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#_infer_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#_normalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "pydicom.pixels",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#main",
      "target": "skills/pydicom/scripts/dicom_to_image.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#main",
      "target": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#frame_count",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#pixel_plan",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#require_pixel_stack",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/_common.py#safe_plugin_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/dicom_to_image.py#_apply_grayscale_transforms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/dicom_to_image.py#_infer_format",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/dicom_to_image.py#render_frame",
      "target": "skills/pydicom/scripts/dicom_to_image.py#_normalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#_uid_description",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#aggregate_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "skills/pydicom/scripts/extract_metadata.py#render_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#_uid_description",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#aggregate_records",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "target": "skills/pydicom/scripts/_common.py#frame_count",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "target": "skills/pydicom/scripts/extract_metadata.py#_status",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "target": "skills/pydicom/scripts/extract_metadata.py#_uid_description",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#collect_local_files",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "target": "skills/pydicom/scripts/extract_metadata.py#aggregate_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "target": "skills/pydicom/scripts/extract_metadata.py#allowlisted_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#main",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#main",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#main",
      "target": "skills/pydicom/scripts/extract_metadata.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#main",
      "target": "skills/pydicom/scripts/extract_metadata.py#build_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/extract_metadata.py#main",
      "target": "skills/pydicom/scripts/extract_metadata.py#render_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#parse_frame_selection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#main",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "target": "skills/pydicom/scripts/_common.py#pixel_plan",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "target": "skills/pydicom/scripts/_common.py#valid_uid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/pixel_frame_planner.py#plan",
      "target": "skills/pydicom/scripts/pixel_frame_planner.py#parse_frame_selection",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#_codec_capability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#_package_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "pydicom.pixels",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#_codec_capability",
      "target": "skills/pydicom/scripts/_common.py#require_pydicom",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "target": "skills/pydicom/scripts/_common.py#safe_dcmread",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "target": "skills/pydicom/scripts/_common.py#valid_uid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#_codec_capability",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#_package_versions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "target": "skills/pydicom/scripts/_common.py#parse_size",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/transfer_syntax_inspector.py#main",
      "target": "skills/pydicom/scripts/transfer_syntax_inspector.py#inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#_load_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "target": "skills/pydicom/scripts/_common.py#paths_overlap",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#_load_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#main",
      "target": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "target": "skills/pydicom/scripts/_common.py#counter_dict",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "target": "skills/pydicom/scripts/_common.py#derive_uid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "target": "skills/pydicom/scripts/_common.py#sha256_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pydicom/scripts/uid_mapping_validator.py#validate_mapping",
      "target": "skills/pydicom/scripts/_common.py#valid_uid",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pyhealth/assets/starter_pipeline.py",
      "target": "pyhealth.datasets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyhealth/assets/starter_pipeline.py",
      "target": "pyhealth.metrics.binary",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyhealth/assets/starter_pipeline.py",
      "target": "pyhealth.models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyhealth/assets/starter_pipeline.py",
      "target": "pyhealth.tasks",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyhealth/assets/starter_pipeline.py",
      "target": "pyhealth.trainer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_endpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_exact_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_parse_float_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_parse_int_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_string_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#_xyz",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#emit_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#geometry_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#load_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#plan_transfers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#row_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#safe_input_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#validate_well",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_endpoint",
      "target": "skills/pylabrobot/scripts/_common.py#_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_endpoint",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_exact_keys",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_integer",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_name",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_number",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_parse_float_text",
      "target": "skills/pylabrobot/scripts/_common.py#_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_parse_float_text",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_parse_int_text",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_reject_constant",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_string_list",
      "target": "skills/pylabrobot/scripts/_common.py#_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_string_list",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_unique_object",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "target": "skills/pylabrobot/scripts/_common.py#_exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "target": "skills/pylabrobot/scripts/_common.py#_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "target": "skills/pylabrobot/scripts/_common.py#_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_xyz",
      "target": "skills/pylabrobot/scripts/_common.py#_exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#_xyz",
      "target": "skills/pylabrobot/scripts/_common.py#_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#emit_error",
      "target": "skills/pylabrobot/scripts/_common.py#emit_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#load_csv",
      "target": "skills/pylabrobot/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#load_csv",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#load_json",
      "target": "skills/pylabrobot/scripts/_common.py#safe_input_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#load_json",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#plan_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#validate_well",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#plan_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#safe_input_path",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_string_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_validate_grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#_xyz",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#validate_well",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_manifest",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#_endpoint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#_parse_float_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#_parse_int_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_well",
      "target": "skills/pylabrobot/scripts/_common.py#row_index",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#validate_well",
      "target": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "skills/pylabrobot/scripts/check_deck_geometry.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "skills/pylabrobot/scripts/check_deck_geometry.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "skills/pylabrobot/scripts/check_deck_geometry.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py#main",
      "target": "skills/pylabrobot/scripts/_common.py#geometry_report",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/check_deck_geometry.py#main",
      "target": "skills/pylabrobot/scripts/check_deck_geometry.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "skills/pylabrobot/scripts/generate_simulation_plan.py#_steps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "skills/pylabrobot/scripts/generate_simulation_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "target": "skills/pylabrobot/scripts/_common.py#geometry_report",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "target": "skills/pylabrobot/scripts/_common.py#plan_transfers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "target": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "target": "skills/pylabrobot/scripts/generate_simulation_plan.py#_steps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/generate_simulation_plan.py#main",
      "target": "skills/pylabrobot/scripts/generate_simulation_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#_class_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#inspect_installation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "inspect",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.centrifuge",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.heating_shaking",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.liquid_handling",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.liquid_handling.backends",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.plate_reading",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.pumps",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.scales",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.shaking",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.temperature_controlling",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "pylabrobot.visualizer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py#inspect_installation",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#_class_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py#main",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/inspect_backends.py#main",
      "target": "skills/pylabrobot/scripts/inspect_backends.py#inspect_installation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "skills/pylabrobot/scripts/plan_transfers.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "skills/pylabrobot/scripts/plan_transfers.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "skills/pylabrobot/scripts/plan_transfers.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py#main",
      "target": "skills/pylabrobot/scripts/_common.py#plan_transfers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py#main",
      "target": "skills/pylabrobot/scripts/_common.py#validate_transfers",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pylabrobot/scripts/plan_transfers.py#main",
      "target": "skills/pylabrobot/scripts/plan_transfers.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "skills/pylabrobot/scripts/validate_manifest.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "skills/pylabrobot/scripts/validate_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "skills/pylabrobot/scripts/validate_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pylabrobot/scripts/validate_manifest.py#main",
      "target": "skills/pylabrobot/scripts/validate_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#_reject_duplicate_pairs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#atomic_link_from_temp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#json_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#load_strict_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#load_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#package_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#reject_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#safe_error_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#sha256_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#structure_oxidation_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "skills/pymatgen/scripts/_common.py#write_text_new",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "pymatgen.core",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "pymatgen.io.cif",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#_reject_constant",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#_reject_duplicate_pairs",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#atomic_link_from_temp",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#checked_input_file",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#checked_input_file",
      "target": "skills/pymatgen/scripts/_common.py#reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#checked_output_file",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#checked_output_file",
      "target": "skills/pymatgen/scripts/_common.py#reject_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#emit_json",
      "target": "skills/pymatgen/scripts/_common.py#json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#finite_float",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#load_strict_json",
      "target": "skills/pymatgen/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#load_strict_json",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#load_structure",
      "target": "skills/pymatgen/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#load_structure",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#reject_url",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#write_json_new",
      "target": "skills/pymatgen/scripts/_common.py#json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#write_json_new",
      "target": "skills/pymatgen/scripts/_common.py#write_text_new",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/_common.py#write_text_new",
      "target": "skills/pymatgen/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "skills/pymatgen/scripts/artifact_manifest.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "skills/pymatgen/scripts/artifact_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "skills/pymatgen/scripts/artifact_manifest.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "mimetypes",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/artifact_manifest.py#main",
      "target": "skills/pymatgen/scripts/artifact_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#minimum_distance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#validate_composition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#validate_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "pymatgen.core",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "target": "skills/pymatgen/scripts/_common.py#load_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#validate_composition",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#main",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#validate_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#validate_structure",
      "target": "skills/pymatgen/scripts/_common.py#structure_oxidation_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/composition_structure_validator.py#validate_structure",
      "target": "skills/pymatgen/scripts/composition_structure_validator.py#minimum_distance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py",
      "target": "skills/pymatgen/scripts/io_conversion_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py",
      "target": "skills/pymatgen/scripts/io_conversion_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py",
      "target": "skills/pymatgen/scripts/io_conversion_plan.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py",
      "target": "skills/pymatgen/scripts/io_conversion_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py#main",
      "target": "skills/pymatgen/scripts/io_conversion_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/io_conversion_plan.py#main",
      "target": "skills/pymatgen/scripts/io_conversion_plan.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#checked_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#csv_tokens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#document_to_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#execute_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#parse_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#plan_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "skills/pymatgen/scripts/mp_query.py#query_contract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "mp_api.client",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "mp_api.client.core.exceptions",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#execute_query",
      "target": "skills/pymatgen/scripts/_common.py#safe_error_message",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#execute_query",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#execute_query",
      "target": "skills/pymatgen/scripts/mp_query.py#document_to_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#main",
      "target": "skills/pymatgen/scripts/mp_query.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#main",
      "target": "skills/pymatgen/scripts/mp_query.py#execute_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#main",
      "target": "skills/pymatgen/scripts/mp_query.py#plan_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#main",
      "target": "skills/pymatgen/scripts/mp_query.py#query_contract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#query_contract",
      "target": "skills/pymatgen/scripts/mp_query.py#checked_range",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#query_contract",
      "target": "skills/pymatgen/scripts/mp_query.py#csv_tokens",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/mp_query.py#query_contract",
      "target": "skills/pymatgen/scripts/mp_query.py#parse_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#entries_from_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#phase_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#validate_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#write_plot_new",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "pymatgen.analysis.phase_diagram",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "pymatgen.core",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "pymatgen.entries.computed_entries",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#entries_from_payload",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#validate_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#entries_from_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#phase_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#main",
      "target": "skills/pymatgen/scripts/phase_diagram_generator.py#write_plot_new",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/phase_diagram_generator.py#write_plot_new",
      "target": "skills/pymatgen/scripts/_common.py#atomic_link_from_temp",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#minimum_periodic_distance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#neighbor_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#site_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#symmetry_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "pymatgen.analysis.local_env",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "pymatgen.symmetry.analyzer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "target": "skills/pymatgen/scripts/_common.py#structure_oxidation_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#minimum_periodic_distance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#neighbor_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#site_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#symmetry_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "target": "skills/pymatgen/scripts/_common.py#load_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#analyze_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_analyzer.py#main",
      "target": "skills/pymatgen/scripts/structure_analyzer.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "skills/pymatgen/scripts/structure_converter.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "skills/pymatgen/scripts/structure_converter.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "skills/pymatgen/scripts/structure_converter.py#conversion_risks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "skills/pymatgen/scripts/structure_converter.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "skills/pymatgen/scripts/structure_converter.py#render_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "pymatgen.io.vasp",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#conversion_risks",
      "target": "skills/pymatgen/scripts/_common.py#structure_oxidation_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#main",
      "target": "skills/pymatgen/scripts/_common.py#load_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#main",
      "target": "skills/pymatgen/scripts/_common.py#structure_oxidation_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_text_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#main",
      "target": "skills/pymatgen/scripts/structure_converter.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#main",
      "target": "skills/pymatgen/scripts/structure_converter.py#conversion_risks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/structure_converter.py#main",
      "target": "skills/pymatgen/scripts/structure_converter.py#render_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#analyze_grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#parse_tolerances",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "pymatgen.symmetry.analyzer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "target": "skills/pymatgen/scripts/_common.py#load_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "target": "skills/pymatgen/scripts/_common.py#write_json_new",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#analyze_grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#main",
      "target": "skills/pymatgen/scripts/symmetry_sensitivity_report.py#parse_tolerances",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py",
      "target": "skills/pymc/scripts/model_comparison.py#check_loo_reliability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py",
      "target": "skills/pymc/scripts/model_comparison.py#compare_models",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py",
      "target": "skills/pymc/scripts/model_comparison.py#cross_validation_comparison",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py",
      "target": "skills/pymc/scripts/model_comparison.py#model_averaging",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py",
      "target": "skills/pymc/scripts/model_comparison.py#plot_model_comparison",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_comparison.py#model_averaging",
      "target": "skills/pymc/scripts/model_comparison.py#compare_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py",
      "target": "skills/pymc/scripts/model_diagnostics.py#check_diagnostics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py",
      "target": "skills/pymc/scripts/model_diagnostics.py#compare_prior_posterior",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py",
      "target": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report",
      "target": "skills/pymc/scripts/model_diagnostics.py#check_diagnostics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report",
      "target": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report._save",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report",
      "target": "skills/pymc/scripts/model_diagnostics.py#create_diagnostic_report._save",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "skills/pymoo/scripts/custom_problem_example.py#solve_constrained_problem",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "skills/pymoo/scripts/custom_problem_example.py#solve_custom_problem",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "skills/pymoo/scripts/custom_problem_example.py#solve_constrained_problem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "skills/pymoo/scripts/custom_problem_example.py#solve_custom_problem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "pymoo.algorithms.moo.nsga2",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "pymoo.core.problem",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "pymoo.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py",
      "target": "pymoo.visualization.scatter",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem",
      "target": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem",
      "target": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem._evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem",
      "target": "ElementwiseProblem",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem",
      "target": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem",
      "target": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem._evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem",
      "target": "ElementwiseProblem",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#solve_constrained_problem",
      "target": "skills/pymoo/scripts/custom_problem_example.py#ConstrainedProblem",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/custom_problem_example.py#solve_custom_problem",
      "target": "skills/pymoo/scripts/custom_problem_example.py#MyBiObjectiveProblem",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#apply_pseudo_weights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#compare_different_preferences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#find_extreme_solutions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#run_optimization_for_decision_making",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "skills/pymoo/scripts/decision_making_example.py#visualize_selected_solutions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "pymoo.algorithms.moo.nsga2",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "pymoo.mcdm.pseudo_weights",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "pymoo.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "pymoo.problems",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "pymoo.visualization.petal",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py",
      "target": "pymoo.visualization.scatter",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py#compare_different_preferences",
      "target": "skills/pymoo/scripts/decision_making_example.py#apply_pseudo_weights",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py#main",
      "target": "skills/pymoo/scripts/decision_making_example.py#compare_different_preferences",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py#main",
      "target": "skills/pymoo/scripts/decision_making_example.py#find_extreme_solutions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py#main",
      "target": "skills/pymoo/scripts/decision_making_example.py#run_optimization_for_decision_making",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/decision_making_example.py#main",
      "target": "skills/pymoo/scripts/decision_making_example.py#visualize_selected_solutions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "skills/pymoo/scripts/many_objective_example.py#run_many_objective_optimization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "skills/pymoo/scripts/many_objective_example.py#run_many_objective_optimization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "pymoo.algorithms.moo.nsga3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "pymoo.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "pymoo.problems",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "pymoo.util.ref_dirs",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/many_objective_example.py",
      "target": "pymoo.visualization.pcp",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/multi_objective_example.py",
      "target": "skills/pymoo/scripts/multi_objective_example.py#run_multi_objective_optimization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/multi_objective_example.py",
      "target": "skills/pymoo/scripts/multi_objective_example.py#run_multi_objective_optimization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/multi_objective_example.py",
      "target": "pymoo.algorithms.moo.nsga2",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/multi_objective_example.py",
      "target": "pymoo.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/multi_objective_example.py",
      "target": "pymoo.problems",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/multi_objective_example.py",
      "target": "pymoo.visualization.scatter",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "skills/pymoo/scripts/single_objective_example.py#run_single_objective_optimization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "skills/pymoo/scripts/single_objective_example.py#run_single_objective_optimization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.algorithms.soo.nonconvex.ga",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.operators.crossover.sbx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.operators.mutation.pm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.operators.sampling.rnd",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.problems",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pymoo/scripts/single_objective_example.py",
      "target": "pymoo.termination",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/accurate_mass_search.py",
      "target": "skills/pyopenms/scripts/accurate_mass_search.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/accurate_mass_search.py",
      "target": "skills/pyopenms/scripts/accurate_mass_search.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/accurate_mass_search.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/accurate_mass_search.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/accurate_mass_search.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#align",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#link",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#load_or_detect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "detect_features_metabo",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py#main",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#align",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py#main",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#link",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/align_link_quantify.py#main",
      "target": "skills/pyopenms/scripts/align_link_quantify.py#load_or_detect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "target": "skills/pyopenms/scripts/consensus_to_matrix.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "target": "skills/pyopenms/scripts/consensus_to_matrix.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/consensus_to_matrix.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "skills/pyopenms/scripts/convert_format.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "skills/pyopenms/scripts/convert_format.py#filter_experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "skills/pyopenms/scripts/convert_format.py#load_experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "skills/pyopenms/scripts/convert_format.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "skills/pyopenms/scripts/convert_format.py#store_experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py#main",
      "target": "skills/pyopenms/scripts/convert_format.py#filter_experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py#main",
      "target": "skills/pyopenms/scripts/convert_format.py#load_experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/convert_format.py#main",
      "target": "skills/pyopenms/scripts/convert_format.py#store_experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_adducts.py",
      "target": "skills/pyopenms/scripts/detect_adducts.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_adducts.py",
      "target": "skills/pyopenms/scripts/detect_adducts.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_adducts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_adducts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_adducts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py",
      "target": "skills/pyopenms/scripts/detect_features_centroided.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py",
      "target": "skills/pyopenms/scripts/detect_features_centroided.py#detect_features",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py",
      "target": "skills/pyopenms/scripts/detect_features_centroided.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_centroided.py#main",
      "target": "skills/pyopenms/scripts/detect_features_centroided.py#detect_features",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py",
      "target": "skills/pyopenms/scripts/detect_features_metabo.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py",
      "target": "skills/pyopenms/scripts/detect_features_metabo.py#detect_features",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py",
      "target": "skills/pyopenms/scripts/detect_features_metabo.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/detect_features_metabo.py#main",
      "target": "skills/pyopenms/scripts/detect_features_metabo.py#detect_features",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "skills/pyopenms/scripts/digest_protein.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "skills/pyopenms/scripts/digest_protein.py#digest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "skills/pyopenms/scripts/digest_protein.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "skills/pyopenms/scripts/digest_protein.py#read_fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py#main",
      "target": "skills/pyopenms/scripts/digest_protein.py#digest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/digest_protein.py#main",
      "target": "skills/pyopenms/scripts/digest_protein.py#read_fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "skills/pyopenms/scripts/export_gnps_sirius.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "skills/pyopenms/scripts/export_gnps_sirius.py#export_gnps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "skills/pyopenms/scripts/export_gnps_sirius.py#export_sirius",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "skills/pyopenms/scripts/export_gnps_sirius.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py#main",
      "target": "skills/pyopenms/scripts/export_gnps_sirius.py#export_gnps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/export_gnps_sirius.py#main",
      "target": "skills/pyopenms/scripts/export_gnps_sirius.py#export_sirius",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "skills/pyopenms/scripts/extract_chromatograms.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "skills/pyopenms/scripts/extract_chromatograms.py#collect_ms1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "skills/pyopenms/scripts/extract_chromatograms.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/extract_chromatograms.py#main",
      "target": "skills/pyopenms/scripts/extract_chromatograms.py#collect_ms1",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#dump_spectra_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_consensus_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_feature_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_idxml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#dump_spectra_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_consensus_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/inspect_ms_data.py#main",
      "target": "skills/pyopenms/scripts/inspect_ms_data.py#summarize_idxml",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/mass_calculator.py",
      "target": "skills/pyopenms/scripts/mass_calculator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/mass_calculator.py",
      "target": "skills/pyopenms/scripts/mass_calculator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/mass_calculator.py",
      "target": "skills/pyopenms/scripts/mass_calculator.py#report_isotopes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/mass_calculator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/mass_calculator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/mass_calculator.py#main",
      "target": "skills/pyopenms/scripts/mass_calculator.py#report_isotopes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#load_exp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#plot_featuremap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#plot_map2d",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#plot_spectrum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#plot_tic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py#plot_map2d",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#load_exp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py#plot_spectrum",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#load_exp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/plot_ms_data.py#plot_tic",
      "target": "skills/pyopenms/scripts/plot_ms_data.py#load_exp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "skills/pyopenms/scripts/process_identifications.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "skills/pyopenms/scripts/process_identifications.py#index_peptides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "skills/pyopenms/scripts/process_identifications.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_identifications.py#main",
      "target": "skills/pyopenms/scripts/process_identifications.py#index_peptides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_spectra.py",
      "target": "skills/pyopenms/scripts/process_spectra.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_spectra.py",
      "target": "skills/pyopenms/scripts/process_spectra.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_spectra.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_spectra.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/process_spectra.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "target": "skills/pyopenms/scripts/theoretical_spectrum.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "target": "skills/pyopenms/scripts/theoretical_spectrum.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pyopenms/scripts/theoretical_spectrum.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#alignment_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#average",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#empty_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#require_local_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#selected_reads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "skills/pysam/scripts/alignment_qc.py#write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "pysam",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "target": "skills/pysam/scripts/alignment_qc.py#alignment_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "target": "skills/pysam/scripts/alignment_qc.py#average",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "target": "skills/pysam/scripts/alignment_qc.py#empty_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "target": "skills/pysam/scripts/alignment_qc.py#ratio",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "target": "skills/pysam/scripts/alignment_qc.py#require_local_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "target": "skills/pysam/scripts/alignment_qc.py#selected_reads",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#main",
      "target": "skills/pysam/scripts/alignment_qc.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#main",
      "target": "skills/pysam/scripts/alignment_qc.py#inspect_alignments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/alignment_qc.py#main",
      "target": "skills/pysam/scripts/alignment_qc.py#write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#alignment_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#exclusion_reasons",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#require_local_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#selected_reads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#validate_destinations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "skills/pysam/scripts/filter_alignments.py#write_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "pysam",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "target": "skills/pysam/scripts/filter_alignments.py#alignment_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "target": "skills/pysam/scripts/filter_alignments.py#exclusion_reasons",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "target": "skills/pysam/scripts/filter_alignments.py#require_local_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "target": "skills/pysam/scripts/filter_alignments.py#selected_reads",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "target": "skills/pysam/scripts/filter_alignments.py#validate_destinations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#main",
      "target": "skills/pysam/scripts/filter_alignments.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#main",
      "target": "skills/pysam/scripts/filter_alignments.py#filter_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/filter_alignments.py#main",
      "target": "skills/pysam/scripts/filter_alignments.py#write_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#alignment_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#contig_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#detect_kind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_alignment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_fastx",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_tabix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_variant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#limited",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#require_local_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#variant_index_loaded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "skills/pysam/scripts/inspect_hts.py#write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "pysam",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#contig_records",
      "target": "skills/pysam/scripts/inspect_hts.py#limited",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_alignment",
      "target": "skills/pysam/scripts/inspect_hts.py#alignment_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_alignment",
      "target": "skills/pysam/scripts/inspect_hts.py#contig_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_alignment",
      "target": "skills/pysam/scripts/inspect_hts.py#limited",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_fasta",
      "target": "skills/pysam/scripts/inspect_hts.py#contig_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#detect_kind",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_alignment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_fastx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_tabix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "target": "skills/pysam/scripts/inspect_hts.py#require_local_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_tabix",
      "target": "skills/pysam/scripts/inspect_hts.py#limited",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_variant",
      "target": "skills/pysam/scripts/inspect_hts.py#limited",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#inspect_variant",
      "target": "skills/pysam/scripts/inspect_hts.py#variant_index_loaded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#main",
      "target": "skills/pysam/scripts/inspect_hts.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#main",
      "target": "skills/pysam/scripts/inspect_hts.py#inspect_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/inspect_hts.py#main",
      "target": "skills/pysam/scripts/inspect_hts.py#write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#classify_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#filter_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#is_symbolic_or_breakend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#require_local_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#update_genotype_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#update_substitution_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#variant_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "skills/pysam/scripts/variant_summary.py#write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "pysam",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#classify_record",
      "target": "skills/pysam/scripts/variant_summary.py#is_symbolic_or_breakend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#main",
      "target": "skills/pysam/scripts/variant_summary.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#main",
      "target": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#main",
      "target": "skills/pysam/scripts/variant_summary.py#write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "target": "skills/pysam/scripts/variant_summary.py#classify_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "target": "skills/pysam/scripts/variant_summary.py#filter_status",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "target": "skills/pysam/scripts/variant_summary.py#require_local_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "target": "skills/pysam/scripts/variant_summary.py#update_genotype_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "target": "skills/pysam/scripts/variant_summary.py#update_substitution_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pysam/scripts/variant_summary.py#summarize_variants",
      "target": "skills/pysam/scripts/variant_summary.py#variant_records",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#read_json_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#safe_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#safe_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#safe_relative_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#truncate_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "skills/pytdc/scripts/_common.py#validate_fractions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#bounded_int",
      "target": "skills/pytdc/scripts/_common.py#bounded_int.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#canonical_name",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#emit_json",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#emit_json",
      "target": "skills/pytdc/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#emit_json",
      "target": "skills/pytdc/scripts/_common.py#truncate_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#read_json_file",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#read_json_file",
      "target": "skills/pytdc/scripts/_common.py#read_json_file.reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#read_json_file.reject_constant",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#safe_directory",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#safe_directory",
      "target": "skills/pytdc/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#safe_input_file",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#safe_input_file",
      "target": "skills/pytdc/scripts/_common.py#safe_relative_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#safe_relative_path",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#truncate_value",
      "target": "skills/pytdc/scripts/_common.py#truncate_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/_common.py#validate_fractions",
      "target": "skills/pytdc/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#_validate_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#benchmark_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#execute_evaluation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_prediction_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_predictions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#validate_seeds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/_common.py#safe_directory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#benchmark_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#execute_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_predictions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#main",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#validate_seeds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_prediction_mapping",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_prediction_mapping",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#_validate_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_predictions",
      "target": "skills/pytdc/scripts/benchmark_evaluation.py#normalize_prediction_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "skills/pytdc/scripts/cache_audit.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "skills/pytdc/scripts/cache_audit.py#audit_cache",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "skills/pytdc/scripts/cache_audit.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "skills/pytdc/scripts/cache_audit.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "heapq",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py#audit_cache",
      "target": "skills/pytdc/scripts/cache_audit.py#audit_cache.on_error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py#audit_cache",
      "target": "skills/pytdc/scripts/cache_audit.py#audit_cache.on_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py#main",
      "target": "skills/pytdc/scripts/_common.py#safe_directory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py#main",
      "target": "skills/pytdc/scripts/cache_audit.py#audit_cache",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/cache_audit.py#main",
      "target": "skills/pytdc/scripts/cache_audit.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "skills/pytdc/scripts/discover_metadata.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "skills/pytdc/scripts/discover_metadata.py#_window",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "skills/pytdc/scripts/discover_metadata.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "skills/pytdc/scripts/discover_metadata.py#collect_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "skills/pytdc/scripts/discover_metadata.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py#collect_metadata",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py#collect_metadata",
      "target": "skills/pytdc/scripts/discover_metadata.py#_window",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py#main",
      "target": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py#main",
      "target": "skills/pytdc/scripts/discover_metadata.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/discover_metadata.py#main",
      "target": "skills/pytdc/scripts/discover_metadata.py#collect_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#_audit_cold_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#_summarize_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#execute_split",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#normalize_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "skills/pytdc/scripts/load_and_split_data.py#validate_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#_summarize_frame",
      "target": "skills/pytdc/scripts/_common.py#truncate_value",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#execute_split",
      "target": "skills/pytdc/scripts/load_and_split_data.py#_audit_cold_columns",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#execute_split",
      "target": "skills/pytdc/scripts/load_and_split_data.py#_summarize_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/_common.py#safe_directory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/_common.py#validate_fractions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/load_and_split_data.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/load_and_split_data.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/load_and_split_data.py#execute_split",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/load_and_split_data.py#normalize_columns",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#main",
      "target": "skills/pytdc/scripts/load_and_split_data.py#validate_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/load_and_split_data.py#validate_request",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#_add_output_arguments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#_working_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#classify_oracle",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#dataset_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#execute_dataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#execute_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#load_smiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "skills/pytdc/scripts/molecular_generation.py#score_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "tdc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "tdc.generation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#build_parser",
      "target": "skills/pytdc/scripts/molecular_generation.py#_add_output_arguments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#classify_oracle",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#execute_dataset",
      "target": "skills/pytdc/scripts/_common.py#truncate_value",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#execute_scores",
      "target": "skills/pytdc/scripts/_common.py#truncate_value",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#execute_scores",
      "target": "skills/pytdc/scripts/molecular_generation.py#_working_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/_common.py#canonical_name",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/_common.py#load_pytdc_metadata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/_common.py#safe_directory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/_common.py#validate_fractions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#classify_oracle",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#dataset_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#execute_dataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#execute_scores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#load_smiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytdc/scripts/molecular_generation.py#main",
      "target": "skills/pytdc/scripts/molecular_generation.py#score_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#basic_trainer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#debug_trainer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#large_model_fsdp_trainer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#multi_gpu_ddp_trainer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#production_single_gpu_trainer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#basic_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#debug_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#deepspeed_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#hyperparameter_tuning_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#large_model_fsdp_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#multi_gpu_ddp_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#overfit_test_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#production_single_gpu_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#reproducible_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "skills/pytorch-lightning/scripts/quick_trainer_setup.py#time_limited_trainer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "lightning.pytorch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "lightning.pytorch.accelerators",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "lightning.pytorch.callbacks",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/quick_trainer_setup.py",
      "target": "lightning.pytorch.strategies",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.prepare_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.setup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.train_dataloader",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.val_dataloader",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "torch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py",
      "target": "torch.utils.data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset.__getitem__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset.__len__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "target": "Dataset",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule._get_test_transforms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule._get_train_transforms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.load_state_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.predict_dataloader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.prepare_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.setup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.state_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.teardown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.test_dataloader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.train_dataloader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.val_dataloader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.setup",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#CustomDataset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.setup",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule._get_test_transforms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule.setup",
      "target": "skills/pytorch-lightning/scripts/template_datamodule.py#TemplateDataModule._get_train_transforms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "target": "torch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "target": "torch.optim",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py",
      "target": "torch.optim.lr_scheduler",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.configure_optimizers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.forward",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.on_train_epoch_end",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.on_validation_epoch_end",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.predict_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.test_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.training_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule",
      "target": "skills/pytorch-lightning/scripts/template_lightning_module.py#TemplateLightningModule.validation_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#collect_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#import_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#installed_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "skills/qiskit/scripts/check_environment.py#print_human_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "qiskit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "qiskit.primitives",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "qiskit.transpiler",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "struct",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py#collect_report",
      "target": "skills/qiskit/scripts/check_environment.py#import_status",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py#collect_report",
      "target": "skills/qiskit/scripts/check_environment.py#installed_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py#main",
      "target": "skills/qiskit/scripts/check_environment.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py#main",
      "target": "skills/qiskit/scripts/check_environment.py#collect_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/check_environment.py#main",
      "target": "skills/qiskit/scripts/check_environment.py#print_human_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#distribution_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#inspect_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#positive_qubits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#print_human",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "skills/qiskit/scripts/inspect_runtime.py#select_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "qiskit_ibm_runtime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py#inspect_backend",
      "target": "skills/qiskit/scripts/inspect_runtime.py#distribution_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py#main",
      "target": "skills/qiskit/scripts/inspect_runtime.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py#main",
      "target": "skills/qiskit/scripts/inspect_runtime.py#inspect_backend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py#main",
      "target": "skills/qiskit/scripts/inspect_runtime.py#print_human",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/inspect_runtime.py#main",
      "target": "skills/qiskit/scripts/inspect_runtime.py#select_backend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#positive_bounded_shots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#print_human",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#qiskit_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "skills/qiskit/scripts/run_local_primitives.py#run_workflow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "qiskit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "qiskit.circuit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "qiskit.primitives",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "qiskit.quantum_info",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py#main",
      "target": "skills/qiskit/scripts/run_local_primitives.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py#main",
      "target": "skills/qiskit/scripts/run_local_primitives.py#print_human",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py#main",
      "target": "skills/qiskit/scripts/run_local_primitives.py#run_workflow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qiskit/scripts/run_local_primitives.py#run_workflow",
      "target": "skills/qiskit/scripts/run_local_primitives.py#qiskit_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#bounded_dimensions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#ensure_strictly_increasing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#load_qutip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#parse_csv_ints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#strict_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#to_jsonable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "skills/qutip/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "qutip",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#_reject_constant",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#_unique_object",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#bounded_dimensions",
      "target": "skills/qutip/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#bounded_dimensions",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#bounded_int",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#checked_input_file",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#checked_output_file",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/_common.py#emit_json",
      "target": "skills/qutip/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#emit_json",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#emit_json",
      "target": "skills/qutip/scripts/_common.py#strict_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#ensure_strictly_increasing",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#ensure_strictly_increasing",
      "target": "skills/qutip/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#finite_float",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#load_json_object",
      "target": "skills/qutip/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#load_json_object",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#load_qutip",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#parse_csv_ints",
      "target": "skills/qutip/scripts/_common.py#bounded_int",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#parse_csv_ints",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#strict_json_bytes",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#strict_json_bytes",
      "target": "skills/qutip/scripts/_common.py#to_jsonable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#to_jsonable",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#to_jsonable",
      "target": "skills/qutip/scripts/_common.py#to_jsonable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/_common.py#validate_keys",
      "target": "skills/qutip/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "skills/qutip/scripts/convergence_sweep.py#_base_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "skills/qutip/scripts/convergence_sweep.py#_parse_rtols",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "skills/qutip/scripts/convergence_sweep.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "skills/qutip/scripts/convergence_sweep.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "two_level_simulation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#_base_config",
      "target": "skills/qutip/scripts/two_level_simulation.py#SimulationConfig",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#build_parser",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#main",
      "target": "skills/qutip/scripts/convergence_sweep.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#main",
      "target": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "target": "skills/qutip/scripts/_common.py#load_qutip",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "target": "skills/qutip/scripts/_common.py#parse_csv_ints",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "target": "skills/qutip/scripts/convergence_sweep.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/convergence_sweep.py#run_sweep",
      "target": "skills/qutip/scripts/convergence_sweep.py#_parse_rtols",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_complex_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_numeric_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_state_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#_numeric_data",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_complex_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#build_parser",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#main",
      "target": "skills/qutip/scripts/qobj_model_validator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#main",
      "target": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "target": "skills/qutip/scripts/_common.py#bounded_dimensions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "target": "skills/qutip/scripts/_common.py#load_qutip",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_numeric_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/qobj_model_validator.py#validate_model",
      "target": "skills/qutip/scripts/qobj_model_validator.py#_state_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#_audit_convergence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#_audit_simulation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#_finite_sequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#audit_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "skills/qutip/scripts/result_audit.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#_audit_convergence",
      "target": "skills/qutip/scripts/result_audit.py#_check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#_audit_simulation",
      "target": "skills/qutip/scripts/result_audit.py#_check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#_audit_simulation",
      "target": "skills/qutip/scripts/result_audit.py#_finite_sequence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#audit_document",
      "target": "skills/qutip/scripts/result_audit.py#_audit_convergence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#audit_document",
      "target": "skills/qutip/scripts/result_audit.py#_audit_simulation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#build_parser",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#main",
      "target": "skills/qutip/scripts/result_audit.py#audit_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/result_audit.py#main",
      "target": "skills/qutip/scripts/result_audit.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py",
      "target": "skills/qutip/scripts/solver_config_planner.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py",
      "target": "skills/qutip/scripts/solver_config_planner.py#create_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py",
      "target": "skills/qutip/scripts/solver_config_planner.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py#build_parser",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py#main",
      "target": "skills/qutip/scripts/solver_config_planner.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/solver_config_planner.py#main",
      "target": "skills/qutip/scripts/solver_config_planner.py#create_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "skills/qutip/scripts/steady_state_spectrum_planner.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "skills/qutip/scripts/steady_state_spectrum_planner.py#create_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "skills/qutip/scripts/steady_state_spectrum_planner.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py#build_parser",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py#main",
      "target": "skills/qutip/scripts/steady_state_spectrum_planner.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/steady_state_spectrum_planner.py#main",
      "target": "skills/qutip/scripts/steady_state_spectrum_planner.py#create_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#_initial_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#_seed_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#_state_audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "skills/qutip/scripts/two_level_simulation.py#SimulationConfig",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#_seed_manifest",
      "target": "skills/qutip/scripts/_common.py#to_jsonable",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#build_parser",
      "target": "skills/qutip/scripts/_common.py#add_output_arguments",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#main",
      "target": "skills/qutip/scripts/two_level_simulation.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#main",
      "target": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "target": "skills/qutip/scripts/_common.py#load_qutip",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "target": "skills/qutip/scripts/two_level_simulation.py#_initial_state",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "target": "skills/qutip/scripts/two_level_simulation.py#_seed_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#run_simulation",
      "target": "skills/qutip/scripts/two_level_simulation.py#_state_audit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/qutip/scripts/two_level_simulation.py#SimulationConfig",
      "target": "skills/qutip/scripts/two_level_simulation.py#SimulationConfig.from_namespace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#calculate_properties",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#print_properties",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#process_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#process_single_molecule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "skills/rdkit/scripts/molecular_properties.py#write_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "rdkit.Chem",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py#main",
      "target": "skills/rdkit/scripts/molecular_properties.py#print_properties",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py#main",
      "target": "skills/rdkit/scripts/molecular_properties.py#process_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py#main",
      "target": "skills/rdkit/scripts/molecular_properties.py#process_single_molecule",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py#process_file",
      "target": "skills/rdkit/scripts/molecular_properties.py#calculate_properties",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py#process_file",
      "target": "skills/rdkit/scripts/molecular_properties.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/molecular_properties.py#process_single_molecule",
      "target": "skills/rdkit/scripts/molecular_properties.py#calculate_properties",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#generate_fingerprint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#load_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#print_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#similarity_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "skills/rdkit/scripts/similarity_search.py#write_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "rdkit.Chem",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py#main",
      "target": "skills/rdkit/scripts/similarity_search.py#load_molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py#main",
      "target": "skills/rdkit/scripts/similarity_search.py#print_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py#main",
      "target": "skills/rdkit/scripts/similarity_search.py#similarity_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py#main",
      "target": "skills/rdkit/scripts/similarity_search.py#write_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/similarity_search.py#similarity_search",
      "target": "skills/rdkit/scripts/similarity_search.py#generate_fingerprint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#create_pattern_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#filter_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#load_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#print_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#write_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "skills/rdkit/scripts/substructure_filter.py#write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py#main",
      "target": "skills/rdkit/scripts/substructure_filter.py#create_pattern_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py#main",
      "target": "skills/rdkit/scripts/substructure_filter.py#filter_molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py#main",
      "target": "skills/rdkit/scripts/substructure_filter.py#load_molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py#main",
      "target": "skills/rdkit/scripts/substructure_filter.py#print_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py#main",
      "target": "skills/rdkit/scripts/substructure_filter.py#write_molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/rdkit/scripts/substructure_filter.py#main",
      "target": "skills/rdkit/scripts/substructure_filter.py#write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#canonicalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#forecast_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#ForecastMetrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#parse_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#percent_of_baseline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#read_relsa_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#score_to_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#variable_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#canonicalize",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#forecast_metrics",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#ForecastMetrics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#ForecastMetrics",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#ForecastMetrics.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#read_relsa_table",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#canonicalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#score_to_percent",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/_common.py#validate",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_fit_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_select_d",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_indirect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#interpolate_series",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#plot_forecast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#predict_endpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#rolling_forecast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "relsa_score",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "statsmodels.tsa.statespace.sarimax",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "statsmodels.tsa.stattools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_fit_one",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#ArimaFit.label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_fit_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_select_d",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima.attempt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima.attempt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima.attempt",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#_fit_one",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast.metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast.to_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#auto_arima",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#interpolate_series",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_indirect",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_indirect",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_scores",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#Forecast.metrics",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#forecast_metrics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#forecast_metrics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#parse_list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#plot_forecast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#predict_endpoint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#rolling_forecast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#main",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#predict_endpoint",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#rolling_forecast",
      "target": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#forecast_animal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/forecast_relsa.py#summarize",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#forecast_metrics",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_prune_thin_zones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_zone_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#bw_nrd0",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#density_curve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#plot_thresholds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "scipy.stats",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_prune_thin_zones",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_zone_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#density_curve",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#bw_nrd0",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#_prune_thin_zones",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#density_curve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.assign",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#main",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#main",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#find_thresholds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#main",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#plot_thresholds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.assign",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.describe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_edges",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.as_dict",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_edges",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.as_dict",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.assign",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.describe",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_edges",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.describe",
      "target": "skills/relsa-severity-assessment/scripts/kde_thresholds.py#ThresholdResult.zone_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#_filter_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#_parse_score_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#_warn_on_composition_change",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#prepare",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_weights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_reference",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_reference",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#parse_list",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#read_relsa_table",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#score_to_percent",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#variable_columns",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#_filter_group",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#_parse_score_scale",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#build_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#main",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_scores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#prepare",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#percent_of_baseline",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel.describe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel.from_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#ReferenceModel.to_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_scores",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#_warn_on_composition_change",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_scores",
      "target": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_weights",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/relsa-severity-assessment/scripts/relsa_score.py#relsa_weights",
      "target": "skills/relsa-severity-assessment/scripts/_common.py#RelsaDataError",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_claim_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_section_briefs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_synthesis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#bibtex_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#citation_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#classify_publication",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#evidence_quality",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_pmid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_year",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#is_preprint_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#is_scholarly_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#normalize_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#packet_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#reference_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#relevance_tags",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#save_packet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#source_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#split_sentences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_claim_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_coverage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_section_briefs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_synthesis",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_pmid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#normalize_title",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#source_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#is_preprint_url",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_host",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#is_scholarly_url",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#_host",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#classify_publication",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#evidence_quality",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_pmid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#extract_year",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#is_preprint_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#is_scholarly_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#relevance_tags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#source_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#split_sentences",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#packet_markdown",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#citation_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#save_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#bibtex_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/manuscript_packet.py#save_packet",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#packet_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#_load_context",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#_render_human_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#_slug",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#_split_domains",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "manuscript_packet",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#save_packet",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#_load_context",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#_render_human_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#_slug",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#_split_domains",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#main",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.batch_lookup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_api_citations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_citations_from_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._failure_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._find_report_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._is_academic_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_chat",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._perplexity_lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._query_with_context",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._rank_sources_for_extraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._run_parallel_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._search_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._select_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._usage_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.batch_lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_api_citations",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_citations_from_text",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._rank_sources_for_extraction",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._run_parallel_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_chat",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_citations_from_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_chat",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._query_with_context",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_chat",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_citations_from_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._find_report_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._query_with_context",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._run_parallel_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#packet_markdown",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._is_academic_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._query_with_context",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._search_once",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._usage_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._perplexity_lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_api_citations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._perplexity_lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._extract_citations_from_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._perplexity_lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._query_with_context",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._rank_sources_for_extraction",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#normalize_reference",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._rank_sources_for_extraction",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#reference_score",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._search_once",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._search_once",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._run_parallel_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload.walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload.walk",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#canonicalize_url",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload.walk",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._sources_from_payload.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.batch_lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._failure_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_chat",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_research",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._parallel_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._perplexity_lookup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._select_backend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/assets/analysis_template.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#_import_scanpy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#_named_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "skills/scanpy/scripts/_common.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#_import_scanpy",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "target": "skills/scanpy/scripts/_common.py#_import_scanpy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#load_anndata",
      "target": "skills/scanpy/scripts/_common.py#_import_scanpy",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#load_anndata",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#load_anndata",
      "target": "skills/scanpy/scripts/_common.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#save_anndata",
      "target": "skills/scanpy/scripts/_common.py#info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/_common.py#summarize",
      "target": "skills/scanpy/scripts/_common.py#_named_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "skills/scanpy/scripts/annotate.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "skills/scanpy/scripts/annotate.py#load_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "skills/scanpy/scripts/annotate.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#load_mapping",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/annotate.py#main",
      "target": "skills/scanpy/scripts/annotate.py#load_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py",
      "target": "skills/scanpy/scripts/batch_correct.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py",
      "target": "skills/scanpy/scripts/batch_correct.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/batch_correct.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py",
      "target": "skills/scanpy/scripts/cluster.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py",
      "target": "skills/scanpy/scripts/cluster.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/cluster.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/convert.py",
      "target": "skills/scanpy/scripts/convert.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/convert.py",
      "target": "skills/scanpy/scripts/convert.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/convert.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/convert.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/convert.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/convert.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/convert.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/convert.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py",
      "target": "skills/scanpy/scripts/find_markers.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py",
      "target": "skills/scanpy/scripts/find_markers.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/find_markers.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py",
      "target": "skills/scanpy/scripts/inspect_data.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py",
      "target": "skills/scanpy/scripts/inspect_data.py#_is_integer_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py",
      "target": "skills/scanpy/scripts/inspect_data.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/inspect_data.py#main",
      "target": "skills/scanpy/scripts/inspect_data.py#_is_integer_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/plot.py",
      "target": "skills/scanpy/scripts/plot.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/plot.py",
      "target": "skills/scanpy/scripts/plot.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/plot.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/plot.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/plot.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/plot.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/plot.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py",
      "target": "skills/scanpy/scripts/preprocess.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py",
      "target": "skills/scanpy/scripts/preprocess.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/preprocess.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py",
      "target": "skills/scanpy/scripts/pseudobulk.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py",
      "target": "skills/scanpy/scripts/pseudobulk.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/pseudobulk.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py",
      "target": "skills/scanpy/scripts/qc_analysis.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py",
      "target": "skills/scanpy/scripts/qc_analysis.py#annotate_gene_classes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py",
      "target": "skills/scanpy/scripts/qc_analysis.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py",
      "target": "skills/scanpy/scripts/qc_analysis.py#make_qc_plots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/qc_analysis.py#annotate_gene_classes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/qc_analysis.py#main",
      "target": "skills/scanpy/scripts/qc_analysis.py#make_qc_plots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py",
      "target": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py",
      "target": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/reduce_dimensions.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "skills/scanpy/scripts/run_pipeline.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "skills/scanpy/scripts/run_pipeline.py#apply_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "skills/scanpy/scripts/run_pipeline.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "skills/scanpy/scripts/run_pipeline.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py#main",
      "target": "skills/scanpy/scripts/run_pipeline.py#apply_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/run_pipeline.py#main",
      "target": "skills/scanpy/scripts/run_pipeline.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py",
      "target": "skills/scanpy/scripts/score_genes.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py",
      "target": "skills/scanpy/scripts/score_genes.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/score_genes.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/subset.py",
      "target": "skills/scanpy/scripts/subset.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/subset.py",
      "target": "skills/scanpy/scripts/subset.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/subset.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/subset.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scanpy/scripts/subset.py#main",
      "target": "skills/scanpy/scripts/_common.py#add_io_args",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/subset.py#main",
      "target": "skills/scanpy/scripts/_common.py#configure_scanpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/subset.py#main",
      "target": "skills/scanpy/scripts/_common.py#die",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/subset.py#main",
      "target": "skills/scanpy/scripts/_common.py#load_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scanpy/scripts/subset.py#main",
      "target": "skills/scanpy/scripts/_common.py#save_anndata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#_check_local_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#_pairs_no_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#_scan_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#_validate_proxy_absence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#error_issues",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#exact_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#failure_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_nonempty_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#read_csv_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#require_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#rounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#scale_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#score_evaluation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_text_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#weights_by_criterion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "skills/scholar-evaluation/scripts/_common.py#write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_check_local_file",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_pairs_no_duplicates",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_scan_structure",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_validate_proxy_absence",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "target": "skills/scholar-evaluation/scripts/_common.py#exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#exact_keys",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#failure_report",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#is_reference",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#read_csv_text",
      "target": "skills/scholar-evaluation/scripts/_common.py#_check_local_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#read_csv_text",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#read_json",
      "target": "skills/scholar-evaluation/scripts/_common.py#_check_local_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#read_json",
      "target": "skills/scholar-evaluation/scripts/_common.py#_scan_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#read_json",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#require_valid",
      "target": "skills/scholar-evaluation/scripts/_common.py#error_issues",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#require_valid",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#scale_values",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#score_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#rounded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#score_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#weights_by_criterion",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_bool",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#scale_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_evaluation",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_identifier",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_identifier",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#_validate_proxy_absence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#_validate_scale",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#exact_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_bool",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_identifier",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_rubric",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_text_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "target": "skills/scholar-evaluation/scripts/_common.py#is_nonempty_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_text_list",
      "target": "skills/scholar-evaluation/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_text_list",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#validate_text_list",
      "target": "skills/scholar-evaluation/scripts/_common.py#validate_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scholar-evaluation/scripts/_common.py#write_json",
      "target": "skills/scholar-evaluation/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "skills/scholar-evaluation/scripts/calculate_scores.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "skills/scholar-evaluation/scripts/calculate_scores.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "skills/scholar-evaluation/scripts/calculate_scores.py#calculate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "skills/scholar-evaluation/scripts/calculate_scores.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py#main",
      "target": "skills/scholar-evaluation/scripts/calculate_scores.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/calculate_scores.py#main",
      "target": "skills/scholar-evaluation/scripts/calculate_scores.py#calculate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "skills/scholar-evaluation/scripts/check_process.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "skills/scholar-evaluation/scripts/check_process.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "skills/scholar-evaluation/scripts/check_process.py#check_process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "skills/scholar-evaluation/scripts/check_process.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "skills/scholar-evaluation/scripts/check_process.py#validate_process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py#check_process",
      "target": "skills/scholar-evaluation/scripts/check_process.py#validate_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py#main",
      "target": "skills/scholar-evaluation/scripts/check_process.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_process.py#main",
      "target": "skills/scholar-evaluation/scripts/check_process.py#check_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#check_traceability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#validate_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py#check_traceability",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#validate_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py#main",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/check_traceability.py#main",
      "target": "skills/scholar-evaluation/scripts/check_traceability.py#check_traceability",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#_load_companion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#_load_companion",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#main",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#main",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#read_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py#main",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py#main",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#read_rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py#main",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/summarize_agreement.py#summarize",
      "target": "skills/scholar-evaluation/scripts/summarize_agreement.py#_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "skills/scholar-evaluation/scripts/validate_rubric.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "skills/scholar-evaluation/scripts/validate_rubric.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "skills/scholar-evaluation/scripts/validate_rubric.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "skills/scholar-evaluation/scripts/validate_rubric.py#validate_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py#main",
      "target": "skills/scholar-evaluation/scripts/validate_rubric.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/validate_rubric.py#main",
      "target": "skills/scholar-evaluation/scripts/validate_rubric.py#validate_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_direction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_normalized",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_scenarios",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#analyze",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_scenarios",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_normalized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py#analyze",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_direction",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py#analyze",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#_scenarios",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py#main",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#analyze",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scholar-evaluation/scripts/weight_sensitivity.py#main",
      "target": "skills/scholar-evaluation/scripts/weight_sensitivity.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#_safe_output_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#bounded_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#bounded_strings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#read_bounded_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#require_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#require_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#require_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#rounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "skills/scientific-brainstorming/scripts/_common.py#write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#_safe_output_target",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#bounded_float",
      "target": "skills/scientific-brainstorming/scripts/_common.py#bounded_float.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#bounded_strings",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#bounded_strings",
      "target": "skills/scientific-brainstorming/scripts/_common.py#require_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#emit_json",
      "target": "skills/scientific-brainstorming/scripts/_common.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#finite_number",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#read_bounded_text",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#read_json",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#read_json",
      "target": "skills/scientific-brainstorming/scripts/_common.py#read_bounded_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#read_json",
      "target": "skills/scientific-brainstorming/scripts/_common.py#read_json.reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#read_json.reject_constant",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#require_identifier",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#require_iso_date",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#require_text",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#write_json",
      "target": "skills/scientific-brainstorming/scripts/_common.py#_safe_output_target",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/_common.py#write_json",
      "target": "skills/scientific-brainstorming/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_normalized_weights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_parse_bounded_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_ranks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#calculate_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Criterion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#IdeaRow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_criteria",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Rating",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#build_parser",
      "target": "skills/scientific-brainstorming/scripts/_common.py#bounded_float",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#calculate_matrix",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_normalized_weights",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#calculate_matrix",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_ranks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#calculate_matrix",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Criterion",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Criterion.normalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_criteria",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Criterion",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "target": "skills/scientific-brainstorming/scripts/_common.py#read_bounded_text",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#_parse_bounded_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#IdeaRow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#Rating",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#calculate_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_criteria",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#main",
      "target": "skills/scientific-brainstorming/scripts/evaluate_matrix.py#load_scores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "skills/scientific-brainstorming/scripts/session_scaffold.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_scaffold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "skills/scientific-brainstorming/scripts/session_scaffold.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_scaffold",
      "target": "skills/scientific-brainstorming/scripts/_common.py#bounded_strings",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py#main",
      "target": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/session_scaffold.py#main",
      "target": "skills/scientific-brainstorming/scripts/session_scaffold.py#build_scaffold",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_string_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_list_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_normalized_statement",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py",
      "target": "unicodedata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#_check_id",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#_check_string_list",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#_check_string_list",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#_check_text",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#_list_field",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#main",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#main",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_id",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_string_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_check_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_list_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-brainstorming/scripts/validate_register.py#validate_register",
      "target": "skills/scientific-brainstorming/scripts/validate_register.py#_normalized_statement",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_score",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_verdict",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#main",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#main",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#main",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ReviewResult",
      "target": "NamedTuple",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-schematics/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "skills/scientific-schematics/scripts/generate_schematic.py#resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py#main",
      "target": "skills/scientific-schematics/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-schematics/scripts/generate_schematic.py#main",
      "target": "skills/scientific-schematics/scripts/generate_schematic.py#resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "traceback",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_score",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_verdict",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#main",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#main",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#main",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ReviewResult",
      "target": "NamedTuple",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.__init__",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._extract_image_from_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.improve_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.generate_iterative",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#_parse_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ReviewResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_schematic_ai.py#ScientificSchematicGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "skills/scientific-slides/scripts/generate_schematic.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "skills/scientific-slides/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "skills/scientific-slides/scripts/generate_schematic.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "skills/scientific-slides/scripts/generate_schematic.py#resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py#main",
      "target": "skills/scientific-slides/scripts/generate_schematic.py#build_subprocess_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_schematic.py#main",
      "target": "skills/scientific-slides/scripts/generate_schematic.py#resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_normalize_review_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#ReviewResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "requests",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_score",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_verdict",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_normalize_review_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#main",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#main",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#main",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_slide",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#ReviewResult",
      "target": "NamedTuple",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._extract_image_from_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._image_to_base64",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._make_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.improve_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.__init__",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._extract_image_from_response",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._make_request",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._extract_image_from_response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_slide",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_slide",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.improve_prompt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.generate_slide",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_score",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#_parse_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#ReviewResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._image_to_base64",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator.review_image",
      "target": "skills/scientific-slides/scripts/generate_slide_image_ai.py#SlideImageGenerator._make_request",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image.py#build_subprocess_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "skills/scientific-slides/scripts/generate_slide_image.py#resolve_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py#main",
      "target": "skills/scientific-slides/scripts/generate_slide_image.py#build_subprocess_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/generate_slide_image.py#main",
      "target": "skills/scientific-slides/scripts/generate_slide_image.py#resolve_api_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "fitz",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py#main",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py#main",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter._convert_with_pymupdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter.convert",
      "target": "skills/scientific-slides/scripts/pdf_to_images.py#PDFToImagesConverter._convert_with_pymupdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "skills/scientific-slides/scripts/slides_to_pdf.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "skills/scientific-slides/scripts/slides_to_pdf.py#combine_images_to_pdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "skills/scientific-slides/scripts/slides_to_pdf.py#get_image_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "skills/scientific-slides/scripts/slides_to_pdf.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py#main",
      "target": "skills/scientific-slides/scripts/slides_to_pdf.py#combine_images_to_pdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/slides_to_pdf.py#main",
      "target": "skills/scientific-slides/scripts/slides_to_pdf.py#get_image_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#print_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "pypdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "PyPDF2",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#main",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#main",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#main",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#print_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_file_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_pptx_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_slide_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._format_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._try_compile_latex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_latex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pptx",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_latex",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_latex",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._try_compile_latex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_latex",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pdf",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_slide_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pptx",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_pptx_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pptx",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_slide_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._check_file_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._format_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_latex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator.validate",
      "target": "skills/scientific-slides/scripts/validate_presentation.py#PresentationValidator._validate_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/assets/color_palettes.py",
      "target": "skills/scientific-visualization/assets/color_palettes.py#apply_palette",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/assets/color_palettes.py",
      "target": "skills/scientific-visualization/assets/color_palettes.py#get_palette",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/assets/color_palettes.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/assets/color_palettes.py#apply_palette",
      "target": "skills/scientific-visualization/assets/color_palettes.py#get_palette",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#positive_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "skills/scientific-visualization/scripts/_common.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#atomic_write_bytes",
      "target": "skills/scientific-visualization/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#atomic_write_bytes",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#checked_input_file",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#checked_output_file",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#emit_json",
      "target": "skills/scientific-visualization/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#emit_json",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#positive_float",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/_common.py#positive_int",
      "target": "skills/scientific-visualization/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#_effective_dimensions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#_finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#_normalized_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#build_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#load_profiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "skills/scientific-visualization/scripts/export_plan.py#validate_against_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "image_metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#build_plan",
      "target": "skills/scientific-visualization/scripts/export_plan.py#load_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#main",
      "target": "skills/scientific-visualization/scripts/export_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#main",
      "target": "skills/scientific-visualization/scripts/export_plan.py#build_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#main",
      "target": "skills/scientific-visualization/scripts/export_plan.py#load_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#main",
      "target": "skills/scientific-visualization/scripts/export_plan.py#validate_against_plan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#validate_against_plan",
      "target": "skills/scientific-visualization/scripts/export_plan.py#_effective_dimensions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#validate_against_plan",
      "target": "skills/scientific-visualization/scripts/export_plan.py#_finding",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/export_plan.py#validate_against_plan",
      "target": "skills/scientific-visualization/scripts/export_plan.py#_normalized_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_atomic_savefig",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_base_output_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_demo_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_font_rc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_load_profiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_normalize_formats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_package_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_validate_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#check_figure_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#save_for_journal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#save_publication_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "skills/scientific-visualization/scripts/figure_export.py#verify_font_embedding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "image_metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "style_presets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#check_figure_size",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_load_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_atomic_savefig",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_base_output_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_font_rc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_normalize_formats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_package_version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_validate_provenance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#main",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_demo_figure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#main",
      "target": "skills/scientific-visualization/scripts/figure_export.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#main",
      "target": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#main",
      "target": "skills/scientific-visualization/scripts/style_presets.py#style_context",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#save_for_journal",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_load_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#save_for_journal",
      "target": "skills/scientific-visualization/scripts/figure_export.py#_normalize_formats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#save_for_journal",
      "target": "skills/scientific-visualization/scripts/figure_export.py#save_publication_figure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/figure_export.py#save_publication_figure",
      "target": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_base_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_dpi_pair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_length_to_inches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_normalize_formats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_eps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_pdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_raster",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_svg",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#screen_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "pypdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#_dpi_pair",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_finite_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report.embedded_status",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report.embedded_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_base_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_eps",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_pdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_raster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_svg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_pdf",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_pdf_font_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_raster",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_dpi_pair",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#inspect_svg",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_length_to_inches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#main",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#main",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#inspect_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#main",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#screen_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#screen_metadata",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/image_metadata.py#screen_metadata",
      "target": "skills/scientific-visualization/scripts/image_metadata.py#_normalize_formats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#_linear_channel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#_load_palette_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#bundled_palettes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#canonical_hex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#cie_lstar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#contrast_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#parse_hex_color",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#relative_luminance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "itertools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#canonical_hex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#cie_lstar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#contrast_ratio",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#parse_hex_color",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#relative_luminance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#bundled_palettes",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#_load_palette_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#bundled_palettes",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#canonical_hex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#bundled_palettes",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#parse_hex_color",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#cie_lstar",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#relative_luminance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#contrast_ratio",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#relative_luminance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#main",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#audit_palette",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#main",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#main",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#bundled_palettes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/palette_audit.py#relative_luminance",
      "target": "skills/scientific-visualization/scripts/palette_audit.py#_linear_channel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_load_palette_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_matplotlib_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_mplstyle_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_serializable_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#apply_publication_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#configure_for_journal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#create_style_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#figure_size_for_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#load_publisher_profiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#math_is_finite_positive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#reset_to_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#set_color_palette",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "skills/scientific-visualization/scripts/style_presets.py#style_context",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#_serializable_style",
      "target": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#apply_publication_style",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_matplotlib_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#apply_publication_style",
      "target": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_load_palette_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#configure_for_journal",
      "target": "skills/scientific-visualization/scripts/style_presets.py#apply_publication_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#configure_for_journal",
      "target": "skills/scientific-visualization/scripts/style_presets.py#figure_size_for_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#configure_for_journal",
      "target": "skills/scientific-visualization/scripts/style_presets.py#load_publisher_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#create_style_template",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_mplstyle_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#create_style_template",
      "target": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#figure_size_for_profile",
      "target": "skills/scientific-visualization/scripts/style_presets.py#load_publisher_profiles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#figure_size_for_profile",
      "target": "skills/scientific-visualization/scripts/style_presets.py#math_is_finite_positive",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "target": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#main",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_serializable_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#main",
      "target": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#main",
      "target": "skills/scientific-visualization/scripts/style_presets.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#main",
      "target": "skills/scientific-visualization/scripts/style_presets.py#create_style_template",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#set_color_palette",
      "target": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#style_context",
      "target": "skills/scientific-visualization/scripts/style_presets.py#_matplotlib_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_presets.py#style_context",
      "target": "skills/scientific-visualization/scripts/style_presets.py#get_style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "skills/scientific-visualization/scripts/style_preview.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "skills/scientific-visualization/scripts/style_preview.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "skills/scientific-visualization/scripts/style_preview.py#build_preview",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "skills/scientific-visualization/scripts/style_preview.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "figure_export",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "palette_audit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "style_presets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py#build_preview",
      "target": "skills/scientific-visualization/scripts/style_presets.py#available_palettes",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py#build_preview",
      "target": "skills/scientific-visualization/scripts/style_presets.py#style_context",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py#main",
      "target": "skills/scientific-visualization/scripts/figure_export.py#export_figure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py#main",
      "target": "skills/scientific-visualization/scripts/style_preview.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-visualization/scripts/style_preview.py#main",
      "target": "skills/scientific-visualization/scripts/style_preview.py#build_preview",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#_check_json_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#_checked_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#_reject_duplicate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#_reject_nonfinite_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#emit_input_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#emit_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#is_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#Issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#main_guard",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#read_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#read_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#require_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#require_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "skills/scientific-writing/scripts/_common.py#write_new_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#_check_json_bounds",
      "target": "skills/scientific-writing/scripts/_common.py#_check_json_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#_check_json_bounds",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#_checked_file",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#_reject_duplicate_keys",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#_reject_nonfinite_json",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#emit_input_error",
      "target": "skills/scientific-writing/scripts/_common.py#emit_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#emit_input_error",
      "target": "skills/scientific-writing/scripts/_common.py#issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#InputError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#issue",
      "target": "skills/scientific-writing/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#Issue",
      "target": "skills/scientific-writing/scripts/_common.py#Issue.to_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#main_guard",
      "target": "skills/scientific-writing/scripts/_common.py#emit_input_error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_csv",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_csv",
      "target": "skills/scientific-writing/scripts/_common.py#read_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_json",
      "target": "skills/scientific-writing/scripts/_common.py#_check_json_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_json",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_json",
      "target": "skills/scientific-writing/scripts/_common.py#read_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_text",
      "target": "skills/scientific-writing/scripts/_common.py#_checked_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#read_text",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#require_list",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#require_object",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#run",
      "target": "skills/scientific-writing/scripts/_common.py#main_guard",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/_common.py#write_new_text",
      "target": "skills/scientific-writing/scripts/_common.py#InputError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "skills/scientific-writing/scripts/audit_claims.py#_split_evidence_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "skills/scientific-writing/scripts/audit_claims.py#audit_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "skills/scientific-writing/scripts/audit_claims.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "skills/scientific-writing/scripts/audit_claims.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "skills/scientific-writing/scripts/audit_claims.py#load_claims",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "skills/scientific-writing/scripts/audit_claims.py#load_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py#cli",
      "target": "skills/scientific-writing/scripts/audit_claims.py#audit_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py#cli",
      "target": "skills/scientific-writing/scripts/audit_claims.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py#cli",
      "target": "skills/scientific-writing/scripts/audit_claims.py#load_claims",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py#cli",
      "target": "skills/scientific-writing/scripts/audit_claims.py#load_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py#load_claims",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/audit_claims.py#load_claims",
      "target": "skills/scientific-writing/scripts/audit_claims.py#_split_evidence_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_check_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_is_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_validate_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#validate_methods_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#cli",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_check_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#cli",
      "target": "skills/scientific-writing/scripts/check_consistency.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#cli",
      "target": "skills/scientific-writing/scripts/check_consistency.py#validate_methods_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#cli",
      "target": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_methods_results",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_methods_results",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_check_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_methods_results",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_validate_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_check_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_is_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_consistency.py#validate_numeric_facts",
      "target": "skills/scientific-writing/scripts/check_consistency.py#_validate_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#_record_duplicate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_isbn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "skills/scientific-writing/scripts/check_references.py#valid_isbn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "unicodedata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py",
      "target": "validate_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/check_references.py#_record_duplicate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_doi",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_isbn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_title",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/check_references.py#valid_isbn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#cli",
      "target": "skills/scientific-writing/scripts/check_references.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#cli",
      "target": "skills/scientific-writing/scripts/check_references.py#check_sources",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/check_references.py#valid_isbn",
      "target": "skills/scientific-writing/scripts/check_references.py#normalize_isbn",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#lint_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#load_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py#cli",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py#cli",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#lint_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/lint_manuscript.py#cli",
      "target": "skills/scientific-writing/scripts/lint_manuscript.py#load_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_json_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_coverage",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_manifest",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_json_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py#cli",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py#cli",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py#generate",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_coverage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/scaffold_manuscript.py#generate",
      "target": "skills/scientific-writing/scripts/scaffold_manuscript.py#_prepare_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#_condition_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#check_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#load_registry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#select_guidelines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#check_coverage",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#cli",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#cli",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#check_coverage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#cli",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#load_registry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#cli",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#select_guidelines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#load_registry",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/select_reporting_guidelines.py#select_guidelines",
      "target": "skills/scientific-writing/scripts/select_reporting_guidelines.py#_condition_matches",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#_validate_roles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_accountability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_ai_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_declarations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_people",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_accountability",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_ai_disclosure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#cli",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#validate_people",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#validate_ai_disclosure",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#validate_declarations",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#validate_people",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_authorship.py#validate_people",
      "target": "skills/scientific-writing/scripts/validate_authorship.py#_validate_roles",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_check_unknown_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_missing_or_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_validate_human_gate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#detect_kind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#validate_manuscript_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#_missing_or_placeholder",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#_validate_human_gate",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_missing_or_placeholder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#cli",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#cli",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#detect_kind",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#cli",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#validate_manuscript_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#cli",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#validate_manuscript_manifest",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_check_unknown_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#validate_manuscript_manifest",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_missing_or_placeholder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#validate_manuscript_manifest",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_validate_human_gate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "target": "skills/scientific-writing/scripts/_common.py#is_nonempty_string",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_check_unknown_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scientific-writing/scripts/validate_manifest.py#validate_source_manifest",
      "target": "skills/scientific-writing/scripts/validate_manifest.py#_missing_or_placeholder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "skills/scikit-learn/scripts/classification_pipeline.py#train_and_evaluate_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "skills/scikit-learn/scripts/classification_pipeline.py#create_preprocessing_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "skills/scikit-learn/scripts/classification_pipeline.py#train_and_evaluate_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.compose",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.datasets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.ensemble",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.impute",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.linear_model",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.model_selection",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "sklearn.preprocessing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/classification_pipeline.py#train_and_evaluate_model",
      "target": "skills/scikit-learn/scripts/classification_pipeline.py#create_preprocessing_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#compare_clustering_algorithms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#find_optimal_k_kmeans",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#preprocess_for_clustering",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#visualize_clusters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "sklearn.cluster",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "sklearn.datasets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "sklearn.decomposition",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "sklearn.metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "sklearn.mixture",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "sklearn.preprocessing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#compare_clustering_algorithms",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#find_optimal_k_kmeans",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#preprocess_for_clustering",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-learn/scripts/clustering_analysis.py#complete_clustering_analysis",
      "target": "skills/scikit-learn/scripts/clustering_analysis.py#visualize_clusters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_save_npy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#emit_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#normalize_binary_event",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#normalize_positive_times",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#parse_floats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#parse_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#positive_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#probability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#read_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#synthetic_survival_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "skills/scikit-survival/scripts/_common.py#validate_frame_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "sksurv.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#_json_bytes",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_save_npy",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_save_npy",
      "target": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_save_npy",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "target": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "target": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#bounded_int",
      "target": "skills/scikit-survival/scripts/_common.py#bounded_int.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#bounded_int.convert",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#checked_input_file",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#emit_json",
      "target": "skills/scikit-survival/scripts/_common.py#_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#emit_json",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#emit_json",
      "target": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#emit_text",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#emit_text",
      "target": "skills/scikit-survival/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#emit_text",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#finite_float",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#load_json",
      "target": "skills/scikit-survival/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#load_json",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#load_json",
      "target": "skills/scikit-survival/scripts/_common.py#load_json.reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#load_json.reject_constant",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#normalize_binary_event",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#normalize_positive_times",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#parse_floats",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#parse_floats",
      "target": "skills/scikit-survival/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#parse_names",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#positive_float",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#positive_float",
      "target": "skills/scikit-survival/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#probability",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#probability",
      "target": "skills/scikit-survival/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#read_csv",
      "target": "skills/scikit-survival/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#read_csv",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#read_csv",
      "target": "skills/scikit-survival/scripts/_common.py#validate_frame_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "target": "skills/scikit-survival/scripts/_common.py#normalize_binary_event",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "target": "skills/scikit-survival/scripts/_common.py#normalize_positive_times",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#synthetic_survival_frame",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/_common.py#validate_frame_bounds",
      "target": "skills/scikit-survival/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#estimate_cif",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#horizon_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_competing_event",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_times",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#synthetic_competing_risks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "sksurv.nonparametric",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#estimate_cif",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#horizon_values",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#estimate_cif",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_competing_event",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#estimate_cif",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_times",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#parse_floats",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#estimate_cif",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#main",
      "target": "skills/scikit-survival/scripts/competing_risk_cif.py#synthetic_competing_risks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/competing_risk_cif.py#normalize_times",
      "target": "skills/scikit-survival/scripts/_common.py#normalize_positive_times",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#load_prediction_archive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_predictions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_time_grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "sksurv.metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "sksurv.nonparametric",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#evaluate",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_predictions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#evaluate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#load_prediction_archive",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#main",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs.observed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#synthetic_metric_inputs.observed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_predictions",
      "target": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_predictions",
      "target": "skills/scikit-survival/scripts/evaluate_survival_metrics.py#validate_time_grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#_feature_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#render_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#synthetic_metric_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "skills/scikit-survival/scripts/model_report.py#synthetic_training_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#_feature_list",
      "target": "skills/scikit-survival/scripts/model_report.py#_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#main",
      "target": "skills/scikit-survival/scripts/model_report.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#main",
      "target": "skills/scikit-survival/scripts/model_report.py#render_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#main",
      "target": "skills/scikit-survival/scripts/model_report.py#synthetic_metric_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#main",
      "target": "skills/scikit-survival/scripts/model_report.py#synthetic_training_summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#render_report",
      "target": "skills/scikit-survival/scripts/model_report.py#_feature_list",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#render_report",
      "target": "skills/scikit-survival/scripts/model_report.py#_mapping",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/model_report.py#render_report",
      "target": "skills/scikit-survival/scripts/model_report.py#_scalar",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_event_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_time_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#build_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#parameter_grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#prediction_archive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#resolve_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#stratified_splits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#uno_concordance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sklearn.compose",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sklearn.impute",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sklearn.model_selection",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sklearn.pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sklearn.preprocessing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sksurv.ensemble",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sksurv.linear_model",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "sksurv.metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_save_npz",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#parse_names",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#synthetic_survival_frame",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#prediction_archive",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#main",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_event_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_time_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#build_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#parameter_grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#stratified_splits",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#uno_concordance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#prediction_archive",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_event_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#prediction_archive",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_time_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#resolve_schema",
      "target": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#stratified_splits",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_event_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#build_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#nested_tune",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#resolve_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#train_and_report",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#uno_concordance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/train_survival_model.py#uno_concordance",
      "target": "skills/scikit-survival/scripts/train_survival_model.py#_time_field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "skills/scikit-survival/scripts/validate_survival_csv.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "skills/scikit-survival/scripts/validate_survival_csv.py#validate_and_convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#atomic_save_npy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#parse_names",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "target": "skills/scikit-survival/scripts/_common.py#synthetic_survival_frame",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "target": "skills/scikit-survival/scripts/validate_survival_csv.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py#main",
      "target": "skills/scikit-survival/scripts/validate_survival_csv.py#validate_and_convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scikit-survival/scripts/validate_survival_csv.py#validate_and_convert",
      "target": "skills/scikit-survival/scripts/_common.py#structured_survival",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "target": "skills/scvelo/scripts/rna_velocity_workflow.py#run_velocity_analysis",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "target": "skills/scvelo/scripts/rna_velocity_workflow.py#load_from_loom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "target": "skills/scvelo/scripts/rna_velocity_workflow.py#run_velocity_analysis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/scvelo/scripts/rna_velocity_workflow.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#nonnegative_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#output_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#parse_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#positive_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#positive_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#save_axis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "skills/shap/scripts/tabular_report.py#select_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "shap",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "sklearn",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "sklearn.datasets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "sklearn.ensemble",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "sklearn.model_selection",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py#main",
      "target": "skills/shap/scripts/tabular_report.py#output_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py#main",
      "target": "skills/shap/scripts/tabular_report.py#parse_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py#main",
      "target": "skills/shap/scripts/tabular_report.py#save_axis",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/shap/scripts/tabular_report.py#main",
      "target": "skills/shap/scripts/tabular_report.py#select_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#_beta_continued_fraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#_regularized_incomplete_beta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#_unique_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#derive_seed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#emit_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#finite_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#load_json_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#mean_confidence_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#parse_json_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#strict_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#student_t_cdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#student_t_quantile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "skills/simpy/scripts/_common.py#validate_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "simpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#_beta_continued_fraction",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#_regularized_incomplete_beta",
      "target": "skills/simpy/scripts/_common.py#_beta_continued_fraction",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#_regularized_incomplete_beta",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#_reject_constant",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#_unique_object",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#atomic_write_bytes",
      "target": "skills/simpy/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#atomic_write_bytes",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#checked_input_file",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#checked_output_file",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/_common.py#derive_seed",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#derive_seed",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#emit_json",
      "target": "skills/simpy/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#emit_json",
      "target": "skills/simpy/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#emit_json",
      "target": "skills/simpy/scripts/_common.py#strict_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#emit_text",
      "target": "skills/simpy/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#emit_text",
      "target": "skills/simpy/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#emit_text",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#finite_number",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#integer",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#load_json_object",
      "target": "skills/simpy/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#load_json_object",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#load_simpy",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#mean_confidence_interval",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#mean_confidence_interval",
      "target": "skills/simpy/scripts/_common.py#finite_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#mean_confidence_interval",
      "target": "skills/simpy/scripts/_common.py#student_t_quantile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#parse_json_line",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#strict_json_bytes",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#student_t_cdf",
      "target": "skills/simpy/scripts/_common.py#_regularized_incomplete_beta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#student_t_cdf",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#student_t_quantile",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#student_t_quantile",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#student_t_quantile",
      "target": "skills/simpy/scripts/_common.py#student_t_cdf",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/_common.py#validate_keys",
      "target": "skills/simpy/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#_arrivals",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#_customer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#_optional_mean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment~2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#EventLimitExceeded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#QueueConfig",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#QueueStatistics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "resource_monitor",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "simpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#_arrivals",
      "target": "skills/simpy/scripts/basic_simulation_template.py#_customer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment",
      "target": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment",
      "target": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.__init__~2",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.step",
      "target": "skills/simpy/scripts/basic_simulation_template.py#EventLimitExceeded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment~2",
      "target": "skills/simpy/scripts/basic_simulation_template.py#BoundedEnvironment.__init__~2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#EventLimitExceeded",
      "target": "RuntimeError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#main",
      "target": "skills/simpy/scripts/basic_simulation_template.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#main",
      "target": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#QueueConfig",
      "target": "skills/simpy/scripts/basic_simulation_template.py#QueueConfig.from_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#QueueConfig.from_mapping",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#QueueStatistics",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/_common.py#derive_seed",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/basic_simulation_template.py#_arrivals",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/basic_simulation_template.py#_optional_mean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/basic_simulation_template.py#QueueStatistics",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_queue_length",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_utilization",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/basic_simulation_template.py#run_simulation",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.finalize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#_trace_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#run_scenario",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "basic_simulation_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#_trace_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/bounded_queue_scenario.py#main",
      "target": "skills/simpy/scripts/bounded_queue_scenario.py#run_scenario",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#_csv_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#summarize_event_trace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "skills/simpy/scripts/event_trace_summary.py#summarize_resource_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#main",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#main",
      "target": "skills/simpy/scripts/event_trace_summary.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#main",
      "target": "skills/simpy/scripts/event_trace_summary.py#summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#summarize",
      "target": "skills/simpy/scripts/event_trace_summary.py#summarize_event_trace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#summarize",
      "target": "skills/simpy/scripts/event_trace_summary.py#summarize_resource_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#summarize_event_trace",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#summarize_event_trace",
      "target": "skills/simpy/scripts/_common.py#parse_json_line",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#summarize_resource_csv",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/event_trace_summary.py#summarize_resource_csv",
      "target": "skills/simpy/scripts/event_trace_summary.py#_csv_number",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "skills/simpy/scripts/replication_runner.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "skills/simpy/scripts/replication_runner.py#_interval_or_unavailable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "skills/simpy/scripts/replication_runner.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "skills/simpy/scripts/replication_runner.py#ExperimentConfig",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "skills/simpy/scripts/replication_runner.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "skills/simpy/scripts/replication_runner.py#run_experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "basic_simulation_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py#_interval_or_unavailable",
      "target": "skills/simpy/scripts/_common.py#mean_confidence_interval",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py#ExperimentConfig",
      "target": "skills/simpy/scripts/replication_runner.py#ExperimentConfig.from_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py#ExperimentConfig.from_mapping",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py#main",
      "target": "skills/simpy/scripts/replication_runner.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py#main",
      "target": "skills/simpy/scripts/replication_runner.py#run_experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/replication_runner.py#run_experiment",
      "target": "skills/simpy/scripts/replication_runner.py#_interval_or_unavailable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#_demo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceSample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "functools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "simpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#_demo",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#_demo",
      "target": "skills/simpy/scripts/resource_monitor.py#_demo.user",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#_demo",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#_demo",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.finalize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#_demo",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.summary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#_demo",
      "target": "skills/simpy/scripts/resource_monitor.py#_demo.user",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.average_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.finalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.__init__",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.__init__",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation.wrapper",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._patch_operation.wrapper",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor.finalize",
      "target": "skills/simpy/scripts/resource_monitor.py#ContainerMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder._patch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.detach",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.export_jsonl",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.__init__",
      "target": "skills/simpy/scripts/_common.py#integer",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.__init__",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder.__init__",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder._patch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder._patch",
      "target": "skills/simpy/scripts/resource_monitor.py#EventTraceRecorder._patch.tracing_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#main",
      "target": "skills/simpy/scripts/resource_monitor.py#_demo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#main",
      "target": "skills/simpy/scripts/resource_monitor.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.add_resource",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.finalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.summaries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.__init__",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#MultiResourceMonitor.add_resource",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._time_weighted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_queue_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_utilization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.detach",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.export_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.finalize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.__init__",
      "target": "skills/simpy/scripts/_common.py#load_simpy",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.__init__",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.__init__",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_release",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_release",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request.granted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request.monitored_cancel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request.granted",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._patch.monitored_request.monitored_cancel",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceSample",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_queue_length",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._time_weighted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_utilization",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._time_weighted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.finalize",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor._record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.summary",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_queue_length",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.summary",
      "target": "skills/simpy/scripts/resource_monitor.py#ResourceMonitor.average_utilization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "skills/simpy/scripts/validate_simulation_config.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "skills/simpy/scripts/validate_simulation_config.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "skills/simpy/scripts/validate_simulation_config.py#infer_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "skills/simpy/scripts/validate_simulation_config.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "skills/simpy/scripts/validate_simulation_config.py#validate_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "basic_simulation_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "replication_runner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py#main",
      "target": "skills/simpy/scripts/validate_simulation_config.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py#main",
      "target": "skills/simpy/scripts/validate_simulation_config.py#validate_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/simpy/scripts/validate_simulation_config.py#validate_document",
      "target": "skills/simpy/scripts/validate_simulation_config.py#infer_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#validate_environment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#train_on_custom_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#validate_environment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "gymnasium",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "stable_baselines3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py",
      "target": "stable_baselines3.common.env_checker",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_obs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.close",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.reset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.reset",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.reset",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_obs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.step",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.step",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv._get_obs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.close",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.reset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#test_environment",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.step",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#train_on_custom_env",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#train_on_custom_env",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.close",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#train_on_custom_env",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.reset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#train_on_custom_env",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv.step",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/custom_env_template.py#validate_environment",
      "target": "skills/stable-baselines3/scripts/custom_env_template.py#CustomEnv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "skills/stable-baselines3/scripts/evaluate_agent.py#evaluate_agent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "skills/stable-baselines3/scripts/evaluate_agent.py#compare_models",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "skills/stable-baselines3/scripts/evaluate_agent.py#evaluate_agent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "skills/stable-baselines3/scripts/evaluate_agent.py#watch_agent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "stable_baselines3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "stable_baselines3.common.evaluation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py",
      "target": "stable_baselines3.common.vec_env",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/evaluate_agent.py#compare_models",
      "target": "skills/stable-baselines3/scripts/evaluate_agent.py#evaluate_agent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "skills/stable-baselines3/scripts/train_rl_agent.py#train_agent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "skills/stable-baselines3/scripts/train_rl_agent.py#train_agent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "stable_baselines3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "stable_baselines3.common.callbacks",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "stable_baselines3.common.env_util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/stable-baselines3/scripts/train_rl_agent.py",
      "target": "stable_baselines3.common.vec_env",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_homogeneity_of_variance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_linearity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_normality",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_normality_per_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_regression_diagnostics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#detect_outliers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "statsmodels.stats.diagnostic",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "statsmodels.stats.outliers_influence",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "statsmodels.stats.stattools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_homogeneity_of_variance",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_normality",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#check_normality_per_group",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-analysis/scripts/assumption_checks.py#comprehensive_assumption_check",
      "target": "skills/statistical-analysis/scripts/assumption_checks.py#detect_outliers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#mde",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#sample_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#_corr_power",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#_corr_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#_reg_mde",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#_reg_power",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#_reg_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#mde",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#power",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#power_curve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "skills/statistical-power/scripts/power.py#sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "statsmodels.stats.power",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py",
      "target": "statsmodels.stats.proportion",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#_reg_mde",
      "target": "skills/statistical-power/scripts/power.py#_reg_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#_reg_sample_size",
      "target": "skills/statistical-power/scripts/power.py#_reg_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#mde",
      "target": "skills/statistical-power/scripts/power.py#_reg_mde",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#mde",
      "target": "skills/statistical-power/scripts/power.py#_resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#power",
      "target": "skills/statistical-power/scripts/power.py#_corr_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#power",
      "target": "skills/statistical-power/scripts/power.py#_reg_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#power",
      "target": "skills/statistical-power/scripts/power.py#_resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#power_curve",
      "target": "skills/statistical-power/scripts/power.py#power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#sample_size",
      "target": "skills/statistical-power/scripts/power.py#_corr_sample_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#sample_size",
      "target": "skills/statistical-power/scripts/power.py#_reg_sample_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/power.py#sample_size",
      "target": "skills/statistical-power/scripts/power.py#_resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_linear_mixed_repeated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_logistic_regression",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_two_group_difference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#find_sample_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#simulate_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#_wilson_ci",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_cluster_randomized",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_linear_mixed_repeated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_logistic_regression",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_two_group_difference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#find_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#PowerEstimate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "skills/statistical-power/scripts/simulate_power.py#simulate_power",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#example_cluster_randomized",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_cluster_randomized.gen_and_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#example_linear_mixed_repeated",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_linear_mixed_repeated.gen_and_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#example_logistic_regression",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_logistic_regression.gen_and_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#example_two_group_difference",
      "target": "skills/statistical-power/scripts/simulate_power.py#example_two_group_difference.gen_and_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#find_sample_size",
      "target": "skills/statistical-power/scripts/simulate_power.py#simulate_power",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#PowerEstimate",
      "target": "skills/statistical-power/scripts/simulate_power.py#PowerEstimate.__str__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#simulate_power",
      "target": "skills/statistical-power/scripts/simulate_power.py#_wilson_ci",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/statistical-power/scripts/simulate_power.py#simulate_power",
      "target": "skills/statistical-power/scripts/simulate_power.py#PowerEstimate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#build_synthetic_future",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#detect_context_anomalies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#detect_forecast_anomalies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#plot_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py",
      "target": "timesfm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#build_synthetic_future",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#detect_context_anomalies",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#detect_forecast_anomalies",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#main",
      "target": "skills/timesfm-forecasting/examples/anomaly-detection/detect_anomalies.py#plot_results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#demonstrate_api",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#explain_xreg_modes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#generate_sales_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization.add_divider",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization.add_divider",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#create_visualization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#demonstrate_api",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#explain_xreg_modes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#main",
      "target": "skills/timesfm-forecasting/examples/covariates-forecasting/demo_covariates.py#generate_sales_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_animation_data.py",
      "target": "timesfm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#create_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#main",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_gif.py#create_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/generate_html.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/run_forecast.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/run_forecast.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/run_forecast.py",
      "target": "timesfm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "target": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/examples/global-temperature/visualize_forecast.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_available_ram_gb",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_disk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_gpu",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_python",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_ram",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#print_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#recommend_batch_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "ctypes",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "struct",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "torch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#_get_available_ram_gb",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_available_ram_gb.MEMORYSTATUSEX",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb.MEMORYSTATUSEX",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_disk",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_gpu",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_package",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_python",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_ram",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_available_ram_gb",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_ram",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#check_ram",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult.__str__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#CheckResult.icon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#main",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#print_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#main",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#recommend_batch_size",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#_get_total_ram_gb",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_disk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_gpu",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_python",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#check_ram",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#recommend_batch_size",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport.passed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#SystemReport.to_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#forecast_series",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#load_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#load_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#run_preflight",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#write_csv_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#write_json_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "check_system",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "timesfm",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py",
      "target": "torch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#forecast_series",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#load_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#load_model",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#run_preflight",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#write_csv_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#main",
      "target": "skills/timesfm-forecasting/scripts/forecast_csv.py#write_json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/timesfm-forecasting/scripts/forecast_csv.py#run_preflight",
      "target": "skills/timesfm-forecasting/scripts/check_system.py#run_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_array",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_boolean",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_nullable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_object",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_boolean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_check_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_duplicate_field_issues",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_duplicate_safe_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_nullable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_valid_iso_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#all_fact_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#atomic_write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#copy_template_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#direct_identifier_key_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#error_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#has_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#Issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#load_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#parse_iso_datetime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#print_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#read_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#record_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#safe_input_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#safe_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#safe_new_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#safe_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#validate_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "dataclasses",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_check_bounds",
      "target": "skills/treatment-plans/scripts/_common.py#_check_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_check_bounds",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_duplicate_field_issues",
      "target": "skills/treatment-plans/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_duplicate_safe_object",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_reject_constant",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "target": "skills/treatment-plans/scripts/_common.py#_valid_iso_date",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "target": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "target": "skills/treatment-plans/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "target": "skills/treatment-plans/scripts/_common.py#parse_iso_datetime",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#all_fact_references",
      "target": "skills/treatment-plans/scripts/_common.py#all_fact_references.collect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#all_fact_references",
      "target": "skills/treatment-plans/scripts/_common.py#all_fact_references.collect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#all_fact_references.collect",
      "target": "skills/treatment-plans/scripts/_common.py#all_fact_references.collect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#atomic_write_json",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#copy_template_document",
      "target": "skills/treatment-plans/scripts/_common.py#read_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#direct_identifier_key_paths",
      "target": "skills/treatment-plans/scripts/_common.py#direct_identifier_key_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#error_report",
      "target": "skills/treatment-plans/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#error_report",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#Issue",
      "target": "skills/treatment-plans/scripts/_common.py#Issue.as_dict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_package",
      "target": "skills/treatment-plans/scripts/_common.py#read_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_package",
      "target": "skills/treatment-plans/scripts/_common.py#safe_input_directory",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_package",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_target",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_target",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_target",
      "target": "skills/treatment-plans/scripts/_common.py#read_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_target",
      "target": "skills/treatment-plans/scripts/_common.py#safe_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#load_target",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#read_json",
      "target": "skills/treatment-plans/scripts/_common.py#_check_bounds",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#read_json",
      "target": "skills/treatment-plans/scripts/_common.py#safe_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#read_json",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#report_payload",
      "target": "skills/treatment-plans/scripts/_common.py#has_errors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_input_directory",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_input_directory",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_input_file",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_input_file",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_new_directory",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_new_directory",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_output_file",
      "target": "skills/treatment-plans/scripts/_common.py#_reject_nonlocal_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#safe_output_file",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#validate_document",
      "target": "skills/treatment-plans/scripts/_common.py#_duplicate_field_issues",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#validate_document",
      "target": "skills/treatment-plans/scripts/_common.py#_validate_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#validate_document",
      "target": "skills/treatment-plans/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "target": "skills/treatment-plans/scripts/_common.py#Issue",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "target": "skills/treatment-plans/scripts/_common.py#validate_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "target": "skills/treatment-plans/scripts/_common.py#ValidationError.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/_common.py#ValidationError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "skills/treatment-plans/scripts/check_completeness.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "skills/treatment-plans/scripts/check_completeness.py#_required_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "skills/treatment-plans/scripts/check_completeness.py#_required_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "skills/treatment-plans/scripts/check_completeness.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "skills/treatment-plans/scripts/check_completeness.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "target": "skills/treatment-plans/scripts/check_completeness.py#_required_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "target": "skills/treatment-plans/scripts/check_completeness.py#_required_time",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#main",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#main",
      "target": "skills/treatment-plans/scripts/check_completeness.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_completeness.py#main",
      "target": "skills/treatment-plans/scripts/check_completeness.py#check_completeness",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "skills/treatment-plans/scripts/check_consistency.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_duplicate_reference_issues",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "skills/treatment-plans/scripts/check_consistency.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "skills/treatment-plans/scripts/check_consistency.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids.collect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids.collect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#_duplicate_reference_issues",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_duplicate_reference_issues",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "target": "skills/treatment-plans/scripts/_common.py#record_ids",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_collect_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "target": "skills/treatment-plans/scripts/check_consistency.py#_duplicate_reference_issues",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#main",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#main",
      "target": "skills/treatment-plans/scripts/check_consistency.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/check_consistency.py#main",
      "target": "skills/treatment-plans/scripts/check_consistency.py#check_consistency",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "skills/treatment-plans/scripts/generate_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "skills/treatment-plans/scripts/generate_template.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "skills/treatment-plans/scripts/generate_template.py#generate_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "skills/treatment-plans/scripts/generate_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py#generate_package",
      "target": "skills/treatment-plans/scripts/_common.py#copy_template_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py#generate_package",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py#generate_package",
      "target": "skills/treatment-plans/scripts/_common.py#safe_new_directory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py#main",
      "target": "skills/treatment-plans/scripts/generate_template.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/generate_template.py#main",
      "target": "skills/treatment-plans/scripts/generate_template.py#generate_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "skills/treatment-plans/scripts/privacy_process_check.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "skills/treatment-plans/scripts/privacy_process_check.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "skills/treatment-plans/scripts/privacy_process_check.py#check_privacy_process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "skills/treatment-plans/scripts/privacy_process_check.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py#check_privacy_process",
      "target": "skills/treatment-plans/scripts/_common.py#direct_identifier_key_paths",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py#check_privacy_process",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py#check_privacy_process",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py#main",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py#main",
      "target": "skills/treatment-plans/scripts/privacy_process_check.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/privacy_process_check.py#main",
      "target": "skills/treatment-plans/scripts/privacy_process_check.py#check_privacy_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#_date_bound",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#_date_bound",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule.add_event",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule.add_event",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "target": "skills/treatment-plans/scripts/_common.py#safe_output_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/timeline_generator.py#main",
      "target": "skills/treatment-plans/scripts/timeline_generator.py#build_schedule",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "skills/treatment-plans/scripts/validate_traceability.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "skills/treatment-plans/scripts/validate_traceability.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "skills/treatment-plans/scripts/validate_traceability.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "skills/treatment-plans/scripts/validate_traceability.py#validate_traceability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py#main",
      "target": "skills/treatment-plans/scripts/_common.py#load_package",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py#main",
      "target": "skills/treatment-plans/scripts/validate_traceability.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py#main",
      "target": "skills/treatment-plans/scripts/validate_traceability.py#validate_traceability",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py#validate_traceability",
      "target": "skills/treatment-plans/scripts/_common.py#all_fact_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py#validate_traceability",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_traceability.py#validate_traceability",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "skills/treatment-plans/scripts/validate_treatment_plan.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "skills/treatment-plans/scripts/validate_treatment_plan.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "skills/treatment-plans/scripts/validate_treatment_plan.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "skills/treatment-plans/scripts/validate_treatment_plan.py#validate_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py#main",
      "target": "skills/treatment-plans/scripts/validate_treatment_plan.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py#main",
      "target": "skills/treatment-plans/scripts/validate_treatment_plan.py#validate_target",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py#validate_target",
      "target": "skills/treatment-plans/scripts/_common.py#load_target",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py#validate_target",
      "target": "skills/treatment-plans/scripts/_common.py#report_payload",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/treatment-plans/scripts/validate_treatment_plan.py#validate_target",
      "target": "skills/treatment-plans/scripts/_common.py#validate_package_structure",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#_check_depth",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#_json_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#array_functions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#as_degrees_of_freedom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#as_finite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#atomic_write_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#bounded_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_input_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_output_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#coverage_factor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#emit_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#emit_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#expression_variables",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#finite_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#format_dof",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#json_dof",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#non_negative_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#normalize_distribution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#numerical_tolerance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#parse_expression",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#positive_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#probability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#read_text_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#scalar_functions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#shortest_coverage_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "skills/uncertainty-and-units/scripts/_common.py#welch_satterthwaite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "scipy.special",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "scipy.stats",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py",
      "target": "uncertainties",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#_check_depth",
      "target": "skills/uncertainty-and-units/scripts/_common.py#_check_depth",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#_check_depth",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#_json_bytes",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#array_functions",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#array_functions",
      "target": "skills/uncertainty-and-units/scripts/_common.py#array_functions.erf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#array_functions.erf",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#as_degrees_of_freedom",
      "target": "skills/uncertainty-and-units/scripts/_common.py#as_finite",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#as_degrees_of_freedom",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#as_finite",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#atomic_write_bytes",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#atomic_write_bytes",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#bounded_int",
      "target": "skills/uncertainty-and-units/scripts/_common.py#bounded_int.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#bounded_int.convert",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#checked_input_file",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#checked_output_file",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "target": "ValueError",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#coverage_factor",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#emit_json",
      "target": "skills/uncertainty-and-units/scripts/_common.py#_json_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#emit_json",
      "target": "skills/uncertainty-and-units/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#emit_json",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#emit_text",
      "target": "skills/uncertainty-and-units/scripts/_common.py#atomic_write_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#emit_text",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_output_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#emit_text",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#expression_variables",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#finite_float",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#load_json",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#load_json",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#load_json",
      "target": "skills/uncertainty-and-units/scripts/_common.py#load_json.reject_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#load_json.reject_constant",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#non_negative_float",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#non_negative_float",
      "target": "skills/uncertainty-and-units/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#normalize_distribution",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#numerical_tolerance",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#parse_expression",
      "target": "skills/uncertainty-and-units/scripts/_common.py#_check_depth",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#parse_expression",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#positive_float",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#positive_float",
      "target": "skills/uncertainty-and-units/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#probability",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#probability",
      "target": "skills/uncertainty-and-units/scripts/_common.py#finite_float",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#read_text_file",
      "target": "skills/uncertainty-and-units/scripts/_common.py#checked_input_file",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#read_text_file",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression",
      "target": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression",
      "target": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression.walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression.walk",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression.walk",
      "target": "skills/uncertainty-and-units/scripts/_common.py#reduce_expression.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#scalar_functions",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/_common.py#shortest_coverage_interval",
      "target": "skills/uncertainty-and-units/scripts/_common.py#CliError",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#_tokens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#audit_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#exit_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#parse_suppressions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#render_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#significant_digits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "decimal",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#audit_source",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#audit_source",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.finish",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._call_module",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._call_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._check_constant_literal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._is_numpy_call",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._suppressed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.finish",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Attribute",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Call",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Import",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_ImportFrom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.__init__",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#parse_suppressions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._check_constant_literal",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._check_constant_literal",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#significant_digits",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.finish",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._suppressed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.finish",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Attribute",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Call",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._call_module",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Call",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._call_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Call",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._is_numpy_call",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Call",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Constant",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#_tokens",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Constant",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor._check_constant_literal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.visit_Constant",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#Auditor.report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#exit_code",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#render_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#main",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/audit_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/audit_units.py#audit_source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#_catalogue_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#_describe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#_lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#check_dimensionality",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#classify",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#constant_quantities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_band",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#exit_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#orders_of_magnitude",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#overall_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#parse_quantity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#render_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "convert_units",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#check_dimensionality",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_band",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#orders_of_magnitude",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_group",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#classify",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_group",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_scale",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#exit_code",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#render_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#main",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#parse_quantity",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#checked_unit",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#_catalogue_document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#_describe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#_lookup",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#constant_quantities",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_band",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_group",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#evaluate_scale",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#overall_verdict",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/check_plausibility.py#parse_quantity",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/check_plausibility.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#build_registry",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#build_registry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#checked_unit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#is_multiplicative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#parse_context_parameter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#propagate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "pint",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#main",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#main",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#parse_context_parameter",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#checked_unit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#propagate",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#build_registry",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#checked_unit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#is_multiplicative",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#parse_context_parameter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/convert_units.py#run",
      "target": "skills/uncertainty-and-units/scripts/convert_units.py#propagate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#_decimal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#_plain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#build_statement",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#collect_warnings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#round_to_uncertainty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "decimal",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#collect_warnings",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#_decimal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#main",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#main",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#render",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#_plain",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#round_to_uncertainty",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#_decimal",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#build_statement",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#collect_warnings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#render",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/format_result.py#run",
      "target": "skills/uncertainty-and-units/scripts/format_result.py#round_to_uncertainty",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw_correlated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#collect_warnings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#gum_framework",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#monte_carlo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#normalize_variables",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#parse_correlation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#parse_variable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#render_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#validate_linearization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py",
      "target": "uncertainties",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw_correlated",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#main",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#main",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#render_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#main",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#monte_carlo",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#monte_carlo",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#_draw_correlated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#collect_warnings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#gum_framework",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#monte_carlo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#normalize_variables",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#parse_correlation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#parse_variable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#run",
      "target": "skills/uncertainty-and-units/scripts/propagate_uncertainty.py#validate_linearization",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_budget",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#collect_warnings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#normalize_component",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#render_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_budget",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#collect_warnings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_budget",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#normalize_component",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#main",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_budget",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#main",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#build_parser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#main",
      "target": "skills/uncertainty-and-units/scripts/uncertainty_budget.py#render_markdown",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "skills/venue-templates/scripts/customize_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "skills/venue-templates/scripts/customize_template.py#customize_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "skills/venue-templates/scripts/customize_template.py#find_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "skills/venue-templates/scripts/customize_template.py#get_skill_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "skills/venue-templates/scripts/customize_template.py#interactive_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "skills/venue-templates/scripts/customize_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#find_template",
      "target": "skills/venue-templates/scripts/customize_template.py#get_skill_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#interactive_mode",
      "target": "skills/venue-templates/scripts/customize_template.py#customize_template",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#interactive_mode",
      "target": "skills/venue-templates/scripts/customize_template.py#get_skill_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#main",
      "target": "skills/venue-templates/scripts/customize_template.py#customize_template",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#main",
      "target": "skills/venue-templates/scripts/customize_template.py#find_template",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#main",
      "target": "skills/venue-templates/scripts/customize_template.py#get_skill_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/customize_template.py#main",
      "target": "skills/venue-templates/scripts/customize_template.py#interactive_mode",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#parse_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#print_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#search_templates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#skill_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "skills/venue-templates/scripts/query_template.py#template_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py#main",
      "target": "skills/venue-templates/scripts/query_template.py#parse_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py#main",
      "target": "skills/venue-templates/scripts/query_template.py#print_template",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py#main",
      "target": "skills/venue-templates/scripts/query_template.py#search_templates",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py#print_template",
      "target": "skills/venue-templates/scripts/query_template.py#template_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/query_template.py#template_path",
      "target": "skills/venue-templates/scripts/query_template.py#skill_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#embedded_fonts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#font_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#metadata_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#page_count_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#parse_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#pdf_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#run_poppler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "skills/venue-templates/scripts/validate_format.py#write_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#embedded_fonts",
      "target": "skills/venue-templates/scripts/validate_format.py#run_poppler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#embedded_fonts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#font_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#metadata_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#page_count_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#parse_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#pdf_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#main",
      "target": "skills/venue-templates/scripts/validate_format.py#write_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/venue-templates/scripts/validate_format.py#pdf_info",
      "target": "skills/venue-templates/scripts/validate_format.py#run_poppler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#attach_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#build_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#deepest_rank",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#matrix_to_waypoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#normalise_lineage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_metaphlan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#build_matrix",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#build_matrix",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_metaphlan",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#build_matrix",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#main",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#attach_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#main",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#build_matrix",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#main",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#matrix_to_waypoint",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_kraken_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#parse_table",
      "target": "skills/waypoint-bio/scripts/profiler_to_waypoint.py#normalise_lineage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#_parse_list_cell",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#coverage_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#load_dataframe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#load_tokenizer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "transformers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py",
      "target": "waypoint_bio.tokenizer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py#load_tokenizer",
      "target": "skills/arbor/scripts/tree.py#_load",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py#main",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#coverage_report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py#main",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#load_dataframe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/waypoint-bio/scripts/vocab_coverage.py#main",
      "target": "skills/waypoint-bio/scripts/vocab_coverage.py#load_tokenizer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "skills/xlsx/scripts/office/helpers/__init__.py#opc_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "skills/xlsx/scripts/office/helpers/__init__.py#part_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "skills/xlsx/scripts/office/helpers/__init__.py#rels_source_part",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "skills/xlsx/scripts/office/helpers/__init__.py#rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "skills/xlsx/scripts/office/helpers/__init__.py#rezip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "skills/xlsx/scripts/office/helpers/__init__.py#safe_extract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/__init__.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#find_chart_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_canonical_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_declared_axes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_chart_axis_references",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_undeclared_axes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_check_stacked_label_positions",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_strip_ext_lst",
      "target": "skills/xlsx/scripts/office/helpers/pptx_chart.py#_ext_lst_spans",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_slide.py#fatal_slide_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_slide.py#is_schema_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_slide.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_masters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_sort_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "posixpath",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_shares",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_masters",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_shares",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_rels_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_theme_rel",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_resolve",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#find_shared_master_themes",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_is_inert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_notes_master_share_is_inert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/helpers/pptx_theme.py#live_shared_master_themes",
      "target": "skills/xlsx/scripts/office/helpers/pptx_theme.py#_shares",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "skills/xlsx/scripts/office/soffice.py#run_soffice",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "skills/xlsx/scripts/office/soffice.py#_ensure_shim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "skills/xlsx/scripts/office/soffice.py#_needs_shim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "skills/xlsx/scripts/office/soffice.py#get_soffice_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "skills/xlsx/scripts/office/soffice.py#run_soffice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "atexit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "socket",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py#get_soffice_env",
      "target": "skills/xlsx/scripts/office/soffice.py#_ensure_shim",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py#get_soffice_env",
      "target": "skills/xlsx/scripts/office/soffice.py#_needs_shim",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/soffice.py#run_soffice",
      "target": "skills/xlsx/scripts/office/soffice.py#get_soffice_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "skills/xlsx/scripts/office/validate.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "skills/xlsx/scripts/office/validate.py#_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "skills/xlsx/scripts/office/validate.py#_has_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "skills/xlsx/scripts/office/validate.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "defusedxml.common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "validators",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py#main",
      "target": "skills/xlsx/scripts/office/validate.py#_fail",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validate.py#main",
      "target": "skills/xlsx/scripts/office/validate.py#_has_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/__init__.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/__init__.py",
      "target": ".docx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/__init__.py",
      "target": ".pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/__init__.py",
      "target": ".redlining",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "skills/xlsx/scripts/office/validators/base.py#_load_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "functools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_content_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_unique_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_ignorable_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes.process_text_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#_load_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._clean_ignorable_namespaces",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_schema_path",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_mc_ignorable",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._preprocess_for_schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._remove_template_tags_from_text_nodes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.repair",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.repair_whitespace_preservation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_against_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_all_relationship_ids",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_expected_relationship_type",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._get_original_file_errors",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator.validate_file_against_xsd",
      "target": "skills/xlsx/scripts/office/validators/base.py#BaseSchemaValidator._validate_single_file_xsd",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "random",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator",
      "target": "BaseSchemaValidator",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_original",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.count_paragraphs_in_unpacked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.repair_durableId",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.compare_paragraph_counts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_comment_markers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_deletions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_insertions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_whitespace_preservation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator.validate_id_constraints",
      "target": "skills/xlsx/scripts/office/validators/docx.py#DOCXSchemaValidator._parse_id_value",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": ".base",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_chart",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_slide",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "helpers.pptx_theme",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "lxml.etree",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._get_schema_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._preprocess_for_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator",
      "target": "BaseSchemaValidator",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_no_duplicate_slide_layouts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_notes_slide_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slide_layout_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_charts",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_master_theme_uniqueness",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._package_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_slides",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._original_slide_defects",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator.validate_uuid_ids",
      "target": "skills/xlsx/scripts/office/validators/pptx.py#PPTXSchemaValidator._looks_like_uuid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "defusedxml.common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "helpers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.repair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._get_git_word_diff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.group",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes.text_of",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._rendered_text",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._tracked_change_key",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._text_elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._extract_text_content",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._generate_detailed_diff",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._new_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator.validate",
      "target": "skills/xlsx/scripts/office/validators/redlining.py#RedliningValidator._remove_tracked_changes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#_recalc_with_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#_stamp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#external_links_at_risk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#has_gtimeout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#recalc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "skills/xlsx/scripts/recalc.py#setup_libreoffice_macro",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "office.soffice",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "openpyxl",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "platform",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "time",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py#_recalc_with_profile",
      "target": "skills/xlsx/scripts/recalc.py#_stamp",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py#_recalc_with_profile",
      "target": "skills/xlsx/scripts/recalc.py#has_gtimeout",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py#_recalc_with_profile",
      "target": "skills/xlsx/scripts/recalc.py#setup_libreoffice_macro",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py#main",
      "target": "skills/xlsx/scripts/recalc.py#recalc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py#recalc",
      "target": "skills/xlsx/scripts/recalc.py#_recalc_with_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "skills/xlsx/scripts/recalc.py#recalc",
      "target": "skills/xlsx/scripts/recalc.py#external_links_at_risk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/__init__.py",
      "target": ".",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "tests/_contract/cli.py#_missing_dependency",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "tests/_contract/cli.py#cli_scripts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "tests/_contract/cli.py#demo_test_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "tests/_contract/cli.py#help_test_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "tests/_contract/cli.py#run_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#demo_test_case",
      "target": "tests/_contract/cli.py#demo_test_case.DemoBlockTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#demo_test_case.DemoBlockTests",
      "target": "tests/_contract/cli.py#demo_test_case.DemoBlockTests.test_every_demo_block_runs_clean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#demo_test_case.DemoBlockTests.test_every_demo_block_runs_clean",
      "target": "tests/_contract/cli.py#_missing_dependency",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#help_test_case",
      "target": "tests/_contract/cli.py#help_test_case.CliHelpContractTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#help_test_case.CliHelpContractTests",
      "target": "tests/_contract/cli.py#help_test_case.CliHelpContractTests.test_every_cli_answers_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#help_test_case.CliHelpContractTests.test_every_cli_answers_help",
      "target": "tests/_contract/cli.py#_missing_dependency",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#help_test_case.CliHelpContractTests.test_every_cli_answers_help",
      "target": "tests/_contract/cli.py#cli_scripts",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/cli.py#help_test_case.CliHelpContractTests.test_every_cli_answers_help",
      "target": "tests/_contract/cli.py#run_help",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "tests/_contract/office.py#_tree_digest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "tests/_contract/office.py#identical_tree_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "tests/_contract/office.py#office_test_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "tests/_contract/office.py#shared_file_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#identical_tree_problems",
      "target": "tests/_contract/office.py#_tree_digest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case",
      "target": "tests/_contract/office.py#office_test_case.load_helpers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_a_dot_target_resolves_to_its_own_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_every_validator_schema_path_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_ooxml_family_covers_this_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_opc_target_ignores_external_and_scheme_targets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_opc_target_refuses_targets_that_escape_the_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_opc_target_resolves_relative_and_absolute_part_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_part_text_survives_undecodable_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_rendered_text_honours_xml_space_preserve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_rezip_leaves_no_temporary_file_behind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_rezip_stores_content_types_first_and_uncompressed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_safe_extract_refuses_a_symlink_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_safe_extract_refuses_a_traversal_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests",
      "target": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.test_safe_extract_unpacks_an_ordinary_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/office.py#office_test_case.OfficeSharedTreeTests.setUp",
      "target": "tests/_contract/office.py#office_test_case.load_helpers",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "tests/_contract/schematic.py#review_failure_test_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "tests/_contract/schematic.py#review_parsing_test_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "tests/_contract/schematic.py#schematic_test_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case",
      "target": "tests/_contract/schematic.py#review_failure_test_case.load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case",
      "target": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests",
      "target": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests",
      "target": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_failed_review_is_not_reported_as_a_passing_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests",
      "target": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_response_with_no_choices_does_not_crash_the_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests",
      "target": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_scored_review_is_reported_verbatim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_failed_review_is_not_reported_as_a_passing_one",
      "target": "tests/_contract/schematic.py#review_failure_test_case.ReviewFailureTests.test_a_failed_review_is_not_reported_as_a_passing_one.explode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_a_real_failing_verdict_is_still_recognised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_an_unparseable_score_is_none_rather_than_a_stand_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_the_review_result_carries_whether_the_review_happened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_the_score_survives_the_markdown_the_reviewer_writes_it_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests",
      "target": "tests/_contract/schematic.py#review_parsing_test_case.ReviewParsingTests.test_the_verdict_comes_from_the_verdict_line_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case",
      "target": "tests/_contract/schematic.py#schematic_test_case.load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_absent_variables_are_omitted_not_blanked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_no_key_means_no_key_variable_rather_than_an_empty_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_only_allowlisted_variables_reach_the_subprocess",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_allowlist_carries_no_credential_variables",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_allowlist_covers_proxies_tls_and_windows_startup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_allowlist_has_no_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_api_key_is_injected_under_the_expected_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_generator_script_is_shipped_alongside_the_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests",
      "target": "tests/_contract/schematic.py#schematic_test_case.SchematicContractTests.test_the_iteration_count_is_rejected_rather_than_clamped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#_frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#_metadata_scalars",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#_script_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#_top_level_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#_tracked_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#all_skill_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#bytecode_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#compile_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#documented_skills",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#dynamic_execution_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#frontmatter_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#length_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#link_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#personal_path_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#script_bearing_skills",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#shadow_module_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#shell_script_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "tests/_contract/structure.py#stray_test_problems",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "collections.abc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "functools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#bytecode_problems",
      "target": "tests/_contract/structure.py#_tracked_files",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#compile_problems",
      "target": "tests/_contract/structure.py#_script_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#dynamic_execution_problems",
      "target": "tests/_contract/structure.py#_script_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#frontmatter_problems",
      "target": "tests/_contract/structure.py#_frontmatter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#frontmatter_problems",
      "target": "tests/_contract/structure.py#_metadata_scalars",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#frontmatter_problems",
      "target": "tests/_contract/structure.py#_top_level_entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#link_problems",
      "target": "tests/_contract/structure.py#all_skill_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#personal_path_problems",
      "target": "tests/_contract/structure.py#_script_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_contract/structure.py#shell_script_problems",
      "target": "tests/_contract/structure.py#_script_paths",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "tests/_meta/test_repo_contract.py#_suite_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "tests/_meta/test_repo_contract.py#AgentPluginTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "tests/_meta/test_repo_contract.py#CoverageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "tests/_meta/test_repo_contract.py#SharedCopyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "tests/_meta/test_repo_contract.py#StructuralContractTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "tomllib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#AgentPluginTests",
      "target": "tests/_meta/test_repo_contract.py#AgentPluginTests.test_plugin_manifest_conforms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#AgentPluginTests",
      "target": "tests/_meta/test_repo_contract.py#AgentPluginTests.test_skills_component_is_discoverable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests",
      "target": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_skill_with_scripts_has_a_requirements_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests",
      "target": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_skill_with_scripts_has_a_test_suite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests",
      "target": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_suite_has_a_test_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests",
      "target": "tests/_meta/test_repo_contract.py#CoverageTests.test_no_test_suite_is_orphaned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests",
      "target": "tests/_meta/test_repo_contract.py#CoverageTests.test_requirements_entries_name_real_skills",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_skill_with_scripts_has_a_test_suite",
      "target": "tests/_meta/test_repo_contract.py#_suite_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests.test_every_suite_has_a_test_file",
      "target": "tests/_meta/test_repo_contract.py#_suite_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#CoverageTests.test_no_test_suite_is_orphaned",
      "target": "tests/_meta/test_repo_contract.py#_suite_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#SharedCopyTests",
      "target": "tests/_meta/test_repo_contract.py#SharedCopyTests.test_docx_pptx_xlsx_ship_the_same_office_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#SharedCopyTests",
      "target": "tests/_meta/test_repo_contract.py#SharedCopyTests.test_shared_scripts_are_identical_across_their_skills",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/_meta/test_repo_contract.py#StructuralContractTests",
      "target": "tests/_meta/test_repo_contract.py#StructuralContractTests.test_all_skills_satisfy_every_structural_rule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#_avi_adata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#_fi_adata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#_load_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#_rna_adata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#_variant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#ApiKeyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#AtlasConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#ChromosomeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#ExportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#IntervalParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#ScorerSelectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#SequenceLengthTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tests/alphagenome/test_scripts.py#VariantParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "alphagenome.data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "alphagenome.models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "anndata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ApiKeyTests",
      "target": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_explicit_variable_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ApiKeyTests",
      "target": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_missing_key_exits_with_signup_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ApiKeyTests",
      "target": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_portal_url_encodes_the_allele_separator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ApiKeyTests",
      "target": "tests/alphagenome/test_scripts.py#ApiKeyTests.test_primary_then_fallback_spelling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_max_abs_track_and_metadata_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_computes_phred_and_top_feature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_without_attributions_or_quantiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_tidy_atlas_scores_is_one_row_per_gene_track",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_max_abs_track_and_metadata_rows",
      "target": "tests/alphagenome/test_scripts.py#_rna_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_max_abs_track_and_metadata_rows",
      "target": "tests/alphagenome/test_scripts.py#_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_max_abs_track_and_metadata_rows",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_computes_phred_and_top_feature",
      "target": "tests/alphagenome/test_scripts.py#_avi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_computes_phred_and_top_feature",
      "target": "tests/alphagenome/test_scripts.py#_fi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_computes_phred_and_top_feature",
      "target": "tests/alphagenome/test_scripts.py#_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_without_attributions_or_quantiles",
      "target": "tests/alphagenome/test_scripts.py#_avi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_summarize_avi_without_attributions_or_quantiles",
      "target": "tests/alphagenome/test_scripts.py#_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_tidy_atlas_scores_is_one_row_per_gene_track",
      "target": "tests/alphagenome/test_scripts.py#_rna_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasConversionTests.test_tidy_atlas_scores_is_one_row_per_gene_track",
      "target": "tests/alphagenome/test_scripts.py#_variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_cli_prints_url_or_markdown_and_rejects_rsids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_gene_uses_entity_mode_and_motifs_take_zoom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_locus_link_keeps_one_based_closed_coordinates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_modalities_are_validated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_tf_filter_pulls_in_rna_seq_and_dnase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_variant_link_normalises_and_encodes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasLinkTests.test_cli_prints_url_or_markdown_and_rejects_rsids",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_for_variants_writes_one_row_each_and_keeps_failures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_from_vcf_warns_about_indels_and_filters_by_phred",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_refuses_wide_windows_and_large_stdout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_scans_three_variants_per_base_and_sorts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_with_tracks_adds_the_strongest_track",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_without_inputs_exits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scorers_and_tracks_subcommands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_forwards_filters_and_flattens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests",
      "target": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_min_abs_quantile_keeps_tails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.setUp",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_for_variants_writes_one_row_each_and_keeps_failures",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_for_variants_writes_one_row_each_and_keeps_failures",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_from_vcf_warns_about_indels_and_filters_by_phred",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_refuses_wide_windows_and_large_stdout",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_refuses_wide_windows_and_large_stdout",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_scans_three_variants_per_base_and_sorts",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_interval_scans_three_variants_per_base_and_sorts",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_with_tracks_adds_the_strongest_track",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_avi_without_inputs_exits",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scorers_and_tracks_subcommands",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scorers_and_tracks_subcommands",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_forwards_filters_and_flattens",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_min_abs_quantile_keeps_tails",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#AtlasQueryCliTests.test_scores_min_abs_quantile_keeps_tails",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ChromosomeTests",
      "target": "tests/alphagenome/test_scripts.py#ChromosomeTests.test_chr_prefix_is_added_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ChromosomeTests",
      "target": "tests/alphagenome/test_scripts.py#ChromosomeTests.test_empty_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ChromosomeTests",
      "target": "tests/alphagenome/test_scripts.py#ChromosomeTests.test_mitochondrion_spellings_collapse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ExportTests",
      "target": "tests/alphagenome/test_scripts.py#ExportTests.test_format_follows_extension_then_flag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ExportTests",
      "target": "tests/alphagenome/test_scripts.py#ExportTests.test_json_to_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ExportTests",
      "target": "tests/alphagenome/test_scripts.py#ExportTests.test_tsv_to_stdout_orders_columns_by_first_appearance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ExportTests",
      "target": "tests/alphagenome/test_scripts.py#ExportTests.test_unknown_format_and_parquet_without_path_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ExportTests.test_tsv_to_stdout_orders_columns_by_first_appearance",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_variant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient",
      "target": "tests/alphagenome/test_scripts.py#FakeAtlasClient.scorer_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_interval",
      "target": "tests/alphagenome/test_scripts.py#_avi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_interval",
      "target": "tests/alphagenome/test_scripts.py#_fi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_interval",
      "target": "tests/alphagenome/test_scripts.py#_rna_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_variant",
      "target": "tests/alphagenome/test_scripts.py#_avi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_variant",
      "target": "tests/alphagenome/test_scripts.py#_fi_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#FakeAtlasClient.query_variant",
      "target": "tests/alphagenome/test_scripts.py#_rna_adata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#IntervalParsingTests",
      "target": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_invalid_intervals_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#IntervalParsingTests",
      "target": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_one_based_closed_becomes_zero_based_half_open",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#IntervalParsingTests",
      "target": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_single_base_window_has_width_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#IntervalParsingTests",
      "target": "tests/alphagenome/test_scripts.py#IntervalParsingTests.test_thousands_separators_and_missing_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "target": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_feature_display_names_cover_all_eighteen",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "target": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_nan_propagates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "target": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_phred_scale_matches_the_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "target": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_saturated_quantile_is_floored_not_infinite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests",
      "target": "tests/alphagenome/test_scripts.py#ScoreArithmeticTests.test_top_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScorerSelectionTests",
      "target": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_default_excludes_active_scorers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScorerSelectionTests",
      "target": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_list_scorers_needs_no_network",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScorerSelectionTests",
      "target": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_mouse_drops_polyadenylation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScorerSelectionTests",
      "target": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_named_selection_and_unknown_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_list_scorers_needs_no_network",
      "target": "tests/alphagenome/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#ScorerSelectionTests.test_list_scorers_needs_no_network",
      "target": "tests/alphagenome/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#SequenceLengthTests",
      "target": "tests/alphagenome/test_scripts.py#SequenceLengthTests.test_lengths_match_the_sdk_constants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#SequenceLengthTests",
      "target": "tests/alphagenome/test_scripts.py#SequenceLengthTests.test_names_and_integers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests.test_collect_variants_merges_flags_and_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests.test_csv_with_variant_column_reports_unparseable_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests.test_missing_columns_are_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests.test_missing_file_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests.test_tsv_with_vcf_style_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantFileTests",
      "target": "tests/alphagenome/test_scripts.py#VariantFileTests.test_vcf_splits_multiallelic_and_skips_symbolic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantParsingTests",
      "target": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_bases_are_uppercased_and_indels_kept",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantParsingTests",
      "target": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_default_gnomad_gtex_and_open_targets_spellings_agree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantParsingTests",
      "target": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_rsid_and_garbage_are_rejected_with_guidance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/alphagenome/test_scripts.py#VariantParsingTests",
      "target": "tests/alphagenome/test_scripts.py#VariantParsingTests.test_string_form_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#_load_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_attribute_aliases_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_dl_ql_factors_documented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_m10_modalities_differ",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_m10_run_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_paywalled_frameworks_marked_not_reproducible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_q2r2_identity_only_needs_specificity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_q2r2_response_requires_five_levels",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_q2r2_table1_limit_test_needs_dl_not_ql",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCatalogue",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCatalogue.test_total_error_is_lba_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_accuracy_reports_confidence_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_between_day_shift_inflates_intermediate_precision",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_design_meeting_neither_option_is_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_nine_across_range_satisfies_option_a",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_no_group_column_only_repeatability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_precision_is_reported_per_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_require_ci_within_limit_is_stricter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_six_at_one_level_satisfies_option_b",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_zero_level_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_accuracy_reports_confidence_interval",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_between_day_shift_inflates_intermediate_precision",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_design_meeting_neither_option_is_flagged",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_nine_across_range_satisfies_option_a",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_no_group_column_only_repeatability",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_precision_is_reported_per_level",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_require_ci_within_limit_is_stricter",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_six_at_one_level_satisfies_option_b",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckAccuracyPrecision.test_zero_level_rejected",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_anchor_points_excluded_from_calibration_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_bad_type_column_exits_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_criteria_listing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_isr_chromatographic_vs_lba",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_modality_is_mandatory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_per_level_qc_rule_catches_failing_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_same_run_passes_lba_tolerances",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_total_error_applied_for_lba",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_total_error_rejected_for_chromatographic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_anchor_points_excluded_from_calibration_count",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_bad_type_column_exits_2",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_criteria_listing",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_isr_chromatographic_vs_lba",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_modality_is_mandatory",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_per_level_qc_rule_catches_failing_level",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_same_run_passes_lba_tolerances",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_total_error_applied_for_lba",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckBioanalyticalRun.test_total_error_rejected_for_chromatographic",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_confirm_data_without_claim_exits_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_dl_ql_factor_relationship",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_explicit_claim_overrides_the_conservative_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_multiple_approaches_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_ql_above_reporting_threshold_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_ql_confirmation_evaluated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_signal_to_noise_requires_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_threshold_check_uses_the_conservative_estimate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_confirm_data_without_claim_exits_2",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_dl_ql_factor_relationship",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_explicit_claim_overrides_the_conservative_default",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_multiple_approaches_reported",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_ql_above_reporting_threshold_flagged",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_ql_confirmation_evaluated",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_signal_to_noise_requires_level",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckDetectionLimits.test_threshold_check_uses_the_conservative_estimate",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_curved_response_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_curved_response_has_high_r_squared",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_good_curve_no_findings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_missing_column_exits_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_too_few_levels_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_weighting_option_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_curved_response_flagged",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_curved_response_has_high_r_squared",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_good_curve_no_findings",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_missing_column_exits_2",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_too_few_levels_flagged",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCheckResponse.test_weighting_option_accepted",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_deming_and_ols_both_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_equivalent_at_two_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_margin_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_not_equivalent_at_one_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_t_test_significant_while_tost_equivalent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods",
      "target": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_too_few_pairs_exits_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_deming_and_ols_both_reported",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_equivalent_at_two_percent",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_margin_is_required",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_not_equivalent_at_one_percent",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_t_test_significant_while_tost_equivalent",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestCompareMethods.test_too_few_pairs_exits_2",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_bad_probabilities_raise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_betainc_edges",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_chi2_quantiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_f_distribution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_f_sf_does_not_underflow_to_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_t_cdf_symmetry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestDistributions",
      "target": "tests/analytical-method-validation/test_scripts.py#TestDistributions.test_t_quantiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_empty_json_array_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_json_input_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_json_row_cap_boundary_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_missing_file_exits_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_non_numeric_value_names_the_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_omitted_input_does_not_block_on_a_terminal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_oversize_json_is_refused_not_truncated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_stdout_carries_data_stderr_carries_notes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling",
      "target": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_tsv_input_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_json_input_accepted",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_missing_file_exits_2",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_non_numeric_value_names_the_row",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_stdout_carries_data_stderr_carries_notes",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestInputHandling.test_tsv_input_accepted",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_bland_altman_bias_and_loa",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_bland_altman_needs_three_pairs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_bland_altman_relative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_lambda_affects_slope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_lambda_direction_matches_documentation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_recovers_unit_slope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_deming_rejects_bad_lambda",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_ci_contains_estimate_across_shapes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_ci_order_statistics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_exact_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_needs_five_points",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_passing_bablok_resists_one_outlier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_ci_is_1_minus_2alpha",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_equivalent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_not_equivalent_when_biased",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison",
      "target": "tests/analytical-method-validation/test_scripts.py#TestMethodComparison.test_tost_rejects_bad_margin",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_identity_plan_marks_most_tests_not_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_list_frameworks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_chromatographic_plan_excludes_total_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_lba_plan_includes_total_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_requires_modality",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_paywalled_framework_refuses_to_supply_design",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_protocol_skeleton_has_pre_stated_criteria_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_q2r2_assay_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation",
      "target": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_unknown_framework_exits_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_identity_plan_marks_most_tests_not_required",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_list_frameworks",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_chromatographic_plan_excludes_total_error",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_lba_plan_includes_total_error",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_m10_requires_modality",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_paywalled_framework_refuses_to_supply_design",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_protocol_skeleton_has_pre_stated_criteria_section",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_q2r2_assay_plan",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestPlanValidation.test_unknown_framework_exits_2",
      "target": "tests/analytical-method-validation/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_collinear_x_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_exact_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_heteroscedasticity_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_known_least_squares",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_lack_of_fit_detects_curvature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_lack_of_fit_needs_replicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_lack_of_fit_passes_linear_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_runs_test_flags_curvature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_runs_test_small_sample_is_honest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_too_few_points",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestRegression",
      "target": "tests/analytical-method-validation/test_scripts.py#TestRegression.test_weighting_changes_the_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_no_bytecode_shipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_no_techniques_attributed_to_q2r2_that_it_never_mentions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_no_tests_inside_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_paywalled_standards_are_not_quoted_with_numbers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_referenced_files_exist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_skill_md_frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure",
      "target": "tests/analytical-method-validation/test_scripts.py#TestSkillStructure.test_skill_md_under_500_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "target": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_balanced_hand_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "target": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_between_variance_truncated_at_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "target": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_needs_two_groups",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "target": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_sd_confidence_interval_brackets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents",
      "target": "tests/analytical-method-validation/test_scripts.py#TestVarianceComponents.test_unbalanced_effective_n",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#CycleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#EvidenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#InitTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#MergeGateTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#NodeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#PersistenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#ProjectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#PropagateTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#PruneTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tests/arbor/test_scripts.py#ValidateTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests",
      "target": "tests/arbor/test_scripts.py#CycleTests.test_cycles_count_up_and_report_the_remainder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests",
      "target": "tests/arbor/test_scripts.py#CycleTests.test_the_counter_keeps_going_past_the_budget",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests.test_cycles_count_up_and_report_the_remainder",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests.test_cycles_count_up_and_report_the_remainder",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests.test_the_counter_keeps_going_past_the_budget",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#CycleTests.test_the_counter_keeps_going_past_the_budget",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#EvidenceTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#EvidenceTests.test_a_leaf_with_ancestors_is_reminded_to_propagate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#EvidenceTests.test_a_partial_update_leaves_untouched_fields_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#EvidenceTests.test_a_zero_dev_score_is_recorded_rather_than_treated_as_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#EvidenceTests.test_an_explicit_status_overrides_the_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#EvidenceTests.test_evidence_defaults_the_status_to_executed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.test_a_leaf_with_ancestors_is_reminded_to_propagate",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.test_a_partial_update_leaves_untouched_fields_alone",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.test_a_zero_dev_score_is_recorded_rather_than_treated_as_absent",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.test_an_explicit_status_overrides_the_default",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#EvidenceTests.test_evidence_defaults_the_status_to_executed",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests",
      "target": "tests/arbor/test_scripts.py#InitTests.test_commands_before_init_explain_how_to_start",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests",
      "target": "tests/arbor/test_scripts.py#InitTests.test_force_overwrites_and_resets_the_counter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests",
      "target": "tests/arbor/test_scripts.py#InitTests.test_init_creates_both_state_files_with_a_root_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests",
      "target": "tests/arbor/test_scripts.py#InitTests.test_init_refuses_to_erase_an_existing_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests",
      "target": "tests/arbor/test_scripts.py#InitTests.test_run_config_records_the_budget_and_starts_unspent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests.test_commands_before_init_explain_how_to_start",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests.test_force_overwrites_and_resets_the_counter",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests.test_force_overwrites_and_resets_the_counter",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests.test_init_creates_both_state_files_with_a_root_node",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests.test_init_refuses_to_erase_an_existing_run",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#InitTests.test_run_config_records_the_budget_and_starts_unspent",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests.test_a_negative_score_can_still_be_the_first_best",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests.test_a_worse_candidate_is_rejected_and_leaves_m_best_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests.test_an_exact_tie_does_not_displace_the_incumbent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests.test_minimisation_runs_invert_the_comparison",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests.test_the_first_candidate_always_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#MergeGateTests.test_the_node_branch_ref_is_used_when_none_is_supplied",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_a_negative_score_can_still_be_the_first_best",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_a_negative_score_can_still_be_the_first_best",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_a_worse_candidate_is_rejected_and_leaves_m_best_alone",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_a_worse_candidate_is_rejected_and_leaves_m_best_alone",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_an_exact_tie_does_not_displace_the_incumbent",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_an_exact_tie_does_not_displace_the_incumbent",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_minimisation_runs_invert_the_comparison",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_minimisation_runs_invert_the_comparison",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_the_first_candidate_always_passes",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_the_first_candidate_always_passes",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_the_node_branch_ref_is_used_when_none_is_supplied",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#MergeGateTests.test_the_node_branch_ref_is_used_when_none_is_supplied",
      "target": "tests/arbor/test_scripts.py#MergeGateTests._prepare",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.test_an_unknown_parent_is_refused_with_a_pointer_to_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.test_depth_one_is_a_direction_and_deeper_is_an_intervention",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.test_exceeding_max_depth_warns_but_still_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.test_ids_are_sequential_and_depth_is_derived_from_the_parent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.test_new_nodes_start_pending_with_empty_evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#NodeTests.test_status_must_come_from_the_documented_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.test_an_unknown_parent_is_refused_with_a_pointer_to_status",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.test_depth_one_is_a_direction_and_deeper_is_an_intervention",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.test_exceeding_max_depth_warns_but_still_records",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.test_ids_are_sequential_and_depth_is_derived_from_the_parent",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.test_new_nodes_start_pending_with_empty_evidence",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#NodeTests.test_status_must_come_from_the_documented_set",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests",
      "target": "tests/arbor/test_scripts.py#PersistenceTests.test_state_survives_a_fresh_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests",
      "target": "tests/arbor/test_scripts.py#PersistenceTests.test_writes_leave_no_temporary_file_behind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests.test_state_survives_a_fresh_read",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests.test_state_survives_a_fresh_read",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests.test_writes_leave_no_temporary_file_behind",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PersistenceTests.test_writes_leave_no_temporary_file_behind",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests",
      "target": "tests/arbor/test_scripts.py#ProjectionTests.test_observe_reports_the_objective_and_every_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests",
      "target": "tests/arbor/test_scripts.py#ProjectionTests.test_status_renders_the_tree_without_mutating_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests.test_observe_reports_the_objective_and_every_node",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests.test_observe_reports_the_objective_and_every_node",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests.test_status_renders_the_tree_without_mutating_it",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ProjectionTests.test_status_renders_the_tree_without_mutating_it",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#PropagateTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#PropagateTests.test_default_propagation_reaches_only_the_immediate_parent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#PropagateTests.test_every_line_records_which_node_it_came_from",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#PropagateTests.test_insights_accumulate_rather_than_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#PropagateTests.test_the_root_has_no_ancestors_to_propagate_to",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#PropagateTests.test_to_root_reaches_every_ancestor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.test_default_propagation_reaches_only_the_immediate_parent",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.test_every_line_records_which_node_it_came_from",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.test_insights_accumulate_rather_than_overwrite",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.test_the_root_has_no_ancestors_to_propagate_to",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PropagateTests.test_to_root_reaches_every_ancestor",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests",
      "target": "tests/arbor/test_scripts.py#PruneTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests",
      "target": "tests/arbor/test_scripts.py#PruneTests.test_a_merged_node_survives_a_prune_of_its_ancestor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests",
      "target": "tests/arbor/test_scripts.py#PruneTests.test_pruning_takes_the_whole_subtree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests",
      "target": "tests/arbor/test_scripts.py#PruneTests.test_pruning_the_root_is_a_no_op",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests",
      "target": "tests/arbor/test_scripts.py#PruneTests.test_the_reason_is_recorded_on_the_target_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests.test_a_merged_node_survives_a_prune_of_its_ancestor",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests.test_pruning_takes_the_whole_subtree",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests.test_pruning_the_root_is_a_no_op",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#PruneTests.test_the_reason_is_recorded_on_the_target_only",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests._write_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests.test_a_best_node_that_was_never_merged_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests.test_a_dangling_parent_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests.test_a_healthy_tree_validates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests.test_a_merged_best_node_validates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ValidateTests.test_an_invalid_status_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.init",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.setUp",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_a_best_node_that_was_never_merged_is_caught",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_a_dangling_parent_is_caught",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_a_dangling_parent_is_caught",
      "target": "tests/arbor/test_scripts.py#ValidateTests._write_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_a_healthy_tree_validates",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_a_merged_best_node_validates",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_an_invalid_status_is_caught",
      "target": "tests/arbor/test_scripts.py#ArborRunTestCase.run_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arbor/test_scripts.py#ValidateTests.test_an_invalid_status_is_caught",
      "target": "tests/arbor/test_scripts.py#ValidateTests._write_tree",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "tests/arboreto/test_scripts.py#ParserTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "basic_grn_inference",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_a_tf_file_restricts_the_candidate_regulators",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_no_index_column_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_expression_matrix_is_read_with_genes_as_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_link_limit_is_forwarded_and_defaults_to_unlimited",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_network_is_written_headerless_and_tab_separated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_seed_is_forwarded_so_runs_are_reproducible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_without_a_tf_file_every_gene_is_a_candidate_regulator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_a_tf_file_restricts_the_candidate_regulators",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_no_index_column_is_written",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_expression_matrix_is_read_with_genes_as_columns",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_link_limit_is_forwarded_and_defaults_to_unlimited",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_network_is_written_headerless_and_tab_separated",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_the_seed_is_forwarded_so_runs_are_reproducible",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#InferenceWrapperTests.test_without_a_tf_file_every_gene_is_a_candidate_regulator",
      "target": "tests/arboreto/test_scripts.py#InferenceWrapperTests.run_inference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#ParserTests",
      "target": "tests/arboreto/test_scripts.py#ParserTests.test_the_documented_flags_are_all_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/arboreto/test_scripts.py#ParserTests",
      "target": "tests/arboreto/test_scripts.py#ParserTests.test_the_positional_arguments_are_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/conftest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/conftest.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "tests/autoskill/smoke_lmstudio.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "tests/autoskill/smoke_lmstudio.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "backends",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "match_skills",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "sentence_transformers",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "synthesize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py#main",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py#main",
      "target": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py#main",
      "target": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py#main",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/smoke_lmstudio.py#main",
      "target": "tests/autoskill/smoke_lmstudio.py#main.embedder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#_mock_client",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_make_backend_raises_on_unknown_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_make_backend_raises_when_anthropic_key_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_make_backend_returns_claude_backend_for_claude_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_make_backend_returns_claude_backend_with_foundry_base_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "tests/autoskill/test_backends.py#test_make_backend_returns_local_backend_for_local_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "backends",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry",
      "target": "tests/autoskill/test_backends.py#_mock_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry",
      "target": "tests/autoskill/test_backends.py#test_claude_backend_honors_custom_base_url_for_foundry.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers",
      "target": "tests/autoskill/test_backends.py#_mock_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers",
      "target": "tests/autoskill/test_backends.py#test_claude_backend_posts_to_v1_messages_with_auth_headers.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error",
      "target": "skills/autoskill/scripts/backends.py#ClaudeBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error",
      "target": "tests/autoskill/test_backends.py#_mock_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error",
      "target": "tests/autoskill/test_backends.py#test_claude_backend_raises_on_http_error.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions",
      "target": "tests/autoskill/test_backends.py#_mock_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions",
      "target": "tests/autoskill/test_backends.py#test_local_backend_posts_to_chat_completions.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_make_backend_raises_on_unknown_backend",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_make_backend_raises_when_anthropic_key_missing",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_make_backend_returns_claude_backend_for_claude_config",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_make_backend_returns_claude_backend_with_foundry_base_url",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_backends.py#test_make_backend_returns_local_backend_for_local_config",
      "target": "skills/autoskill/scripts/backends.py#make_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "tests/autoskill/test_cli.py#test_dispatches_to_doctor_subcommand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "tests/autoskill/test_cli.py#test_dispatches_to_promote_subcommand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "tests/autoskill/test_cli.py#test_dispatches_to_run_subcommand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "tests/autoskill/test_cli.py#test_missing_subcommand_errors_out",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "tests/autoskill/test_cli.py#test_propagates_nonzero_exit_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "tests/autoskill/test_cli.py#test_unknown_subcommand_errors_out",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "autoskill",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py#test_dispatches_to_doctor_subcommand",
      "target": "tests/autoskill/test_cli.py#test_dispatches_to_doctor_subcommand.fake_doctor_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py#test_dispatches_to_promote_subcommand",
      "target": "tests/autoskill/test_cli.py#test_dispatches_to_promote_subcommand.fake_promote_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cli.py#test_dispatches_to_run_subcommand",
      "target": "tests/autoskill/test_cli.py#test_dispatches_to_run_subcommand.fake_run_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#_evt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_cluster_summary_exposes_total_duration_and_example_titles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_clusters_group_sessions_with_identical_app_signatures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_contiguous_events_form_one_session",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_idle_gap_splits_sessions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_session_records_distinct_apps_in_order_of_first_appearance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_sessions_below_minimum_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "tests/autoskill/test_cluster.py#test_singleton_clusters_are_dropped_when_below_min_cluster_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py",
      "target": "cluster",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_cluster_summary_exposes_total_duration_and_example_titles",
      "target": "skills/autoskill/scripts/cluster.py#cluster_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_clusters_group_sessions_with_identical_app_signatures",
      "target": "skills/autoskill/scripts/cluster.py#cluster_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_contiguous_events_form_one_session",
      "target": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_contiguous_events_form_one_session",
      "target": "tests/autoskill/test_cluster.py#_evt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_idle_gap_splits_sessions",
      "target": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_idle_gap_splits_sessions",
      "target": "tests/autoskill/test_cluster.py#_evt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_session_records_distinct_apps_in_order_of_first_appearance",
      "target": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_session_records_distinct_apps_in_order_of_first_appearance",
      "target": "tests/autoskill/test_cluster.py#_evt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_sessions_below_minimum_are_dropped",
      "target": "skills/autoskill/scripts/cluster.py#segment_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_sessions_below_minimum_are_dropped",
      "target": "tests/autoskill/test_cluster.py#_evt",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_cluster.py#test_singleton_clusters_are_dropped_when_below_min_cluster_size",
      "target": "skills/autoskill/scripts/cluster.py#cluster_sessions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#_err_probe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#_ok_probe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_check_all_green",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_check_flags_unknown_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_check_reports_llm_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_check_reports_missing_skills_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_check_reports_screenpipe_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_cli_all_green_returns_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "tests/autoskill/test_doctor.py#test_cli_any_failure_returns_nonzero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "doctor",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py#test_check_all_green",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py#test_check_reports_llm_failure",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py#test_check_reports_missing_skills_dir",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py#test_check_reports_screenpipe_failure",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py#test_cli_all_green_returns_zero",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_doctor.py#test_cli_any_failure_returns_nonzero",
      "target": "tests/autoskill/test_doctor.py#_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_base_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_keyword_embedder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_ocr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_realistic_day",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_screenpipe_client",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#_write_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "backends",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "run",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler",
      "target": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler",
      "target": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#_realistic_day",
      "target": "tests/autoskill/test_e2e.py#_ocr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#_screenpipe_client",
      "target": "tests/autoskill/test_e2e.py#_screenpipe_client.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "target": "tests/autoskill/test_e2e.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window",
      "target": "tests/autoskill/test_e2e.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window",
      "target": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window",
      "target": "tests/autoskill/test_e2e.py#test_auth_token_threads_through_run_into_fetch_window.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model",
      "target": "tests/autoskill/test_e2e.py#_realistic_day",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model",
      "target": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model",
      "target": "tests/autoskill/test_e2e.py#test_cli_dry_run_writes_plan_without_backend_or_embedding_model.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "target": "tests/autoskill/test_e2e.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "target": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "target": "tests/autoskill/test_e2e.py#_realistic_day",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "target": "tests/autoskill/test_e2e.py#_screenpipe_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_full_pipeline_produces_report_and_drafts",
      "target": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "target": "skills/autoskill/scripts/backends.py#LocalBackend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "target": "tests/autoskill/test_e2e.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "target": "tests/autoskill/test_e2e.py#_FakeLMStudioHandler",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "target": "tests/autoskill/test_e2e.py#_ocr",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "target": "tests/autoskill/test_e2e.py#_screenpipe_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_e2e.py#test_pipeline_redaction_prevents_secrets_leaving_the_host",
      "target": "tests/autoskill/test_e2e.py#_seed_skills_dir",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#_ocr_event",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "fetch_window",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_calls_search_endpoint_with_time_window_params.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_normalizes_ocr_events_into_unified_schema.handler",
      "target": "tests/autoskill/test_fetch_window.py#_ocr_event",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_omits_auth_header_when_no_token.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected",
      "target": "tests/autoskill/test_fetch_window.py#_ocr_event",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_paginates_until_all_results_collected.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_raises_on_http_error.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_returns_empty_list_when_no_results.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided",
      "target": "skills/autoskill/scripts/fetch_window.py#fetch_window",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided",
      "target": "tests/autoskill/test_fetch_window.py#_make_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided",
      "target": "tests/autoskill/test_fetch_window.py#test_fetch_sends_bearer_token_when_provided.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#_keyword_embedder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#_write_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_reads_frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_skips_directories_without_skill_md",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#test_top_k_matches_handles_zero_vectors_without_crashing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#test_top_k_matches_ranks_by_cosine_similarity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "tests/autoskill/test_match_skills.py#test_top_k_matches_returns_all_when_k_exceeds_skills",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "match_skills",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_reads_frontmatter",
      "target": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_reads_frontmatter",
      "target": "tests/autoskill/test_match_skills.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_skips_directories_without_skill_md",
      "target": "skills/autoskill/scripts/match_skills.py#load_skill_descriptions",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_load_skill_descriptions_skips_directories_without_skill_md",
      "target": "tests/autoskill/test_match_skills.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_top_k_matches_handles_zero_vectors_without_crashing",
      "target": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_top_k_matches_ranks_by_cosine_similarity",
      "target": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_match_skills.py#test_top_k_matches_returns_all_when_k_exceeds_skills",
      "target": "skills/autoskill/scripts/match_skills.py#top_k_matches",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_cli_promotes_successfully",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_cli_returns_nonzero_with_friendly_error_on_promote_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_preserves_nested_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_promotes_composition_recipe_into_skills_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_promotes_new_skill_into_skills_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_raises_when_proposed_skill_is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "tests/autoskill/test_promote.py#test_raises_when_target_already_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "promote",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_cli_promotes_successfully",
      "target": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_preserves_nested_files",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_preserves_nested_files",
      "target": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_promotes_composition_recipe_into_skills_dir",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_promotes_composition_recipe_into_skills_dir",
      "target": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_promotes_new_skill_into_skills_dir",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_promotes_new_skill_into_skills_dir",
      "target": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_raises_when_proposed_skill_is_missing",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_raises_when_target_already_exists",
      "target": "skills/autoskill/scripts/promote.py#promote",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_promote.py#test_raises_when_target_already_exists",
      "target": "tests/autoskill/test_promote.py#_stage_proposed_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_preserves_ordinary_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_aws_access_key_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_bearer_token_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_email_address",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_github_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_google_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_huggingface_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_known_secret_env_var_assignments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_multiple_secrets_in_one_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_openai_style_api_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_slack_bot_token",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_ssh_private_key_block",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_standalone_jwt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_stripe_publishable_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_stripe_secret_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_us_phone_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "tests/autoskill/test_redact.py#test_redacts_us_ssn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py",
      "target": "redact",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_preserves_ordinary_text",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_aws_access_key_id",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_bearer_token_header",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_email_address",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_github_token",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_google_api_key",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_huggingface_token",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_known_secret_env_var_assignments",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_multiple_secrets_in_one_string",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_openai_style_api_key",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_slack_bot_token",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_ssh_private_key_block",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_standalone_jwt",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_stripe_publishable_key",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_stripe_secret_key",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_us_phone_number",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_redact.py#test_redacts_us_ssn",
      "target": "skills/autoskill/scripts/redact.py#redact",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#_events_two_sessions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#_keyword_embedder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_skips_clusters_below_min_cluster_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "httpx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py",
      "target": "run",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#StubBackend",
      "target": "tests/autoskill/test_run.py#StubBackend.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#StubBackend",
      "target": "tests/autoskill/test_run.py#StubBackend.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "target": "tests/autoskill/test_run.py#_events_two_sessions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_dry_run_does_not_call_backend",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable",
      "target": "tests/autoskill/test_run.py#test_run_raises_actionable_error_when_screenpipe_unreachable.handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call",
      "target": "tests/autoskill/test_run.py#test_run_redacts_secrets_from_event_text_before_any_llm_call.capture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_skips_clusters_below_min_cluster_size",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_skips_clusters_below_min_cluster_size",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_skips_clusters_below_min_cluster_size",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_skips_clusters_below_min_cluster_size",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "target": "tests/autoskill/test_run.py#_events_two_sessions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_composition_recipe_for_compose_verdict",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "target": "tests/autoskill/test_run.py#_events_two_sessions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_new_skill_draft_for_novel_verdict",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "target": "tests/autoskill/test_run.py#_base_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "target": "tests/autoskill/test_run.py#_events_two_sessions",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "target": "tests/autoskill/test_run.py#_screenpipe_client_with_events",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "target": "tests/autoskill/test_run.py#_write_skill",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_run.py#test_run_writes_report_into_timestamped_proposed_dir",
      "target": "tests/autoskill/test_run.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_parses_compose_verdict_and_returns_skill_body",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_parses_novel_verdict_and_returns_skill_body",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_parses_reuse_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_prompt_includes_cluster_and_candidate_skills",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_raises_on_unknown_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_raises_on_unparseable_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "tests/autoskill/test_synthesize.py#test_tolerates_json_wrapped_in_markdown_fence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py",
      "target": "synthesize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#StubBackend",
      "target": "tests/autoskill/test_synthesize.py#StubBackend.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#StubBackend",
      "target": "tests/autoskill/test_synthesize.py#StubBackend.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_compose_verdict_and_returns_skill_body",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_compose_verdict_and_returns_skill_body",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_compose_verdict_and_returns_skill_body",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_compose_verdict_and_returns_skill_body",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_novel_verdict_and_returns_skill_body",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_novel_verdict_and_returns_skill_body",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_novel_verdict_and_returns_skill_body",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_novel_verdict_and_returns_skill_body",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_reuse_verdict",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_reuse_verdict",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_reuse_verdict",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_parses_reuse_verdict",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_prompt_includes_cluster_and_candidate_skills",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_prompt_includes_cluster_and_candidate_skills",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_prompt_includes_cluster_and_candidate_skills",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_prompt_includes_cluster_and_candidate_skills",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unknown_verdict",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unknown_verdict",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unknown_verdict",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unknown_verdict",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unparseable_response",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unparseable_response",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unparseable_response",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_raises_on_unparseable_response",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_tolerates_json_wrapped_in_markdown_fence",
      "target": "skills/autoskill/scripts/synthesize.py#synthesize",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_tolerates_json_wrapped_in_markdown_fence",
      "target": "tests/autoskill/test_synthesize.py#_cluster",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_tolerates_json_wrapped_in_markdown_fence",
      "target": "tests/autoskill/test_synthesize.py#_top_k",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/autoskill/test_synthesize.py#test_tolerates_json_wrapped_in_markdown_fence",
      "target": "tests/autoskill/test_synthesize.py#StubBackend",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "tests/bids/test_scripts.py#BepsWriteTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "tests/bids/test_scripts.py#FetchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "tests/bids/test_scripts.py#SchemaWriteTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "tests/bids/test_scripts.py#ShippedReferenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "tests/bids/test_scripts.py#TemporaryReferencesTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py",
      "target": "update_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#BepsWriteTests",
      "target": "tests/bids/test_scripts.py#BepsWriteTests.test_beps_are_written_verbatim_and_counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#BepsWriteTests",
      "target": "tests/bids/test_scripts.py#BepsWriteTests.test_the_counter_matches_the_format_of_the_shipped_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#BepsWriteTests",
      "target": "tests/bids/test_scripts.py#TemporaryReferencesTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#FetchTests",
      "target": "tests/bids/test_scripts.py#FetchTests.test_requests_carry_an_identifying_user_agent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#FetchTests",
      "target": "tests/bids/test_scripts.py#FetchTests.test_the_default_sources_are_https_and_upstream",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#SchemaWriteTests",
      "target": "tests/bids/test_scripts.py#SchemaWriteTests.test_a_non_json_response_fails_before_anything_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#SchemaWriteTests",
      "target": "tests/bids/test_scripts.py#SchemaWriteTests.test_a_schema_without_version_fields_reports_unknown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#SchemaWriteTests",
      "target": "tests/bids/test_scripts.py#SchemaWriteTests.test_downloaded_schema_is_reserialised_with_stable_formatting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#SchemaWriteTests",
      "target": "tests/bids/test_scripts.py#SchemaWriteTests.test_the_reported_versions_come_from_the_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#SchemaWriteTests",
      "target": "tests/bids/test_scripts.py#TemporaryReferencesTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#ShippedReferenceTests",
      "target": "tests/bids/test_scripts.py#ShippedReferenceTests.test_the_references_directory_is_where_the_script_writes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#ShippedReferenceTests",
      "target": "tests/bids/test_scripts.py#ShippedReferenceTests.test_the_shipped_schema_parses_and_is_versioned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bids/test_scripts.py#TemporaryReferencesTestCase",
      "target": "tests/bids/test_scripts.py#TemporaryReferencesTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#CompoundReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#FakeKegg",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#InteractionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#RecordingUniProt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "bioservices",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.requests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_chunk_size_larger_than_the_list_still_sends_one_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_failed_chunk_is_retried_one_identifier_at_a_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_long_list_is_split_into_chunks_of_the_requested_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_retry_that_also_fails_records_the_identifier_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_short_list_is_one_comma_separated_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_an_empty_response_marks_the_whole_chunk_failed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_identifiers_that_never_map_are_reported_as_failed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_no_delay_is_taken_when_it_is_switched_off",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_the_delay_is_only_taken_between_chunks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_chunk_size_larger_than_the_list_still_sends_one_request",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_failed_chunk_is_retried_one_identifier_at_a_time",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_failed_chunk_is_retried_one_identifier_at_a_time",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_failed_chunk_is_retried_one_identifier_at_a_time.responder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_long_list_is_split_into_chunks_of_the_requested_size",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_retry_that_also_fails_records_the_identifier_once",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_retry_that_also_fails_records_the_identifier_once",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_retry_that_also_fails_records_the_identifier_once.responder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_a_short_list_is_one_comma_separated_request",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_an_empty_response_marks_the_whole_chunk_failed",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_identifiers_that_never_map_are_reported_as_failed",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_no_delay_is_taken_when_it_is_switched_off",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BatchConversionTests.test_the_delay_is_only_taken_between_chunks",
      "target": "tests/bioservices/test_scripts.py#BatchConversionTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_blast_is_not_submitted_when_explicitly_skipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_blast_is_not_submitted_without_a_contact_address",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast.getStatus",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_failed_job_returns_nothing_rather_than_polling_forever.FailingBlast.run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.getResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.getStatus",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast",
      "target": "tests/bioservices/test_scripts.py#BlastGuardTests.test_a_finished_job_returns_its_result.FakeBlast.run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_blast_is_not_submitted_when_explicitly_skipped",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#BlastGuardTests.test_blast_is_not_submitted_without_a_contact_address",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_no_chebi_identifier_means_no_request_at_all",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_no_chembl_identifier_means_no_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request.FakeChebi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request.FakeChebi",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_bare_chebi_number_is_prefixed_before_the_request.FakeChebi.getCompleteEntity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result.Broken",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result.Broken",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_a_chembl_error_is_swallowed_into_a_none_result.Broken.get_molecule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice.FakeChebi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice.FakeChebi",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_an_already_prefixed_identifier_is_not_prefixed_twice.FakeChebi.getCompleteEntity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_no_chebi_identifier_means_no_request_at_all",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_no_chembl_identifier_means_no_request",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name.FakeChembl",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name.FakeChembl",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name.FakeChembl",
      "target": "tests/bioservices/test_scripts.py#ChebiAndChemblTests.test_the_chembl_lookup_uses_the_current_method_name.FakeChembl.get_molecule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#CompoundReportTests",
      "target": "tests/bioservices/test_scripts.py#CompoundReportTests.test_a_report_without_kegg_information_still_writes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#CompoundReportTests",
      "target": "tests/bioservices/test_scripts.py#CompoundReportTests.test_the_report_records_every_identifier_that_was_resolved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#CompoundReportTests.test_a_report_without_kegg_information_still_writes",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#CompoundReportTests.test_the_report_records_every_identifier_that_was_resolved",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "target": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_aliases_are_matched_case_insensitively",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "target": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_an_official_code_survives_normalisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "target": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_an_unknown_code_is_passed_through_rather_than_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "target": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_every_alias_maps_to_a_code_that_is_itself_stable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#DatabaseCodeTests",
      "target": "tests/bioservices/test_scripts.py#DatabaseCodeTests.test_lowercase_aliases_resolve_to_the_official_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#FakeKegg",
      "target": "tests/bioservices/test_scripts.py#FakeKegg.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#FakeKegg",
      "target": "tests/bioservices/test_scripts.py#FakeKegg.find",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#FakeKegg",
      "target": "tests/bioservices/test_scripts.py#FakeKegg.get",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg.get",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg.parse_kgml_pathway",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_a_header_only_response_yields_empty_aspects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_an_unknown_aspect_letter_is_discarded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_no_annotations_yields_an_empty_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_terms_are_grouped_by_the_three_go_aspects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations.FakeQuickGo",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations.FakeQuickGo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations.FakeQuickGo",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations.FakeQuickGo.Annotation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_a_header_only_response_yields_empty_aspects",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_an_unknown_aspect_letter_is_discarded",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_no_annotations_yields_an_empty_list",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#GoAnnotationTests.test_terms_are_grouped_by_the_three_go_aspects",
      "target": "tests/bioservices/test_scripts.py#GoAnnotationTests.annotations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_a_missing_file_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_an_empty_file_yields_no_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_comments_and_blank_lines_are_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_identifiers_are_read_one_per_line_and_trimmed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests.read",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_an_empty_file_yields_no_identifiers",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_comments_and_blank_lines_are_ignored",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#IdentifierFileTests.test_identifiers_are_read_one_per_line_and_trimmed",
      "target": "tests/bioservices/test_scripts.py#IdentifierFileTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_a_release_without_psicquic_skips_the_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_a_release_without_psicquic_skips_the_step",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed.FakePsicquic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed.FakePsicquic",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_a_truncated_record_is_ignored_rather_than_indexed.FakePsicquic.query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list.FakePsicquic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list.FakePsicquic",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_no_interactions_returns_an_empty_list.FakePsicquic.query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column.FakePsicquic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column.FakePsicquic",
      "target": "tests/bioservices/test_scripts.py#InteractionTests.test_the_query_is_scoped_to_human_and_parsed_by_column.FakePsicquic.query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_no_results_returns_no_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_the_compound_database_is_searched_by_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_the_cpd_prefix_is_stripped_from_the_first_hit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "target": "tests/bioservices/test_scripts.py#FakeKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising.Broken",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising.Broken",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_a_service_error_returns_no_identifier_rather_than_raising.Broken.find",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_no_results_returns_no_identifier",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_the_compound_database_is_searched_by_name",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.test_the_cpd_prefix_is_stripped_from_the_first_hit",
      "target": "tests/bioservices/test_scripts.py#KeggCompoundSearchTests.search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_empty_response_is_reported_as_no_information",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_entry_without_a_pathway_block_has_no_pathways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_only_the_pathway_block_becomes_pathways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_chebi_identifier_is_pulled_out_of_dblinks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_entry_is_requested_with_the_cpd_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_name_loses_its_trailing_semicolon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests",
      "target": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_the_published_formula_and_masses_are_extracted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.setUp",
      "target": "tests/bioservices/test_scripts.py#FakeKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.setUp",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_empty_response_is_reported_as_no_information",
      "target": "tests/bioservices/test_scripts.py#FakeKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_empty_response_is_reported_as_no_information",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_entry_without_a_pathway_block_has_no_pathways",
      "target": "tests/bioservices/test_scripts.py#FakeKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#KeggEntryParsingTests.test_an_entry_without_a_pathway_block_has_no_pathways",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.test_an_unmapped_identifier_is_written_as_an_empty_failed_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.test_failed_identifiers_are_saved_only_when_there_are_some",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.test_multiple_targets_are_joined_with_semicolons",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.test_rows_are_sorted_by_source_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.test_the_header_is_the_documented_five_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests",
      "target": "tests/bioservices/test_scripts.py#MappingCsvTests.test_the_source_and_target_databases_are_recorded_on_every_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests.setUp",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#MappingCsvTests.test_failed_identifiers_are_saved_only_when_there_are_some",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "target": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_a_valid_address_on_the_command_line_wins",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "target": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_malformed_addresses_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "target": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_no_address_anywhere_yields_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "target": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_surrounding_whitespace_is_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#NcbiEmailTests",
      "target": "tests/bioservices/test_scripts.py#NcbiEmailTests.test_the_environment_is_the_fallback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_missing_name_falls_back_to_unknown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_pathway_without_kgml_is_skipped_not_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_an_empty_pathway_reports_zero_rather_than_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_entries_and_relations_are_counted_and_typed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_interactions_are_written_as_three_column_sif",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_per_pathway_files_are_named_without_a_colon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_limit_truncates_the_pathway_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_summary_buckets_the_four_named_interaction_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_missing_name_falls_back_to_unknown",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_missing_name_falls_back_to_unknown",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_pathway_without_kgml_is_skipped_not_fatal",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_a_pathway_without_kgml_is_skipped_not_fatal",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_an_empty_pathway_reports_zero_rather_than_failing",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_an_empty_pathway_reports_zero_rather_than_failing",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_entries_and_relations_are_counted_and_typed",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_entries_and_relations_are_counted_and_typed",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky.parse_kgml_pathway",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_failed_pathways_are_dropped_from_the_batch.Flaky",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_interactions_are_written_as_three_column_sif",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_interactions_are_written_as_three_column_sif",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_interactions_are_written_as_three_column_sif",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_per_pathway_files_are_named_without_a_colon",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_per_pathway_files_are_named_without_a_colon",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_per_pathway_files_are_named_without_a_colon",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_limit_truncates_the_pathway_list",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_limit_truncates_the_pathway_list",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways.FakeKeggOrganism",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_organism_is_set_on_the_client_before_listing_pathways.FakeKeggOrganism",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_summary_buckets_the_four_named_interaction_types",
      "target": "tests/bioservices/test_scripts.py#FakeKgmlKegg",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_summary_buckets_the_four_named_interaction_types",
      "target": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#PathwayAnalysisTests.test_the_summary_buckets_the_four_named_interaction_types",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_failed_direct_retrieval_falls_back_to_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_header_only_response_finds_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_name_query_falls_through_to_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_an_accession_shaped_query_is_retrieved_directly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_an_empty_response_finds_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt.retrieve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.FakeUniProt.search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_failed_direct_retrieval_falls_back_to_search",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_header_only_response_finds_nothing",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_a_name_query_falls_through_to_search",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_an_accession_shaped_query_is_retrieved_directly",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#ProteinSearchTests.test_an_empty_response_finds_nothing",
      "target": "tests/bioservices/test_scripts.py#ProteinSearchTests.run_search",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#RecordingUniProt",
      "target": "tests/bioservices/test_scripts.py#RecordingUniProt.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#RecordingUniProt",
      "target": "tests/bioservices/test_scripts.py#RecordingUniProt.mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_an_empty_response_yields_no_sequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_the_fasta_header_is_dropped_and_the_lines_joined",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.FakeUniProt.retrieve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence.Broken",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence.Broken",
      "target": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_a_service_error_yields_no_sequence.Broken.retrieve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_an_empty_response_yields_no_sequence",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bioservices/test_scripts.py#SequenceRetrievalTests.test_the_fasta_header_is_dropped_and_the_lines_joined",
      "target": "tests/bioservices/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#ReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "build_counts_matrix",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py",
      "target": "validate_samplesheet",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests._star_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_an_empty_directory_exits_with_a_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_featurecounts_output_is_reduced_to_genes_by_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_genes_absent_from_one_sample_become_zero_not_nan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_outputs_are_written_where_downstream_steps_expect_them",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_star_counts_are_assembled_from_per_sample_tables",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_star_summary_rows_are_excluded_from_the_gene_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_the_strand_choice_selects_a_different_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_genes_absent_from_one_sample_become_zero_not_nan",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests._star_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_star_counts_are_assembled_from_per_sample_tables",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests._star_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_star_summary_rows_are_excluded_from_the_gene_matrix",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests._star_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests.test_the_strand_choice_selects_a_different_column",
      "target": "tests/bulk-rnaseq/test_scripts.py#CountsMatrixTests._star_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_absent_local_reads_are_errors_when_checking_is_on",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_an_unusual_extension_on_an_existing_file_is_only_a_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_nothing_is_checked_when_file_checking_is_off",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_present_local_reads_pass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_remote_urls_are_skipped_rather_than_reported_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_absent_local_reads_are_errors_when_checking_is_on",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_an_unusual_extension_on_an_existing_file_is_only_a_warning",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_nothing_is_checked_when_file_checking_is_off",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_present_local_reads_pass",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#FileExistenceTests.test_remote_urls_are_skipped_rather_than_reported_missing",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_crossed_batch_design_is_not_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_matching_design_passes_apart_from_the_replicate_advisory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_missing_condition_column_names_the_columns_it_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_singleton_group_cannot_estimate_variance_and_is_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_an_entirely_empty_condition_column_is_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_batch_fully_nested_in_condition_is_flagged_as_confounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_extra_metadata_samples_are_only_a_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_samples_missing_from_the_metadata_are_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_two_replicates_pass_but_warn_below_the_recommended_minimum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_crossed_batch_design_is_not_flagged",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_matching_design_passes_apart_from_the_replicate_advisory",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_missing_condition_column_names_the_columns_it_found",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_a_singleton_group_cannot_estimate_variance_and_is_fatal",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_an_entirely_empty_condition_column_is_fatal",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_batch_fully_nested_in_condition_is_flagged_as_confounded",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_extra_metadata_samples_are_only_a_warning",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_samples_missing_from_the_metadata_are_an_error",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#MetadataTests.test_two_replicates_pass_but_warn_below_the_recommended_minimum",
      "target": "tests/bulk-rnaseq/test_scripts.py#MetadataTests._validate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#ReportTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#ReportTests.test_errors_fail_the_run_and_warnings_do_not",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests.test_cleaning_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests.test_common_quantifier_suffixes_are_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SampleNameTests.test_the_star_strand_columns_match_the_documented_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_a_reused_read_one_file_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_empty_sample_or_read_cells_are_errors_with_a_row_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_every_documented_strandedness_value_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_mixing_paired_and_single_rows_for_one_sample_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_one_sample_across_lanes_warns_but_does_not_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_strandedness_is_matched_case_insensitively",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_the_same_file_in_both_read_columns_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_unknown_strandedness_values_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_a_reused_read_one_file_is_an_error",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_empty_sample_or_read_cells_are_errors_with_a_row_number",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_every_documented_strandedness_value_is_accepted",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_mixing_paired_and_single_rows_for_one_sample_is_an_error",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_one_sample_across_lanes_warns_but_does_not_fail",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_strandedness_is_matched_case_insensitively",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_the_same_file_in_both_read_columns_is_an_error",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetContentTests.test_unknown_strandedness_values_are_rejected",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_missing_file_is_an_error_not_a_crash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_missing_strandedness_column_is_only_advisory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_well_formed_sheet_passes_cleanly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_the_required_columns_are_sample_and_fastq_1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_whitespace_around_headers_and_values_is_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_missing_strandedness_column_is_only_advisory",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_a_well_formed_sheet_passes_cleanly",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_the_required_columns_are_sample_and_fastq_1",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetShapeTests.test_whitespace_around_headers_and_values_is_stripped",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.validate",
      "target": "tests/bulk-rnaseq/test_scripts.py#SamplesheetTestCase.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#EndToEndTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#FixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#PageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#ParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#RekeyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#RenderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#SortTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#TitleProtectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tests/citation-management/test_scripts.py#ValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "extract_metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "format_bibtex",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "search_openalex",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "search_pubmed",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py",
      "target": "validate_citations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_comma_separated_name_uses_the_surname",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_key_is_always_safe_to_use",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_missing_year_becomes_a_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_pubmed_style_name_uses_the_leading_surname",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_a_western_style_name_uses_the_trailing_surname",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_accents_and_punctuation_are_removed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#CitationKeyTests",
      "target": "tests/citation-management/test_scripts.py#CitationKeyTests.test_the_same_paper_from_two_sources_gets_the_same_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests.test_distinct_entries_all_survive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_sharing_a_citation_key_collapse_to_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_sharing_a_doi_collapse_to_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_without_a_doi_are_deduplicated_by_key_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests.test_the_first_occurrence_is_kept",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests.test_distinct_entries_all_survive",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_sharing_a_citation_key_collapse_to_one",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_sharing_a_doi_collapse_to_one",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests.test_entries_without_a_doi_are_deduplicated_by_key_alone",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#DeduplicationTests.test_the_first_occurrence_is_kept",
      "target": "tests/citation-management/test_scripts.py#DeduplicationTests._entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EndToEndTests",
      "target": "tests/citation-management/test_scripts.py#EndToEndTests.test_formatting_a_file_applies_every_fix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EndToEndTests",
      "target": "tests/citation-management/test_scripts.py#EndToEndTests.test_the_result_still_parses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EndToEndTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EndToEndTests.test_formatting_a_file_applies_every_fix",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EndToEndTests.test_the_result_still_parses",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_book_keeps_its_publisher",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_chapter_uses_booktitle_rather_than_journal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_published_preprint_gains_its_journal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_pubmed_entry_key_is_shared_scheme_and_pages_expand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_report_maps_its_publisher_to_institution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_an_unpublished_preprint_is_misc_not_a_journalless_article",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_only_one_note_field_is_emitted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_book_keeps_its_publisher",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_chapter_uses_booktitle_rather_than_journal",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_pubmed_entry_key_is_shared_scheme_and_pages_expand",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_a_report_maps_its_publisher_to_institution",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#EntryRenderingTests.test_an_unpublished_preprint_is_misc_not_a_journalless_article",
      "target": "tests/citation-management/test_scripts.py#EntryRenderingTests._fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_a_bare_doi_is_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_a_doi_loses_its_url_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_a_doubled_and_is_collapsed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_a_pp_prefix_is_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_a_single_hyphen_page_range_becomes_an_en_dash_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_absent_fields_are_not_invented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_an_already_correct_range_is_left_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_author_separators_are_normalised_to_and",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#FixTests.test_fixing_does_not_mutate_the_original_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_a_bare_doi_is_untouched",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_a_doi_loses_its_url_prefix",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_a_doubled_and_is_collapsed",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_a_pp_prefix_is_stripped",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_a_single_hyphen_page_range_becomes_an_en_dash_range",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_absent_fields_are_not_invented",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_an_already_correct_range_is_left_alone",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#FixTests.test_author_separators_are_normalised_to_and",
      "target": "tests/citation-management/test_scripts.py#FixTests._fixed_fields",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests.test_a_preprint_renders_as_misc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests.test_a_single_page_work_does_not_become_a_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests.test_a_work_is_flattened_to_the_shared_metadata_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests.test_an_absent_abstract_yields_an_empty_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#OpenAlexTests",
      "target": "tests/citation-management/test_scripts.py#OpenAlexTests.test_an_abstract_is_rebuilt_from_its_inverted_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_a_pp_prefix_is_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_a_single_hyphen_range_becomes_an_en_dash_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_an_abbreviated_end_page_is_expanded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_an_already_correct_range_is_not_doubled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_an_article_number_is_left_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_an_empty_value_yields_an_empty_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#PageTests",
      "target": "tests/citation-management/test_scripts.py#PageTests.test_an_en_dash_is_normalised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_a_comma_inside_a_field_does_not_split_the_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_a_nested_brace_in_a_title_survives_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_an_empty_file_parses_to_no_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_an_entry_closed_on_the_same_line_is_recognised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_an_unreadable_file_returns_no_entries_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_comments_outside_entries_are_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_entries_are_parsed_with_type_key_and_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_quoted_field_values_are_read_as_well_as_braced_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#ParsingTests.test_string_and_comment_blocks_are_not_treated_as_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_a_comma_inside_a_field_does_not_split_the_field",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_a_nested_brace_in_a_title_survives_parsing",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_an_empty_file_parses_to_no_entries",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_an_entry_closed_on_the_same_line_is_recognised",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_comments_outside_entries_are_ignored",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_entries_are_parsed_with_type_key_and_fields",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_quoted_field_values_are_read_as_well_as_braced_ones",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ParsingTests.test_string_and_comment_blocks_are_not_treated_as_entries",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RekeyTests",
      "target": "tests/citation-management/test_scripts.py#RekeyTests.test_a_key_collision_gets_a_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RekeyTests",
      "target": "tests/citation-management/test_scripts.py#RekeyTests.test_entries_are_rekeyed_to_the_shared_scheme",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RekeyTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RekeyTests.test_entries_are_rekeyed_to_the_shared_scheme",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests",
      "target": "tests/citation-management/test_scripts.py#RenderTests.test_a_formatted_entry_reparses_to_the_same_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests",
      "target": "tests/citation-management/test_scripts.py#RenderTests.test_a_protected_title_round_trips_without_losing_a_brace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests",
      "target": "tests/citation-management/test_scripts.py#RenderTests.test_braces_are_balanced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests",
      "target": "tests/citation-management/test_scripts.py#RenderTests.test_fields_are_emitted_in_the_documented_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests",
      "target": "tests/citation-management/test_scripts.py#RenderTests.test_formatting_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests.test_a_formatted_entry_reparses_to_the_same_fields",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests.test_a_protected_title_round_trips_without_losing_a_brace",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests.test_braces_are_balanced",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#RenderTests.test_formatting_is_idempotent",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#SortTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#SortTests.test_an_unknown_sort_field_falls_back_to_the_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#SortTests.test_descending_reverses_the_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#SortTests.test_entries_missing_the_sort_field_go_last",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#SortTests.test_sorting_by_year_author_and_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#SortTests.test_the_default_sort_is_by_citation_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#SortTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#TitleProtectionTests",
      "target": "tests/citation-management/test_scripts.py#TitleProtectionTests.test_an_acronym_inside_a_longer_word_is_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#TitleProtectionTests",
      "target": "tests/citation-management/test_scripts.py#TitleProtectionTests.test_an_acronym_is_braced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#TitleProtectionTests",
      "target": "tests/citation-management/test_scripts.py#TitleProtectionTests.test_protection_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_a_complete_article_raises_no_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_a_manuscript_with_no_citations_yields_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_a_missing_required_field_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_a_venue_shortfall_is_a_warning_not_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_an_explicit_min_count_is_enforced_as_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_distinct_entries_are_not_reported_as_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_duplicate_detection_finds_repeated_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_manuscript_citation_keys_are_extracted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_the_valid_entry_count_never_goes_negative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#ValidationTests.test_venue_standards_are_available_without_running_a_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests.test_a_venue_shortfall_is_a_warning_not_an_error",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests.test_an_explicit_min_count_is_enforced_as_an_error",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests.test_distinct_entries_are_not_reported_as_duplicates",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests.test_duplicate_detection_finds_repeated_entries",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/citation-management/test_scripts.py#ValidationTests.test_the_valid_entry_count_never_goes_negative",
      "target": "tests/citation-management/test_scripts.py#BibTeXTestCase.bib",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#resolve_placeholders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "cohort_table_generator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "decision_logic_traceability",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "deidentification_checklist",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "evidence_profile_check",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "model_biomarker_evaluation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "survival_plan_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py",
      "target": "validate_cds_artifact",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests",
      "target": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests.test_cohort_table_applies_complementary_suppression",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests",
      "target": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests.test_model_evaluation_is_aggregate_and_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests.test_cohort_table_applies_complementary_suppression",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#AggregateEvaluationTests.test_model_evaluation_is_aggregate_and_bounded",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests",
      "target": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests.test_completed_safe_artifact_passes_structural_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests",
      "target": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests.test_unresolved_artifact_template_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests.test_completed_safe_artifact_passes_structural_checks",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#ArtifactValidatorTests.test_unresolved_artifact_template_fails_closed",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests",
      "target": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_complete_human_profile_passes_without_auto_grading",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests",
      "target": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_unresolved_template_requires_human_judgments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_complete_human_profile_passes_without_auto_grading",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_complete_human_profile_passes_without_auto_grading",
      "target": "tests/clinical-decision-support/test_scripts.py#resolve_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#EvidenceProfileTests.test_unresolved_template_requires_human_judgments",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests",
      "target": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests.test_survival_plan_passes_with_recorded_review_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests",
      "target": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests.test_traceability_matrix_is_non_executable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests.test_survival_plan_passes_with_recorded_review_warning",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PlanAndTraceabilityTests.test_traceability_matrix_is_non_executable",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests",
      "target": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_complete_safe_harbor_documentation_is_not_compliance_claim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests",
      "target": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_unresolved_template_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_complete_safe_harbor_documentation_is_not_compliance_claim",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_complete_safe_harbor_documentation_is_not_compliance_claim",
      "target": "tests/clinical-decision-support/test_scripts.py#resolve_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#PrivacyChecklistTests.test_unresolved_template_fails_closed",
      "target": "tests/clinical-decision-support/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#resolve_placeholders",
      "target": "tests/clinical-decision-support/test_scripts.py#resolve_placeholders",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests",
      "target": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_assets_declare_safety_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests",
      "target": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_scripts_have_no_network_secret_or_dynamic_code_imports",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests",
      "target": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_skill_is_progressively_disclosed_and_versioned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests",
      "target": "tests/clinical-decision-support/test_scripts.py#StaticSafetyTests.test_url_like_input_path_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#valid_aggregate_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#valid_case_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tests/clinical-reports/test_scripts.py#valid_csr_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "check_deidentification",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "consistency_checker",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "format_adverse_events",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "generate_report_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "provenance_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "terminology_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "validate_case_report",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py",
      "target": "validate_trial_report",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests",
      "target": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_formats_synthetic_aggregate_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests",
      "target": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_rejects_row_level_identifier_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_formats_synthetic_aggregate_rows",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_formats_synthetic_aggregate_rows",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#validate_aggregate_metadata",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_formats_synthetic_aggregate_rows",
      "target": "tests/clinical-reports/test_scripts.py#valid_aggregate_metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AggregateFormatterTests.test_rejects_row_level_identifier_column",
      "target": "skills/clinical-reports/scripts/format_adverse_events.py#load_aggregate_csv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests",
      "target": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_bundled_path_references_exist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests",
      "target": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_every_json_asset_parses_and_contains_no_obvious_real_phi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests",
      "target": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_generator_copies_blocked_template_without_interpolation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#AssetAndGeneratorTests.test_generator_copies_blocked_template_without_interpolation",
      "target": "skills/clinical-reports/scripts/generate_report_template.py#generate_template",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests",
      "target": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_consistency_detects_denominator_mismatch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests",
      "target": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_provenance_links_verified_fact_without_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests",
      "target": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_synthetic_deidentification_process_never_claims_compliance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests",
      "target": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_terminology_local_dictionary_match_is_not_clinical_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_consistency_detects_denominator_mismatch",
      "target": "skills/clinical-reports/scripts/consistency_checker.py#validate_consistency",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#ProcessAndSchemaTests.test_terminology_local_dictionary_match_is_not_clinical_validation",
      "target": "skills/clinical-reports/scripts/terminology_validator.py#validate_terminology_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_case_structure_still_requires_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_consort_2025_coverage_still_requires_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_ich_e3_structure_still_requires_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_spirit_2025_coverage_still_requires_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_missing_case_item_blocks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests",
      "target": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_unknown_case_field_blocks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_case_structure_still_requires_review",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_case_structure_still_requires_review",
      "target": "tests/clinical-reports/test_scripts.py#valid_case_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_consort_2025_coverage_still_requires_review",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_ich_e3_structure_still_requires_review",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_ich_e3_structure_still_requires_review",
      "target": "tests/clinical-reports/test_scripts.py#valid_csr_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_complete_spirit_2025_coverage_still_requires_review",
      "target": "skills/clinical-reports/scripts/validate_trial_report.py#validate_trial_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_missing_case_item_blocks",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_missing_case_item_blocks",
      "target": "tests/clinical-reports/test_scripts.py#valid_case_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_unknown_case_field_blocks",
      "target": "skills/clinical-reports/scripts/validate_case_report.py#validate_case_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/clinical-reports/test_scripts.py#StructuralValidatorTests.test_unknown_case_field_blocks",
      "target": "tests/clinical-reports/test_scripts.py#valid_case_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "tests/conftest.py#_install_contract",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "tests/conftest.py#_install_contract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "tests/conftest.py#_skill_dirs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "tests/conftest.py#pytest_sessionstart",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/conftest.py#pytest_sessionstart",
      "target": "tests/conftest.py#_skill_dirs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#dotted_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#keyword_constants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#ModelFactoryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#parser_choices",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tests/deepchem/test_scripts.py#SolubilityScriptTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "graph_neural_network",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "inspect",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "predict_solubility",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "transfer_learning",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "target": "tests/deepchem/test_scripts.py#ArgumentValidationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "target": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_a_gnn_run_needs_a_dataset_or_a_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "target": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_a_gnn_run_refuses_both_a_dataset_and_a_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "target": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_transfer_learning_refuses_both_input_sources",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests",
      "target": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_transfer_learning_requires_a_pretrained_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_a_gnn_run_needs_a_dataset_or_a_csv",
      "target": "tests/deepchem/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_a_gnn_run_refuses_both_a_dataset_and_a_csv",
      "target": "tests/deepchem/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_transfer_learning_refuses_both_input_sources",
      "target": "tests/deepchem/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ArgumentValidationTests.test_transfer_learning_requires_a_pretrained_model",
      "target": "tests/deepchem/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "target": "tests/deepchem/test_scripts.py#CustomDatasetTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "target": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_a_fingerprint_model_gets_a_2048_bit_vector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "target": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_a_smiles_model_keeps_the_strings_unfeaturized",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "target": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_the_named_smiles_column_is_the_one_featurized",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#CustomDatasetTests",
      "target": "tests/deepchem/test_scripts.py#CustomDatasetTests.test_the_split_is_eighty_ten_ten",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#keyword_constants",
      "target": "tests/deepchem/test_scripts.py#dotted_name",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ModelFactoryTests",
      "target": "tests/deepchem/test_scripts.py#ModelFactoryTests.test_an_unknown_model_is_refused_by_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ModelFactoryTests",
      "target": "tests/deepchem/test_scripts.py#ModelFactoryTests.test_every_advertised_model_has_a_human_readable_description",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#ModelFactoryTests",
      "target": "tests/deepchem/test_scripts.py#ModelFactoryTests.test_every_advertised_model_reaches_a_branch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_bace_resolves_to_the_classification_loader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_every_dataset_name_resolves_to_a_real_molnet_loader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_dataset_flag_offers_exactly_the_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_declared_task_counts_match_the_published_benchmarks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_declared_task_types_match_the_published_benchmarks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_model_flag_offers_exactly_the_model_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_dataset_flag_offers_exactly_the_table",
      "target": "tests/deepchem/test_scripts.py#parser_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetCatalogueTests.test_the_model_flag_offers_exactly_the_model_table",
      "target": "tests/deepchem/test_scripts.py#parser_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_an_unknown_dataset_is_refused_before_anything_downloads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_an_unrecognised_model_falls_back_to_fingerprints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_dataset_is_loaded_with_a_scaffold_split",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_offered_dataset_is_in_the_loader_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_smiles_models_get_raw_strings_and_grover_gets_graphs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load.stub",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_an_unrecognised_model_falls_back_to_fingerprints",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_dataset_is_loaded_with_a_scaffold_split",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_offered_dataset_is_in_the_loader_table",
      "target": "tests/deepchem/test_scripts.py#parser_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_offered_dataset_is_in_the_loader_table",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_every_offered_dataset_is_in_the_loader_table.stub",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.test_smiles_models_get_raw_strings_and_grover_gets_graphs",
      "target": "tests/deepchem/test_scripts.py#MolnetFeaturizerSelectionTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_each_entry_carries_a_name_and_a_description",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_every_pretrained_model_has_a_fine_tuning_entry_point",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_grover_declares_no_hub_id_because_it_loads_itself",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_the_hub_backed_models_name_a_hugging_face_repository",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests",
      "target": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_the_model_flag_offers_exactly_the_pretrained_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#PretrainedCatalogueTests.test_the_model_flag_offers_exactly_the_pretrained_table",
      "target": "tests/deepchem/test_scripts.py#parser_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#SolubilityScriptTests",
      "target": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_default_target_column_is_the_delaney_column_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#SolubilityScriptTests",
      "target": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_fingerprint_radius_is_the_same_everywhere",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#SolubilityScriptTests",
      "target": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_fingerprint_width_matches_the_regressor_input_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_fingerprint_radius_is_the_same_everywhere",
      "target": "tests/deepchem/test_scripts.py#keyword_constants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deepchem/test_scripts.py#SolubilityScriptTests.test_the_fingerprint_width_matches_the_regressor_input_size",
      "target": "tests/deepchem/test_scripts.py#keyword_constants",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tests/deeptools/test_scripts.py#PathListTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tests/deeptools/test_scripts.py#PositiveIntTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tests/deeptools/test_scripts.py#ShellQuotingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "validate_files",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py",
      "target": "workflow_generator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_bam_index_is_found_under_either_naming_convention",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_bed_rejects_too_few_columns_bad_types_and_inverted_ranges",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_comment_only_bed_is_treated_as_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_missing_file_is_reported_not_raised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_no_files_means_nothing_to_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_tiny_bigwig_is_flagged_as_suspicious",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_validate_files_aggregates_across_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#FileValidationTests",
      "target": "tests/deeptools/test_scripts.py#FileValidationTests.test_well_formed_bed_passes_and_counts_regions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests._generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_every_advertised_workflow_has_a_generator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_generated_scripts_fail_fast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_generated_scripts_parse_as_bash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_parameters_reach_the_script_quoted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_generated_scripts_fail_fast",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests._generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_generated_scripts_parse_as_bash",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests._generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#GeneratedScriptTests.test_parameters_reach_the_script_quoted",
      "target": "tests/deeptools/test_scripts.py#GeneratedScriptTests._generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathListTests",
      "target": "tests/deeptools/test_scripts.py#PathListTests.test_an_empty_list_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathListTests",
      "target": "tests/deeptools/test_scripts.py#PathListTests.test_one_bad_entry_rejects_the_whole_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathListTests",
      "target": "tests/deeptools/test_scripts.py#PathListTests.test_quoting_cannot_smuggle_a_space_into_a_single_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathListTests",
      "target": "tests/deeptools/test_scripts.py#PathListTests.test_space_separated_values_are_split_and_validated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "target": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_a_dotdot_substring_inside_a_name_is_allowed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "target": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_empty_and_none_fall_back_to_the_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "target": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_ordinary_paths_pass_through_unchanged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "target": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_parent_directory_segments_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PathSanitisingTests",
      "target": "tests/deeptools/test_scripts.py#PathSanitisingTests.test_shell_metacharacters_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PositiveIntTests",
      "target": "tests/deeptools/test_scripts.py#PositiveIntTests.test_integers_and_integer_strings_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#PositiveIntTests",
      "target": "tests/deeptools/test_scripts.py#PositiveIntTests.test_zero_negative_and_non_numeric_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#ShellQuotingTests",
      "target": "tests/deeptools/test_scripts.py#ShellQuotingTests.test_arrays_quote_each_element",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#ShellQuotingTests",
      "target": "tests/deeptools/test_scripts.py#ShellQuotingTests.test_relative_run_hints_are_prefixed_so_bash_finds_them",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/deeptools/test_scripts.py#ShellQuotingTests",
      "target": "tests/deeptools/test_scripts.py#ShellQuotingTests.test_values_are_quoted_for_bash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#CsvExportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#PerformanceNoteTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#SmilesValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "analyze_results",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "prepare_batch_csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "setup_check",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_header_only_csv_is_vacuously_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_ligand_path_is_checked_as_a_file_not_as_smiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_column_is_reported_instead_of_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_complex_name_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_ligand_description_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_protein_file_is_reported_with_its_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_row_with_neither_protein_input_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_sequence_only_row_needs_no_protein_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_usable_csv_passes_without_complaint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_an_invalid_smiles_row_fails_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_an_unreadable_csv_is_reported_not_raised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_both_protein_inputs_together_warn_but_still_validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_header_only_csv_is_vacuously_valid",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_ligand_path_is_checked_as_a_file_not_as_smiles",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_complex_name_is_reported",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_ligand_description_is_reported",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_missing_protein_file_is_reported_with_its_row",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_row_with_neither_protein_input_is_rejected",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_sequence_only_row_needs_no_protein_file",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_a_usable_csv_passes_without_complaint",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_an_invalid_smiles_row_fails_validation",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.test_both_protein_inputs_together_warn_but_still_validate",
      "target": "tests/diffdock/test_scripts.py#BatchCsvValidationTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_batch_directory_is_keyed_by_subdirectory_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_directory_without_pose_files_parses_to_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_single_complex_directory_is_reported_under_one_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_ranks_are_ordered_numerically_not_lexicographically",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_the_scored_filename_wins_over_the_bare_one_for_the_same_rank",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_batch_directory_is_keyed_by_subdirectory_name",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_directory_without_pose_files_parses_to_nothing",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_a_single_complex_directory_is_reported_under_one_key",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_ranks_are_ordered_numerically_not_lexicographically",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ComplexParsingTests.test_the_scored_filename_wins_over_the_bare_one_for_the_same_rank",
      "target": "tests/diffdock/test_scripts.py#ComplexParsingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests.test_a_missing_score_is_unknown_rather_than_low",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests.test_the_band_boundaries_fall_on_the_documented_side",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceClassificationTests.test_the_three_published_bands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_file_with_no_score_anywhere_yields_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_legacy_run_falls_back_to_confidence_scores_txt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_negative_score_keeps_its_sign",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_a_rank_past_the_end_of_the_legacy_file_is_not_invented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_an_inline_confidence_property_is_also_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_an_sdf_data_item_is_the_last_resort",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests.test_the_score_is_read_from_the_current_filename_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ConfidenceExtractionTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#CsvExportTests",
      "target": "tests/diffdock/test_scripts.py#CsvExportTests.test_every_pose_becomes_one_row_with_its_band",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#CsvExportTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#CsvExportTests.test_every_pose_becomes_one_row_with_its_band",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "target": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_a_missing_file_is_named_in_the_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "target": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_a_relative_path_resolves_against_the_base_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "target": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_an_empty_path_is_allowed_because_a_sequence_may_replace_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "target": "tests/diffdock/test_scripts.py#FilePathValidationTests.test_an_existing_file_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#FilePathValidationTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "target": "tests/diffdock/test_scripts.py#InstallationProbeTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "target": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_absent_checkpoints_are_a_note_not_a_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "target": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_an_unrelated_directory_is_not_a_diffdock_checkout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "target": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_present_checkpoints_are_recognised_at_the_documented_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "target": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_the_upstream_entry_points_are_what_it_looks_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_absent_checkpoints_are_a_note_not_a_failure",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_an_unrelated_directory_is_not_a_diffdock_checkout",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_present_checkpoints_are_recognised_at_the_documented_path",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#InstallationProbeTests.test_the_upstream_entry_points_are_what_it_looks_for",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_nested_version_attribute_is_followed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_package_without_a_version_still_counts_as_installed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_present_package_reports_its_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_visible_gpu_is_named_in_the_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_an_absent_package_is_reported_as_not_installed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_missing_esm_is_reported_as_optional",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_missing_torch_reports_no_gpu_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests",
      "target": "tests/diffdock/test_scripts.py#PackageProbeTests.test_torch_reports_cuda_separately_from_the_import",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_nested_version_attribute_is_followed",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_package_without_a_version_still_counts_as_installed",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_present_package_reports_its_version",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_a_visible_gpu_is_named_in_the_report",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_an_absent_package_is_reported_as_not_installed",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_missing_esm_is_reported_as_optional",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_missing_torch_reports_no_gpu_rather_than_raising",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PackageProbeTests.test_torch_reports_cuda_separately_from_the_import",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PerformanceNoteTests",
      "target": "tests/diffdock/test_scripts.py#PerformanceNoteTests.test_the_gpu_and_cpu_guidance_do_not_swap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PerformanceNoteTests.test_the_gpu_and_cpu_guidance_do_not_swap",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_a_newer_interpreter_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_anything_older_fails_and_says_what_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_the_upstream_minimum_of_three_nine_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_a_newer_interpreter_is_accepted",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_a_newer_interpreter_is_accepted",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_anything_older_fails_and_says_what_is_required",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_anything_older_fails_and_says_what_is_required",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_the_upstream_minimum_of_three_nine_passes",
      "target": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.version",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#PythonVersionCheckTests.test_the_upstream_minimum_of_three_nine_passes",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests",
      "target": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests",
      "target": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.test_every_row_supplies_a_protein_by_path_or_by_sequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests",
      "target": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.test_every_smiles_in_the_asset_parses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests",
      "target": "tests/diffdock/test_scripts.py#ShippedTemplateAssetTests.test_it_declares_the_columns_the_validator_requires",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SmilesValidationTests",
      "target": "tests/diffdock/test_scripts.py#SmilesValidationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SmilesValidationTests",
      "target": "tests/diffdock/test_scripts.py#SmilesValidationTests.test_a_malformed_smiles_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SmilesValidationTests",
      "target": "tests/diffdock/test_scripts.py#SmilesValidationTests.test_a_real_drug_smiles_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SmilesValidationTests",
      "target": "tests/diffdock/test_scripts.py#SmilesValidationTests.test_an_impossible_valence_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "target": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_a_threshold_drops_lower_and_unscored_poses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "target": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_a_threshold_keeps_the_poses_at_or_above_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "target": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_an_empty_complex_is_reported_rather_than_skipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "target": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_top_n_truncates_the_listing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests",
      "target": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_without_a_threshold_every_pose_is_listed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_a_threshold_drops_lower_and_unscored_poses",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_a_threshold_keeps_the_poses_at_or_above_it",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_an_empty_complex_is_reported_rather_than_skipped",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_top_n_truncates_the_listing",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#SummaryFilterTests.test_without_a_threshold_every_pose_is_listed",
      "target": "tests/diffdock/test_scripts.py#quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "target": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_only_three_examples_exist_so_larger_requests_are_capped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "target": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_the_first_example_ligand_is_a_parseable_molecule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "target": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_the_requested_number_of_example_rows_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "target": "tests/diffdock/test_scripts.py#TemplateCsvTests.test_the_template_carries_the_four_columns_diffdock_requires",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TemplateCsvTests",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/diffdock/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.test_asking_for_more_than_exists_returns_what_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.test_the_best_poses_are_ranked_across_every_complex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.test_unscored_poses_are_excluded_rather_than_sorted_as_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests.test_asking_for_more_than_exists_returns_what_exists",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests.test_the_best_poses_are_ranked_across_every_complex",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/diffdock/test_scripts.py#TopPredictionTests.test_unscored_poses_are_excluded_rather_than_sorted_as_zero",
      "target": "tests/diffdock/test_scripts.py#TopPredictionTests.results",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#MetadataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#SummaryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "inspect_dxpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py",
      "target": "validate_dxapp",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_a_secret_key_holding_false_is_a_setting_not_a_credential",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_access_levels_are_checked_against_the_documented_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_broad_and_privileged_access_is_warned_about",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_embedded_credentials_are_found_at_any_depth",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_https_ports_are_restricted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_placeholder_credentials_are_not_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests",
      "target": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_secret_detection_matches_whole_words_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_a_secret_key_holding_false_is_a_setting_not_a_credential",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_a_secret_key_holding_false_is_a_setting_not_a_credential",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_access_levels_are_checked_against_the_documented_set",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_access_levels_are_checked_against_the_documented_set",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_broad_and_privileged_access_is_warned_about",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_broad_and_privileged_access_is_warned_about",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_embedded_credentials_are_found_at_any_depth",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_embedded_credentials_are_found_at_any_depth",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_https_ports_are_restricted",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_https_ports_are_restricted",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_placeholder_credentials_are_not_flagged",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_placeholder_credentials_are_not_flagged",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_secret_detection_matches_whole_words_only",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#AccessAndSecretTests.test_secret_detection_matches_whole_words_only",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_a_clean_manifest_exits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_errors_exit_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_json_output_is_machine_readable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_strict_promotes_warnings_to_a_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_unreadable_manifest_exits_two_with_a_parse_issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_a_clean_manifest_exits_zero",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_a_clean_manifest_exits_zero",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_errors_exit_one",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_errors_exit_one",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_json_output_is_machine_readable",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_json_output_is_machine_readable",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_strict_promotes_warnings_to_a_failure",
      "target": "tests/dnanexus-integration/test_scripts.py#CommandLineTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#CommandLineTests.test_strict_promotes_warnings_to_a_failure",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests",
      "target": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_app_versions_must_be_semantic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests",
      "target": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_name_is_required_and_character_restricted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests",
      "target": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_top_level_resources_is_flagged_as_deprecated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_app_versions_must_be_semantic",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_app_versions_must_be_semantic",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_name_is_required_and_character_restricted",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_name_is_required_and_character_restricted",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_top_level_resources_is_flagged_as_deprecated",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#MetadataTests.test_top_level_resources_is_flagged_as_deprecated",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_a_spec_that_is_not_a_list_is_reported_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_duplicate_parameter_names_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_input_only_fields_are_rejected_in_the_output_spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_optional_must_be_a_boolean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_parameter_names_follow_the_identifier_rule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_unknown_and_array_classes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_a_spec_that_is_not_a_list_is_reported_once",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_a_spec_that_is_not_a_list_is_reported_once",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_duplicate_parameter_names_are_rejected",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_duplicate_parameter_names_are_rejected",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_input_only_fields_are_rejected_in_the_output_spec",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_input_only_fields_are_rejected_in_the_output_spec",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_optional_must_be_a_boolean",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_optional_must_be_a_boolean",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_parameter_names_follow_the_identifier_rule",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_parameter_names_follow_the_identifier_rule",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_unknown_and_array_classes",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ParameterSpecTests.test_unknown_and_array_classes",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "target": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_dependency_entries_must_be_named_objects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "target": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_max_restarts_is_bounded_and_rejects_booleans",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "target": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_restart_reasons_are_checked_against_the_documented_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "target": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_timeout_units_and_values_are_constrained",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests",
      "target": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_unpinned_dependencies_are_warned_about",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_dependency_entries_must_be_named_objects",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_dependency_entries_must_be_named_objects",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_max_restarts_is_bounded_and_rejects_booleans",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_max_restarts_is_bounded_and_rejects_booleans",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_restart_reasons_are_checked_against_the_documented_set",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_restart_reasons_are_checked_against_the_documented_set",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_timeout_units_and_values_are_constrained",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_timeout_units_and_values_are_constrained",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_unpinned_dependencies_are_warned_about",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#PolicyTests.test_unpinned_dependencies_are_warned_about",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_region_identifiers_should_be_provider_qualified",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_resource_selectors_are_mutually_exclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_system_requirements_must_cover_every_region_or_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list.with_selector",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list",
      "target": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list.with_selector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list.with_selector",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_instance_type_selector_needs_a_non_empty_string_list.with_selector",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_region_identifiers_should_be_provider_qualified",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_region_identifiers_should_be_provider_qualified",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_resource_selectors_are_mutually_exclusive",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_resource_selectors_are_mutually_exclusive",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_system_requirements_must_cover_every_region_or_none",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RegionalOptionTests.test_system_requirements_must_cover_every_region_or_none",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_an_entry_source_is_required_and_should_not_be_doubled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_deprecated_system_requirements_location_is_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_interpreter_distribution_release_and_aee_version_are_pinned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_restartable_entry_points_are_constrained_and_warned_about",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_runspec_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests",
      "target": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_ubuntu_2004_is_supported_but_flagged_as_legacy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_an_entry_source_is_required_and_should_not_be_doubled",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_an_entry_source_is_required_and_should_not_be_doubled",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_deprecated_system_requirements_location_is_flagged",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_deprecated_system_requirements_location_is_flagged",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_interpreter_distribution_release_and_aee_version_are_pinned",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_interpreter_distribution_release_and_aee_version_are_pinned",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_restartable_entry_points_are_constrained_and_warned_about",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_restartable_entry_points_are_constrained_and_warned_about",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_runspec_is_required",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_runspec_is_required",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_ubuntu_2004_is_supported_but_flagged_as_legacy",
      "target": "tests/dnanexus-integration/test_scripts.py#issue_codes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#RunSpecTests.test_ubuntu_2004_is_supported_but_flagged_as_legacy",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_documented_baseline_is_a_parseable_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_missing_method_detection_reads_the_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_missing_symbol_detection_reads_the_report_not_the_sdk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_report_generation_needs_the_sdk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_required_symbols_are_dxpy_qualified_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_the_installed_sdk_meets_the_documented_baseline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_the_report_is_json_serialisable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_version_comparison_is_numeric_not_lexicographic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SdkInspectionTests.test_version_comparison_tolerates_non_numeric_segments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SummaryTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SummaryTests.test_summarize_counts_both_severities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#SummaryTests",
      "target": "tests/dnanexus-integration/test_scripts.py#SummaryTests.test_summarize_of_nothing_is_zeroed_not_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_a_correct_app_manifest_produces_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_a_non_object_root_is_rejected_without_further_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_an_applet_only_gets_a_warning_for_missing_specs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests",
      "target": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_kind_is_inferred_from_the_presence_of_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_a_correct_app_manifest_produces_nothing",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/dnanexus-integration/test_scripts.py#ValidBaselineTests.test_kind_is_inferred_from_the_presence_of_version",
      "target": "tests/dnanexus-integration/test_scripts.py#valid_app_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#HelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#TemplateTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#TextPreservationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tests/docx/test_scripts.py#UnpackedPackage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "defusedxml.minidom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "merge_runs",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests",
      "target": "tests/docx/test_scripts.py#HelperTests._runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests",
      "target": "tests/docx/test_scripts.py#HelperTests.test_adjacency_requires_the_elements_to_be_siblings_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests",
      "target": "tests/docx/test_scripts.py#HelperTests.test_an_intervening_element_breaks_adjacency",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests",
      "target": "tests/docx/test_scripts.py#HelperTests.test_element_matching_is_namespace_aware",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests",
      "target": "tests/docx/test_scripts.py#HelperTests.test_run_tag_names_are_discovered_from_the_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests._runs",
      "target": "tests/docx/test_scripts.py#document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_adjacency_requires_the_elements_to_be_siblings_in_order",
      "target": "tests/docx/test_scripts.py#HelperTests._runs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_adjacency_requires_the_elements_to_be_siblings_in_order",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_an_intervening_element_breaks_adjacency",
      "target": "tests/docx/test_scripts.py#HelperTests._runs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_an_intervening_element_breaks_adjacency",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_element_matching_is_namespace_aware",
      "target": "tests/docx/test_scripts.py#HelperTests._runs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_element_matching_is_namespace_aware",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_run_tag_names_are_discovered_from_the_document",
      "target": "tests/docx/test_scripts.py#document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#HelperTests.test_run_tag_names_are_discovered_from_the_document",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#MergeRunsTestCase",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#MergeRunsTestCase",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "target": "tests/docx/test_scripts.py#UnpackedPackage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TemplateTests",
      "target": "tests/docx/test_scripts.py#TemplateTests.test_the_comment_templates_are_shipped_and_parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TemplateTests",
      "target": "tests/docx/test_scripts.py#TemplateTests.test_the_documented_comment_parts_are_all_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_a_document_with_nothing_to_merge_keeps_its_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_adjacent_identical_runs_merge_without_changing_the_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_an_empty_document_does_not_raise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_reduces_the_run_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_preserved_whitespace_survives_a_merge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_in_different_paragraphs_are_not_merged_across",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_with_different_formatting_are_not_merged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_the_result_is_still_well_formed_xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#TextPreservationTests.test_unpreserved_trailing_whitespace_is_insignificant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_a_document_with_nothing_to_merge_keeps_its_content",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_a_document_with_nothing_to_merge_keeps_its_content",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_adjacent_identical_runs_merge_without_changing_the_text",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_adjacent_identical_runs_merge_without_changing_the_text",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_an_empty_document_does_not_raise",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_is_idempotent",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_is_idempotent",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_reduces_the_run_count",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_merging_reduces_the_run_count",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_preserved_whitespace_survives_a_merge",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_preserved_whitespace_survives_a_merge",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_in_different_paragraphs_are_not_merged_across",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_in_different_paragraphs_are_not_merged_across",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_with_different_formatting_are_not_merged",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_runs_with_different_formatting_are_not_merged",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_the_result_is_still_well_formed_xml",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_the_result_is_still_well_formed_xml",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_unpreserved_trailing_whitespace_is_insignificant",
      "target": "tests/docx/test_scripts.py#MergeRunsTestCase.package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#TextPreservationTests.test_unpreserved_trailing_whitespace_is_insignificant",
      "target": "tests/docx/test_scripts.py#run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#UnpackedPackage",
      "target": "tests/docx/test_scripts.py#UnpackedPackage.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#UnpackedPackage",
      "target": "tests/docx/test_scripts.py#UnpackedPackage.visible_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#UnpackedPackage",
      "target": "tests/docx/test_scripts.py#UnpackedPackage.xml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/docx/test_scripts.py#UnpackedPackage.__init__",
      "target": "tests/docx/test_scripts.py#document",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#ModeSpecTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#NodeResolutionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#NumericSummaryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#ParserSpecTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#PrintStatsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#SaveTreeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#SupportFractionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "ete4.treeview",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "quick_visualize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "tree_operations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "target": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_a_host_name_that_merely_starts_with_localhost_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "target": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_every_loopback_spelling_is_allowed_without_the_opt_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "target": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_routable_addresses_are_refused_without_the_opt_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "target": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_the_opt_in_permits_exactly_what_it_says",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#BindAddressTests",
      "target": "tests/etetoolkit/test_scripts.py#BindAddressTests.test_the_wildcard_address_is_refused_without_the_opt_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_a_missing_input_exits_two_with_a_message_on_stderr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_an_unnamed_leaf_still_occupies_a_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_duplicate_names_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_unnamed_leaves_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_converting_between_parsers_keeps_the_leaf_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_identical_trees_have_a_robinson_foulds_distance_of_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_leaves_prints_one_name_per_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_midpoint_rooting_reports_which_midpoint_it_used",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_keeps_only_the_requested_leaves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_preserves_the_path_length_between_retained_leaves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_to_an_absent_leaf_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_rerooting_on_an_outgroup_preserves_the_leaves_and_total_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_stats_json_round_trips_through_the_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_ascii_drawing_contains_every_leaf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_two_distinct_four_taxon_topologies_are_maximally_apart",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_wrong_parser_number_is_reported_rather_than_guessed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_topological_without_midpoint_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_a_missing_input_exits_two_with_a_message_on_stderr",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_an_unnamed_leaf_still_occupies_a_line",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_an_unnamed_leaf_still_occupies_a_line",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_duplicate_names_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_duplicate_names_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_unnamed_leaves_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_comparing_a_tree_with_unnamed_leaves_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_converting_between_parsers_keeps_the_leaf_set",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_converting_between_parsers_keeps_the_leaf_set",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_identical_trees_have_a_robinson_foulds_distance_of_zero",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_identical_trees_have_a_robinson_foulds_distance_of_zero",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_leaves_prints_one_name_per_line",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_leaves_prints_one_name_per_line",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_midpoint_rooting_reports_which_midpoint_it_used",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_midpoint_rooting_reports_which_midpoint_it_used",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_keeps_only_the_requested_leaves",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_keeps_only_the_requested_leaves",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_preserves_the_path_length_between_retained_leaves",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_preserves_the_path_length_between_retained_leaves",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_to_an_absent_leaf_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_pruning_to_an_absent_leaf_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_rerooting_on_an_outgroup_preserves_the_leaves_and_total_length",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_rerooting_on_an_outgroup_preserves_the_leaves_and_total_length",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_stats_json_round_trips_through_the_cli",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_stats_json_round_trips_through_the_cli",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_ascii_drawing_contains_every_leaf",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_ascii_drawing_contains_every_leaf",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_two_distinct_four_taxon_topologies_are_maximally_apart",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_two_distinct_four_taxon_topologies_are_maximally_apart",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_wrong_parser_number_is_reported_rather_than_guessed",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_the_wrong_parser_number_is_reported_rather_than_guessed",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_topological_without_midpoint_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#CommandLineTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommandLineTests.test_topological_without_midpoint_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests",
      "target": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests.test_an_empty_string_selects_no_properties",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests",
      "target": "tests/etetoolkit/test_scripts.py#CommaSeparatedTests.test_whitespace_and_empty_fields_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_an_explicit_engine_overrides_the_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_an_unwritable_suffix_is_refused_rather_than_guessed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_no_output_means_the_interactive_engine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_suffix_matching_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_the_suffix_picks_the_engine_that_can_write_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_an_explicit_engine_overrides_the_suffix",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_an_unwritable_suffix_is_refused_rather_than_guessed",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_no_output_means_the_interactive_engine",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_suffix_matching_is_case_insensitive",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.test_the_suffix_picks_the_engine_that_can_write_it",
      "target": "tests/etetoolkit/test_scripts.py#EngineChoiceTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_a_missing_taxon_file_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_a_taxon_file_of_only_comments_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_a_taxon_file_skips_blank_lines_and_comments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_an_empty_request_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_duplicate_requests_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#KeepNameTests.test_names_passed_on_the_command_line_are_returned_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#KeepNameTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ModeSpecTests",
      "target": "tests/etetoolkit/test_scripts.py#ModeSpecTests.test_an_unknown_layout_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ModeSpecTests",
      "target": "tests/etetoolkit/test_scripts.py#ModeSpecTests.test_short_and_long_layout_names_normalise_to_the_long_form",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests",
      "target": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_a_unique_name_resolves_to_that_node",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests",
      "target": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_an_absent_name_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests",
      "target": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_an_ambiguous_name_is_refused_rather_than_silently_taking_the_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_a_unique_name_resolves_to_that_node",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_an_absent_name_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NodeResolutionTests.test_an_ambiguous_name_is_refused_rather_than_silently_taking_the_first",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NumericSummaryTests",
      "target": "tests/etetoolkit/test_scripts.py#NumericSummaryTests.test_a_single_value_is_its_own_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NumericSummaryTests",
      "target": "tests/etetoolkit/test_scripts.py#NumericSummaryTests.test_an_empty_list_summarises_to_none_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#NumericSummaryTests",
      "target": "tests/etetoolkit/test_scripts.py#NumericSummaryTests.test_the_four_statistics_are_the_textbook_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ParserSpecTests",
      "target": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_a_named_parser_stays_a_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ParserSpecTests",
      "target": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_a_numeric_parser_id_stays_an_integer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ParserSpecTests",
      "target": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_an_empty_parser_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ParserSpecTests",
      "target": "tests/etetoolkit/test_scripts.py#ParserSpecTests.test_both_scripts_agree_on_the_parser_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#PrintStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#PrintStatsTests.test_json_output_is_machine_readable_and_complete",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#PrintStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#PrintStatsTests.test_text_output_says_none_where_a_summary_is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#PrintStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#PrintStatsTests.test_json_output_is_machine_readable_and_complete",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#PrintStatsTests.test_text_output_says_none_where_a_summary_is_missing",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_smartview_refuses_a_missing_output_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_smartview_refuses_a_non_png_destination",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_the_missing_qt_extra_is_reported_as_an_install_hint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_treeview_refuses_a_missing_output_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_treeview_refuses_a_suffix_it_cannot_write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.setUp",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_smartview_refuses_a_missing_output_directory",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_smartview_refuses_a_non_png_destination",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_the_missing_qt_extra_is_reported_as_an_install_hint",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_treeview_refuses_a_missing_output_directory",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.test_treeview_refuses_a_suffix_it_cannot_write",
      "target": "tests/etetoolkit/test_scripts.py#RenderDestinationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests",
      "target": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_a_leaf_name_duplicated_in_the_tree_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests",
      "target": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_an_internal_node_name_is_not_a_leaf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests",
      "target": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_names_that_all_resolve_pass_silently",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_a_leaf_name_duplicated_in_the_tree_is_refused",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_an_internal_node_name_is_not_a_leaf",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#RequestedNameValidationTests.test_names_that_all_resolve_pass_silently",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests",
      "target": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_a_missing_output_directory_is_refused_before_writing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests",
      "target": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_a_saved_tree_reloads_with_the_same_topology",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests",
      "target": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_the_file_ends_in_exactly_one_newline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_a_missing_output_directory_is_refused_before_writing",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_a_saved_tree_reloads_with_the_same_topology",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SaveTreeTests.test_the_file_ends_in_exactly_one_newline",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.dots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.elements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.style",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_a_title_adds_a_header_face_and_no_title_adds_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_arc_options_are_only_emitted_for_the_circular_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_collapse_thresholds_are_passed_through_unchanged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_colour_by_support_repaints_internal_nodes_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_leaves_and_internal_nodes_get_their_own_colour_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_the_layout_mode_becomes_the_smartview_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.dots",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.style",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_a_title_adds_a_header_face_and_no_title_adds_nothing",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_a_title_adds_a_header_face_and_no_title_adds_nothing",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.elements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_arc_options_are_only_emitted_for_the_circular_layout",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_arc_options_are_only_emitted_for_the_circular_layout",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_collapse_thresholds_are_passed_through_unchanged",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_collapse_thresholds_are_passed_through_unchanged",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_colour_by_support_repaints_internal_nodes_only",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_colour_by_support_repaints_internal_nodes_only",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.dots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_leaves_and_internal_nodes_get_their_own_colour_and_size",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_leaves_and_internal_nodes_get_their_own_colour_and_size",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.dots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_the_layout_mode_becomes_the_smartview_shape",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.test_the_layout_mode_becomes_the_smartview_shape",
      "target": "tests/etetoolkit/test_scripts.py#SmartViewLayoutTests.style",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_a_node_with_no_support_gets_the_missing_colour",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_custom_thresholds_move_the_bands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_each_support_band_gets_its_own_colour",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_a_node_with_no_support_gets_the_missing_colour",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_a_node_with_no_support_gets_the_missing_colour",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_custom_thresholds_move_the_bands",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_custom_thresholds_move_the_bands",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_each_support_band_gets_its_own_colour",
      "target": "tests/etetoolkit/test_scripts.py#SupportColorTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportColorTests.test_each_support_band_gets_its_own_colour",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportFractionTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportFractionTests.test_percentages_are_normalised_and_fractions_left_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportFractionTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportFractionTests.test_the_boundary_value_one_is_treated_as_a_fraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#SupportFractionTests",
      "target": "tests/etetoolkit/test_scripts.py#SupportFractionTests.test_zero_support_stays_zero_and_missing_support_stays_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_directory_is_not_a_tree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_missing_file_is_reported_as_user_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_valid_newick_file_loads_with_its_leaves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_both_scripts_load_trees_identically",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_malformed_newick_becomes_a_user_error_not_a_traceback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_a_valid_newick_file_loads_with_its_leaves",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_both_scripts_load_trees_identically",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeLoadingTests.test_malformed_newick_becomes_a_user_error_not_a_traceback",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_a_polytomy_is_counted_and_a_bifurcating_tree_reports_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_a_unary_node_is_counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_branch_length_statistics_exclude_the_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_duplicate_leaf_names_are_listed_once_each",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_farthest_leaf_distance_is_the_root_to_tip_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_node_counts_match_the_newick_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_parser_number_decides_whether_a_label_is_a_name_or_support",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_reported_source_and_version_identify_the_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_unnamed_leaves_are_reported_by_position",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_a_polytomy_is_counted_and_a_bifurcating_tree_reports_none",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_a_unary_node_is_counted",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_branch_length_statistics_exclude_the_root",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_duplicate_leaf_names_are_listed_once_each",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_farthest_leaf_distance_is_the_root_to_tip_path",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_node_counts_match_the_newick_string",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_parser_number_decides_whether_a_label_is_a_name_or_support",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_the_reported_source_and_version_identify_the_run",
      "target": "tests/etetoolkit/test_scripts.py#TreeFixtureCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#TreeStatsTests.test_unnamed_leaves_are_reported_by_position",
      "target": "tests/etetoolkit/test_scripts.py#TreeStatsTests.stats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_dimensions_must_be_positive_when_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_equal_thresholds_are_allowed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_negative_sizes_are_refused_and_zero_is_allowed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_support_thresholds_must_be_ordered_and_within_zero_to_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_arc_bounds_are_degrees",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_port_range_is_the_tcp_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_shipped_defaults_validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_dimensions_must_be_positive_when_given",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_equal_thresholds_are_allowed",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_negative_sizes_are_refused_and_zero_is_allowed",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_support_thresholds_must_be_ordered_and_within_zero_to_one",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_arc_bounds_are_degrees",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_port_range_is_the_tcp_range",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.test_the_shipped_defaults_validate",
      "target": "tests/etetoolkit/test_scripts.py#ValidateArgsTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tests/exa-search/test_exa_search.py#_fake_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tests/exa-search/test_exa_search.py#_load_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_extract_defaults_to_text_when_nothing_specified",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_highlights_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_no_flags_returns_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_text_and_highlights_combine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests",
      "target": "tests/exa-search/test_exa_search.py#BuildContentsTests.test_search_text_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#BuildContentsTests.setUp",
      "target": "tests/exa-search/test_exa_search.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_calls_search_and_contents_when_contents_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_calls_search_when_no_contents_flags",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_domain_filters_are_split_and_passed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_integration_header_is_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_missing_api_key_exits_with_code_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_output_file_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "target": "tests/exa-search/test_exa_search.py#_fake_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.setUp",
      "target": "tests/exa-search/test_exa_search.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_calls_search_and_contents_when_contents_requested",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_calls_search_when_no_contents_flags",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_domain_filters_are_split_and_passed",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_integration_header_is_set",
      "target": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests._run_with_mock",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#IntegrationHeaderAndFlowTests.test_output_file_written",
      "target": "tests/exa-search/test_exa_search.py#_fake_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "target": "tests/exa-search/test_exa_search.py#ResultTypingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "target": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_full_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "target": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_highlights_only_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "target": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_missing_optional_fields_default_cleanly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests",
      "target": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_text_only_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests.setUp",
      "target": "tests/exa-search/test_exa_search.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_full_result",
      "target": "tests/exa-search/test_exa_search.py#_fake_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_highlights_only_response",
      "target": "tests/exa-search/test_exa_search.py#_fake_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#ResultTypingTests.test_text_only_response",
      "target": "tests/exa-search/test_exa_search.py#_fake_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "target": "tests/exa-search/test_exa_search.py#SplitCsvTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "target": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_empty_string_returns_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "target": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_ignores_empty_segments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "target": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_none_returns_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#SplitCsvTests",
      "target": "tests/exa-search/test_exa_search.py#SplitCsvTests.test_splits_and_trims",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exa-search/test_exa_search.py#SplitCsvTests.setUp",
      "target": "tests/exa-search/test_exa_search.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#BalanceReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#ClusterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#RatioTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#RunOrderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "tests/experimental-design/test_scripts.py#StratifiedTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "doe_designs",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "randomization",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BalanceReportTests",
      "target": "tests/experimental-design/test_scripts.py#BalanceReportTests.test_counts_are_reported_per_arm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BalanceReportTests",
      "target": "tests/experimental-design/test_scripts.py#BalanceReportTests.test_grouping_produces_a_stratum_by_arm_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_a_block_size_incompatible_with_the_ratio_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_a_partial_final_block_is_truncated_not_padded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_each_complete_block_is_exactly_balanced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_the_allocation_ratio_holds_within_every_block",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_the_default_block_size_is_valid_for_the_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#BlockRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#BlockRandomizationTests.test_the_same_seed_reproduces_the_same_blocks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#ClusterTests",
      "target": "tests/experimental-design/test_scripts.py#ClusterTests.test_an_integer_count_generates_cluster_labels",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#ClusterTests",
      "target": "tests/experimental-design/test_scripts.py#ClusterTests.test_clusters_are_blocked_so_arms_stay_balanced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#ClusterTests",
      "target": "tests/experimental-design/test_scripts.py#ClusterTests.test_one_row_per_cluster_keyed_by_cluster_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_a_generator_that_names_the_wrong_factor_count_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_a_valid_fraction_halves_the_full_factorial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_box_behnken_avoids_the_extreme_corners",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_box_behnken_needs_three_factors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_full_factorial_covers_every_combination",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_latin_hypercube_is_reproducible_from_its_seed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_latin_hypercube_stays_inside_every_factor_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_not_randomizing_leaves_the_design_in_canonical_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_plackett_burman_drops_the_dummy_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_randomize_adds_a_run_order_column_and_sorts_by_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests",
      "target": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_two_level_factorial_decodes_to_the_stated_low_and_high",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_a_generator_that_names_the_wrong_factor_count_is_refused",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_a_valid_fraction_halves_the_full_factorial",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_box_behnken_avoids_the_extreme_corners",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_box_behnken_needs_three_factors",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_full_factorial_covers_every_combination",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_latin_hypercube_is_reproducible_from_its_seed",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_latin_hypercube_stays_inside_every_factor_range",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_not_randomizing_leaves_the_design_in_canonical_order",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_plackett_burman_drops_the_dummy_columns",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_randomize_adds_a_run_order_column_and_sorts_by_it",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#DesignMatrixTests.test_two_level_factorial_decodes_to_the_stated_low_and_high",
      "target": "tests/experimental-design/test_scripts.py#doe",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RatioTests",
      "target": "tests/experimental-design/test_scripts.py#RatioTests.test_a_mismatched_ratio_length_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RatioTests",
      "target": "tests/experimental-design/test_scripts.py#RatioTests.test_a_ratio_repeats_each_arm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RatioTests",
      "target": "tests/experimental-design/test_scripts.py#RatioTests.test_no_ratio_means_one_of_each_arm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RatioTests",
      "target": "tests/experimental-design/test_scripts.py#RatioTests.test_non_positive_ratio_entries_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RunOrderTests",
      "target": "tests/experimental-design/test_scripts.py#RunOrderTests.test_randomising_actually_reorders_the_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RunOrderTests",
      "target": "tests/experimental-design/test_scripts.py#RunOrderTests.test_rows_are_returned_sorted_by_run_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RunOrderTests",
      "target": "tests/experimental-design/test_scripts.py#RunOrderTests.test_run_order_is_a_permutation_of_every_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#RunOrderTests",
      "target": "tests/experimental-design/test_scripts.py#RunOrderTests.test_the_original_design_is_not_mutated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_an_allocation_ratio_shifts_the_expected_split",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_different_seeds_generally_differ",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_every_unit_is_assigned_exactly_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_the_same_seed_reproduces_the_same_allocation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests",
      "target": "tests/experimental-design/test_scripts.py#SimpleRandomizationTests.test_three_arms_are_supported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#StratifiedTests",
      "target": "tests/experimental-design/test_scripts.py#StratifiedTests.test_a_label_sequence_is_accepted_as_well_as_a_count_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#StratifiedTests",
      "target": "tests/experimental-design/test_scripts.py#StratifiedTests.test_every_stratum_is_balanced_independently",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#StratifiedTests",
      "target": "tests/experimental-design/test_scripts.py#StratifiedTests.test_strata_are_seeded_apart_so_they_do_not_share_a_pattern",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/experimental-design/test_scripts.py#StratifiedTests",
      "target": "tests/experimental-design/test_scripts.py#StratifiedTests.test_unit_ids_are_renumbered_across_the_whole_cohort",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "_capabilities",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "_structured",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "_tabular",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "Bio",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "capability_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "eda_analyzer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "image_inspector",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "report_scaffold",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "sequence_inspector",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "tifffile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests.test_analyzer_report_is_redacted_and_rigorous",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests.test_reference_only_analyzer_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#AnalyzerAndScaffoldTests.test_report_scaffold_has_no_full_path_or_unfilled_manifest_tokens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_capability_matrix_separates_reference_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_private_atomic_output_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_size_and_npz_bomb_preflights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_text_manifest_does_not_claim_a_signature_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_unknown_format_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#LocalSafetyTests.test_url_traversal_symlink_and_special_file_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests.test_fasta_and_fastq_are_aggregate_only_when_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests.test_png_metadata_does_not_decode_pixels_when_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#SequenceAndImageTests.test_tiff_metadata_when_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_hdf5_external_link_is_not_followed_when_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_json_profile_emits_structure_not_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_numpy_npy_npz_and_object_rejection_when_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#StructuredFormatTests.test_strict_json_rejects_duplicates_and_nonfinite_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests._write_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_distribution_report_flags_outlier_but_changes_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_missingness_and_leakage_flags_overlap_without_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_profile_is_bounded_aggregate_and_redacted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_distribution_report_flags_outlier_but_changes_nothing",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests._write_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_missingness_and_leakage_flags_overlap_without_ids",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests._write_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_scripts.py#TabularTests.test_profile_is_bounded_aggregate_and_redacted",
      "target": "tests/exploratory-data-analysis/test_scripts.py#TabularTests._write_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "tests/exploratory-data-analysis/test_static.py#run_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests",
      "target": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_all_public_help_is_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests",
      "target": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_all_scripts_parse_and_avoid_dynamic_or_network_execution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests",
      "target": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_frontmatter_version_and_progressive_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests",
      "target": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_six_references_and_report_asset_are_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/exploratory-data-analysis/test_static.py#StaticSafetyTests.test_all_public_help_is_dependency_free",
      "target": "tests/exploratory-data-analysis/test_static.py#run_help",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#ArgumentValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#FakeFlow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#FakeText",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#InspectFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#MainTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#ReportWritingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tests/flowio/test_scripts.py#write_fcs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "inspect_fcs",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_non_numeric_limits_raise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_nonnegative_int_admits_zero_because_zero_disables_a_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_nonnegative_int_refuses_a_negative_ceiling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_positive_int_refuses_zero_and_below",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ArgumentValidatorTests.test_non_numeric_limits_raise",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file.validator",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_a_declared_null_channel_outranks_its_detected_kind",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_channel_records_carry_the_scaling_keywords_as_json_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_channel_records_number_parameters_from_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_scatter_time_and_fluorescence_are_told_apart",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "target": "tests/flowio/test_scripts.py#write_fcs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_a_declared_null_channel_outranks_its_detected_kind",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_channel_records_carry_the_scaling_keywords_as_json_types",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_channel_records_number_parameters_from_one",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ChannelClassificationTests.test_scatter_time_and_fluorescence_are_told_apart",
      "target": "tests/flowio/test_scripts.py#ChannelClassificationTests.flow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.test_a_negative_relative_offset_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.test_a_single_dataset_file_stops_after_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.test_an_offset_past_the_end_of_the_file_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.test_nextdata_is_relative_so_offsets_accumulate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.test_the_dataset_count_ceiling_is_enforced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.test_a_negative_relative_offset_is_refused",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.test_a_single_dataset_file_stops_after_one",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.test_an_offset_past_the_end_of_the_file_is_refused",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.test_nextdata_is_relative_so_offsets_accumulate",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.test_the_dataset_count_ceiling_is_enforced",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.walk",
      "target": "tests/flowio/test_scripts.py#DatasetWalkTests.walk.fake_flow_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#DatasetWalkTests.walk.fake_flow_data",
      "target": "tests/flowio/test_scripts.py#FakeFlow",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FakeFlow",
      "target": "tests/flowio/test_scripts.py#FakeFlow.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FakeFlow.__init__",
      "target": "tests/flowio/test_scripts.py#FakeText",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FakeText",
      "target": "dict",
      "relation": "extends",
      "confidence": "inferred"
    },
    {
      "source": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_a_channel_with_no_finite_value_reports_none_not_nan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_a_fully_finite_channel_keeps_every_event",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_infinities_are_counted_by_sign_and_excluded_from_the_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_one_record_is_emitted_per_channel_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#FiniteStatisticsTests",
      "target": "tests/flowio/test_scripts.py#FiniteStatisticsTests.test_statistics_are_computed_over_the_finite_values_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_a_ceiling_equal_to_the_estimate_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_a_directory_is_not_a_regular_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_a_file_over_the_byte_ceiling_is_refused_before_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_a_missing_input_raises_file_not_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_a_zero_byte_ceiling_disables_the_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_metadata_only_is_the_default_and_says_so",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_raw_stats_are_labelled_as_encoded_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_stats_loads_events_and_reports_the_array_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_text_and_analysis_are_withheld_unless_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_the_array_ceiling_only_applies_with_stats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_the_array_estimate_is_events_times_channels_times_eight",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_the_checksum_is_opt_in_and_matches_the_streaming_helper",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_the_checksum_matches_hashlib_on_the_same_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#InspectFileTests.test_the_report_describes_the_file_that_was_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.setUp",
      "target": "tests/flowio/test_scripts.py#write_fcs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_a_ceiling_equal_to_the_estimate_is_accepted",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_a_directory_is_not_a_regular_file",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_a_file_over_the_byte_ceiling_is_refused_before_parsing",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_a_missing_input_raises_file_not_found",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_a_zero_byte_ceiling_disables_the_check",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_metadata_only_is_the_default_and_says_so",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_raw_stats_are_labelled_as_encoded_values",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_stats_loads_events_and_reports_the_array_shape",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_text_and_analysis_are_withheld_unless_requested",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_the_array_ceiling_only_applies_with_stats",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_the_array_estimate_is_events_times_channels_times_eight",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_the_checksum_is_opt_in_and_matches_the_streaming_helper",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#InspectFileTests.test_the_report_describes_the_file_that_was_written",
      "target": "tests/flowio/test_scripts.py#namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#MainTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#MainTests.test_a_clean_run_exits_zero_and_writes_the_requested_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#MainTests.test_a_file_that_is_not_fcs_at_all_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#MainTests.test_a_missing_input_exits_two_with_a_message_not_a_traceback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#MainTests.test_raw_without_stats_is_rejected_by_the_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#MainTests.test_writing_the_report_over_the_input_fcs_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#MainTests.setUp",
      "target": "tests/flowio/test_scripts.py#write_fcs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ReportWritingTests",
      "target": "tests/flowio/test_scripts.py#ReportWritingTests.test_a_non_finite_number_is_refused_rather_than_written_as_nan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ReportWritingTests",
      "target": "tests/flowio/test_scripts.py#ReportWritingTests.test_an_existing_output_file_is_never_overwritten",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ReportWritingTests",
      "target": "tests/flowio/test_scripts.py#ReportWritingTests.test_stdout_receives_parseable_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/flowio/test_scripts.py#ReportWritingTests",
      "target": "tests/flowio/test_scripts.py#FcsFileTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tests/fluidsim/test_scripts.py#OutputTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tests/fluidsim/test_scripts.py#PlanningTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tests/fluidsim/test_scripts.py#RestartTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tests/fluidsim/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tests/fluidsim/test_scripts.py#write_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "budget_summary",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "grid_resource_estimator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "output_inventory",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "restart_compatibility",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "simulation_dry_run",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests",
      "target": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_all_helps_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests",
      "target": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_example_is_valid_and_scientifically_nonconclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests",
      "target": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_old_cfl_name_and_path_traversal_fail_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests",
      "target": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_strict_json_rejects_duplicate_and_nonfinite_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_all_helps_are_dependency_free",
      "target": "tests/fluidsim/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#HelpAndSchemaTests.test_strict_json_rejects_duplicate_and_nonfinite_values",
      "target": "tests/fluidsim/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#OutputTests",
      "target": "tests/fluidsim/test_scripts.py#OutputTests.test_hdf5_metadata_and_bounded_spectrum_when_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#OutputTests",
      "target": "tests/fluidsim/test_scripts.py#OutputTests.test_plain_output_inventory_does_not_need_h5py",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#OutputTests",
      "target": "tests/fluidsim/test_scripts.py#OutputTests.test_scalar_json_lines_and_text_are_aggregated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#PlanningTests",
      "target": "tests/fluidsim/test_scripts.py#PlanningTests.test_generated_script_defaults_to_dry_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#PlanningTests",
      "target": "tests/fluidsim/test_scripts.py#PlanningTests.test_generator_writes_only_reviewed_local_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#PlanningTests",
      "target": "tests/fluidsim/test_scripts.py#PlanningTests.test_resource_estimate_is_bounded_and_not_runtime_claim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#PlanningTests.test_generator_writes_only_reviewed_local_script",
      "target": "tests/fluidsim/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#PlanningTests.test_generator_writes_only_reviewed_local_script",
      "target": "tests/fluidsim/test_scripts.py#write_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#RestartTests",
      "target": "tests/fluidsim/test_scripts.py#RestartTests._manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#RestartTests",
      "target": "tests/fluidsim/test_scripts.py#RestartTests._target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#RestartTests",
      "target": "tests/fluidsim/test_scripts.py#RestartTests.test_manifest_compatibility_and_grid_mismatch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#RestartTests.test_manifest_compatibility_and_grid_mismatch",
      "target": "tests/fluidsim/test_scripts.py#RestartTests._manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_scripts.py#RestartTests.test_manifest_compatibility_and_grid_mismatch",
      "target": "tests/fluidsim/test_scripts.py#RestartTests._target",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py",
      "target": "tests/fluidsim/test_static.py#ScriptSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py",
      "target": "tests/fluidsim/test_static.py#SkillStructureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py#ScriptSafetyTests",
      "target": "tests/fluidsim/test_static.py#ScriptSafetyTests.test_documented_cli_inventory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py#ScriptSafetyTests",
      "target": "tests/fluidsim/test_static.py#ScriptSafetyTests.test_no_bytecode_or_generated_artifacts_are_bundled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py#ScriptSafetyTests",
      "target": "tests/fluidsim/test_static.py#ScriptSafetyTests.test_scripts_parse_and_avoid_execution_network_primitives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py#SkillStructureTests",
      "target": "tests/fluidsim/test_static.py#SkillStructureTests.test_all_relative_markdown_links_exist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py#SkillStructureTests",
      "target": "tests/fluidsim/test_static.py#SkillStructureTests.test_exactly_six_dated_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/fluidsim/test_static.py#SkillStructureTests",
      "target": "tests/fluidsim/test_static.py#SkillStructureTests.test_frontmatter_version_license_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#load_module",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#ErrorMessageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#load_module",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#PayloadTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#PreflightTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#RetryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tests/generate-image/test_scripts.py#SpecDescriptionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "target": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_absent_key_raises_with_guidance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "target": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_dotenv_export_prefix_is_tolerated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "target": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_dotenv_is_read_when_environment_is_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "target": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_environment_variable_is_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests",
      "target": "tests/generate-image/test_scripts.py#ApiKeyResolutionTests.test_explicit_key_wins",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_dry_run_prints_the_payload_without_network_or_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_help_exits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_missing_prompt_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_out_of_range_compression_is_rejected_locally",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_output_format_does_not_offer_svg",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_size_flag_is_gone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_targets_the_images_endpoint_not_chat_completions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CliSurfaceTests",
      "target": "tests/generate-image/test_scripts.py#CliSurfaceTests.test_uses_only_the_standard_library",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CostReportingTests",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests.test_byok_upstream_cost_is_not_reported_as_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CostReportingTests",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests.test_cost_never_prints_in_scientific_notation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CostReportingTests",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests.test_genuinely_free_generation_says_so",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CostReportingTests",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests.test_image_tokens_are_reported_when_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CostReportingTests",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests.test_missing_usage_reports_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#CostReportingTests",
      "target": "tests/generate-image/test_scripts.py#CostReportingTests.test_reports_the_billed_cost",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ErrorMessageTests",
      "target": "tests/generate-image/test_scripts.py#ErrorMessageTests.test_auth_failure_mentions_the_key_and_content_policy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ErrorMessageTests",
      "target": "tests/generate-image/test_scripts.py#ErrorMessageTests.test_bad_request_points_at_model_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ErrorMessageTests",
      "target": "tests/generate-image/test_scripts.py#ErrorMessageTests.test_non_json_body_is_passed_through",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#OutputPathTests",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests.test_default_name_follows_media_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#OutputPathTests",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests.test_explicit_output_is_respected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#OutputPathTests",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests.test_jpeg_spelling_is_not_a_mismatch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#OutputPathTests",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests.test_media_type_parameters_are_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#OutputPathTests",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests.test_multiple_images_are_numbered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#OutputPathTests",
      "target": "tests/generate-image/test_scripts.py#OutputPathTests.test_unknown_media_type_falls_back_to_png",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests",
      "target": "tests/generate-image/test_scripts.py#PayloadTests.test_printed_payload_shortens_base64_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests",
      "target": "tests/generate-image/test_scripts.py#PayloadTests.test_references_use_the_input_references_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests",
      "target": "tests/generate-image/test_scripts.py#PayloadTests.test_set_parameters_are_included",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests",
      "target": "tests/generate-image/test_scripts.py#PayloadTests.test_unset_parameters_are_omitted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests",
      "target": "tests/generate-image/test_scripts.py#PayloadTests.test_zero_seed_survives_omission_filtering",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests.test_references_use_the_input_references_shape",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests.test_set_parameters_are_included",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests.test_unset_parameters_are_omitted",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PayloadTests.test_zero_seed_survives_omission_filtering",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_every_problem_is_reported_at_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_n_above_the_model_maximum_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_suggestions_name_a_model_that_accepts_the_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_suggestions_skip_undocumented_families",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_too_many_reference_images_are_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_unknown_model_suggests_close_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_unsupported_parameter_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_valid_request_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests",
      "target": "tests/generate-image/test_scripts.py#PreflightTests.test_value_outside_the_model_enum_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_every_problem_is_reported_at_once",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_n_above_the_model_maximum_is_caught",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_suggestions_name_a_model_that_accepts_the_value",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_too_many_reference_images_are_caught",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_unknown_model_suggests_close_matches",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_unsupported_parameter_is_caught",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_valid_request_passes",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#PreflightTests.test_value_outside_the_model_enum_is_caught",
      "target": "tests/generate-image/test_scripts.py#make_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "target": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_jpeg_extension_maps_to_jpeg_mime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "target": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_local_file_becomes_a_data_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "target": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_missing_file_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "target": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_unsupported_extension_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#ReferenceEncodingTests",
      "target": "tests/generate-image/test_scripts.py#ReferenceEncodingTests.test_urls_and_data_urls_pass_through",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#RetryTests",
      "target": "tests/generate-image/test_scripts.py#RetryTests.test_absurd_retry_after_is_capped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#RetryTests",
      "target": "tests/generate-image/test_scripts.py#RetryTests.test_backoff_grows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#RetryTests",
      "target": "tests/generate-image/test_scripts.py#RetryTests.test_only_transient_statuses_retry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#RetryTests",
      "target": "tests/generate-image/test_scripts.py#RetryTests.test_retry_after_header_is_honoured",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#RetryTests",
      "target": "tests/generate-image/test_scripts.py#RetryTests.test_unparsable_retry_after_falls_back_to_backoff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_creates_missing_parent_directories",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_downloaded_images_are_size_capped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_empty_data_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_entries_without_any_image_data_raise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_non_https_url_in_a_response_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_numbering_has_no_gaps_when_an_entry_is_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SaveImageTests",
      "target": "tests/generate-image/test_scripts.py#SaveImageTests.test_saves_base64_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_documentation_does_not_promise_a_size_parameter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_documented_default_model_matches_the_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_frontmatter_version_matches_expected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_reference_file_is_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_text_and_integrity_caveats_are_documented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SkillDocumentTests",
      "target": "tests/generate-image/test_scripts.py#SkillDocumentTests.test_transparent_background_is_not_offered_on_models_that_refuse_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SpecDescriptionTests",
      "target": "tests/generate-image/test_scripts.py#SpecDescriptionTests.test_bare_capability_reads_as_supported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SpecDescriptionTests",
      "target": "tests/generate-image/test_scripts.py#SpecDescriptionTests.test_enum_lists_its_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/generate-image/test_scripts.py#SpecDescriptionTests",
      "target": "tests/generate-image/test_scripts.py#SpecDescriptionTests.test_range_shows_its_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#BedValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#CorpusAuditorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#PlannerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tests/geniml/test_scripts.py#ScriptHelpTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests",
      "target": "tests/geniml/test_scripts.py#BedValidatorTests.test_negative_and_out_of_bounds_intervals_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests",
      "target": "tests/geniml/test_scripts.py#BedValidatorTests.test_symlink_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests",
      "target": "tests/geniml/test_scripts.py#BedValidatorTests.test_url_is_rejected_without_network",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests",
      "target": "tests/geniml/test_scripts.py#BedValidatorTests.test_valid_bed_and_normalization_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_negative_and_out_of_bounds_intervals_fail",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_negative_and_out_of_bounds_intervals_fail",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_symlink_is_rejected",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_symlink_is_rejected",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_url_is_rejected_without_network",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_url_is_rejected_without_network",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_valid_bed_and_normalization_plan",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#BedValidatorTests.test_valid_bed_and_normalization_plan",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#CorpusAuditorTests",
      "target": "tests/geniml/test_scripts.py#CorpusAuditorTests.test_detects_patient_leakage_without_emitting_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#CorpusAuditorTests.test_detects_patient_leakage_without_emitting_values",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#CorpusAuditorTests.test_detects_patient_leakage_without_emitting_values",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests._bundle",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_model_inspector_never_deserializes_checkpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_matches_exact_bundle_universe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_rejects_universe_mismatch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_model_inspector_never_deserializes_checkpoint",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_model_inspector_never_deserializes_checkpoint",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests._bundle",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_model_inspector_never_deserializes_checkpoint",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_matches_exact_bundle_universe",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_matches_exact_bundle_universe",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests._bundle",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_matches_exact_bundle_universe",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_rejects_universe_mismatch",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_rejects_universe_mismatch",
      "target": "tests/geniml/test_scripts.py#ModelAndTokenizerTests._bundle",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ModelAndTokenizerTests.test_tokenizer_plan_rejects_universe_mismatch",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#PlannerTests",
      "target": "tests/geniml/test_scripts.py#PlannerTests.test_consensus_plan_emits_current_build_universe_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#PlannerTests",
      "target": "tests/geniml/test_scripts.py#PlannerTests.test_embedding_plan_accepts_bounded_synthetic_parquet_envelope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#PlannerTests.test_consensus_plan_emits_current_build_universe_command",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#PlannerTests.test_consensus_plan_emits_current_build_universe_command",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#PlannerTests.test_embedding_plan_accepts_bounded_synthetic_parquet_envelope",
      "target": "tests/geniml/test_scripts.py#json_output",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#PlannerTests.test_embedding_plan_accepts_bounded_synthetic_parquet_envelope",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ScriptHelpTests",
      "target": "tests/geniml/test_scripts.py#ScriptHelpTests.test_all_dependency_free_clis_have_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ScriptHelpTests",
      "target": "tests/geniml/test_scripts.py#ScriptHelpTests.test_scripts_parse_and_forbid_dangerous_capabilities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geniml/test_scripts.py#ScriptHelpTests.test_all_dependency_free_clis_have_help",
      "target": "tests/geniml/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#_load_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditGffTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#BuildTableTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_bed12_absolute_block_starts_are_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_clean_bed_has_no_findings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_one_based_data_in_a_bed_is_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_space_separated_bed_is_named_as_such",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_valid_bed12_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_bed12_absolute_block_starts_are_fatal",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_bed12_absolute_block_starts_are_fatal",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_clean_bed_has_no_findings",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_one_based_data_in_a_bed_is_flagged",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_one_based_data_in_a_bed_is_flagged",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_space_separated_bed_is_named_as_such",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_space_separated_bed_is_named_as_such",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditBedTests.test_valid_bed12_passes",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_examples_are_capped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_format_can_be_forced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_missing_file_is_a_usage_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_suppressed_findings_still_count_towards_the_exit_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_unknown_extension_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_examples_are_capped",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_examples_are_capped",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_format_can_be_forced",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_missing_file_is_a_usage_error",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_suppressed_findings_still_count_towards_the_exit_code",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditCliTests.test_unknown_extension_is_refused",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_clean_gtf_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_end_before_start_is_fatal_regardless_of_strand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_zero_start_proves_zero_based_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_clean_gtf_passes",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_end_before_start_is_fatal_regardless_of_strand",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_end_before_start_is_fatal_regardless_of_strand",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_zero_start_proves_zero_based_data",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditGffTests.test_zero_start_proves_zero_based_data",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_contig_order_not_coordinate_order_drives_the_sort_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_interleaved_contigs_are_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_untrimmed_alleles_are_warned_about",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests",
      "target": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_vep_dash_allele_is_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_contig_order_not_coordinate_order_drives_the_sort_check",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_contig_order_not_coordinate_order_drives_the_sort_check",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_interleaved_contigs_are_caught",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_interleaved_contigs_are_caught",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_untrimmed_alleles_are_warned_about",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_untrimmed_alleles_are_warned_about",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_vep_dash_allele_is_fatal",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#AuditVcfTests.test_vep_dash_allele_is_fatal",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#BuildTableTests",
      "target": "tests/genomic-coordinates/test_scripts.py#BuildTableTests.test_builds_are_mutually_distinguishable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#BuildTableTests",
      "target": "tests/genomic-coordinates/test_scripts.py#BuildTableTests.test_every_build_lists_the_same_chromosomes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#BuildTableTests",
      "target": "tests/genomic-coordinates/test_scripts.py#BuildTableTests.test_grch37_and_grch38_differ_on_chr1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_length_is_convention_independent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_only_the_start_moves_between_conventions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_round_trip_through_canonical_is_identity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_samtools_region_spans_both_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConventionTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConventionTests.test_unknown_format_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_bed_to_gff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_inverted_interval_is_invalid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_json_output_is_parseable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_list_covers_every_convention",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_reads_a_bed_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_ucsc_region_to_bed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_bed_feature_is_unrepresentable_in_gff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_survives_a_half_open_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_bed_to_gff",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_bed_to_gff",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_inverted_interval_is_invalid",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_inverted_interval_is_invalid",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_json_output_is_parseable",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_list_covers_every_convention",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_reads_a_bed_file",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_reads_a_bed_file",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_ucsc_region_to_bed",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_ucsc_region_to_bed",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_bed_feature_is_unrepresentable_in_gff",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_bed_feature_is_unrepresentable_in_gff",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_survives_a_half_open_target",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ConvertCoordsCliTests.test_zero_length_survives_a_half_open_target",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_bed_max_coordinate_is_not_treated_as_a_contig_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_bed_past_the_contig_end_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_and_hg19_are_reported_as_incompatible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_is_identified_by_its_mitochondrion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_is_identified",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_vcf_against_hg19_genome_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_hg19_is_identified_by_its_mitochondrion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_matching_files_are_compatible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_unknown_extension_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests",
      "target": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_vcf_header_lengths_are_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_bed_max_coordinate_is_not_treated_as_a_contig_length",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_bed_past_the_contig_end_is_caught",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_and_hg19_are_reported_as_incompatible",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_is_identified_by_its_mitochondrion",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch37_is_identified_by_its_mitochondrion",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_is_identified",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_is_identified",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_grch38_vcf_against_hg19_genome_fails",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_hg19_is_identified_by_its_mitochondrion",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_hg19_is_identified_by_its_mitochondrion",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_matching_files_are_compatible",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_unknown_extension_is_refused",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_vcf_header_lengths_are_read",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#IdentifyTests.test_vcf_header_lengths_are_read",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_cannot_shift_past_the_contig_start",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_deletion_left_aligns_through_the_repeat",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_every_spelling_of_one_deletion_agrees",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_insertion_left_aligns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_normalisation_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_normalised_snv_is_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_ref_equal_to_alt_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_ref_mismatch_is_reported_not_normalised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_spanning_deletion_allele_passes_through",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_symbolic_allele_passes_through",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_untrimmed_snv_becomes_parsimonious",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_window_limits_the_shift_and_says_so",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_zero_position_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_cannot_shift_past_the_contig_start",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_deletion_left_aligns_through_the_repeat",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_every_spelling_of_one_deletion_agrees",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_insertion_left_aligns",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_normalisation_is_idempotent",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_normalised_snv_is_untouched",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_ref_equal_to_alt_is_rejected",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_ref_mismatch_is_reported_not_normalised",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_spanning_deletion_allele_passes_through",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_symbolic_allele_passes_through",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_untrimmed_snv_becomes_parsimonious",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_window_limits_the_shift_and_says_so",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.test_zero_position_is_rejected",
      "target": "tests/genomic-coordinates/test_scripts.py#NormalisationTests.normalise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_difference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_identity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_mismatch_sets_a_failing_exit_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_missing_reference_is_a_usage_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_reads_a_vcf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests",
      "target": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_split_expands_multiallelic_alt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_difference",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_identity",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_compare_declares_identity",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_mismatch_sets_a_failing_exit_code",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_mismatch_sets_a_failing_exit_code",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_missing_reference_is_a_usage_error",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_reads_a_vcf",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_reads_a_vcf",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_split_expands_multiallelic_alt",
      "target": "tests/genomic-coordinates/test_scripts.py#rows_from_tsv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#NormaliseCliTests.test_split_expands_multiallelic_alt",
      "target": "tests/genomic-coordinates/test_scripts.py#run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_chr_prefix_is_resolved_both_ways",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_fetch_is_zero_based_half_open",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_indexed_and_unindexed_readers_agree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_missing_contig_names_the_likely_cause",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#ReferenceTests",
      "target": "tests/genomic-coordinates/test_scripts.py#ReferenceTests.test_past_the_end_is_an_error_naming_the_assembly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_bare_contig_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_braced_hla_contig_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_ensembl_double_dot_and_strand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_start_without_end_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_thousands_separators_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#RegionStringTests",
      "target": "tests/genomic-coordinates/test_scripts.py#RegionStringTests.test_unbraced_colon_bearing_name_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_every_referenced_file_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_every_script_is_mentioned_in_the_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_frontmatter_name_matches_the_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_local_markdown_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_no_tests_ship_inside_the_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_scripts_import_nothing_outside_the_standard_library",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_skill_md_is_within_the_line_budget",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests",
      "target": "tests/genomic-coordinates/test_scripts.py#SkillStructureTests.test_version_is_a_quoted_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#ExactPinnedStackTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#require_stack",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tests/geopandas/test_scripts.py#write_join_fixtures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "geopandas",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "pyarrow",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "pyogrio",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "pyproj",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "shapely",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "shapely.geometry",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests",
      "target": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed_without_site_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests",
      "target": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_nonlocal_and_archive_paths_fail_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed_without_site_packages",
      "target": "tests/geopandas/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_nonlocal_and_archive_paths_fail_closed",
      "target": "tests/geopandas/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#DependencyFreeHelpTests.test_nonlocal_and_archive_paths_fail_closed",
      "target": "tests/geopandas/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#ExactPinnedStackTests",
      "target": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#ExactPinnedStackTests",
      "target": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.test_core_geometry_join_overlay_dissolve_and_arrow_apis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#ExactPinnedStackTests",
      "target": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.test_exact_package_and_native_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#ExactPinnedStackTests",
      "target": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.test_geoparquet_11_bbox_roundtrip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#ExactPinnedStackTests.setUpClass",
      "target": "tests/geopandas/test_scripts.py#require_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests",
      "target": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests",
      "target": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_crs_export_and_privacy_planners",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests",
      "target": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_inventory_and_join_cardinality_are_redacted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests",
      "target": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_validity_dry_run_and_new_output_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.setUpClass",
      "target": "tests/geopandas/test_scripts.py#require_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_crs_export_and_privacy_planners",
      "target": "tests/geopandas/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_crs_export_and_privacy_planners",
      "target": "tests/geopandas/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_crs_export_and_privacy_planners",
      "target": "tests/geopandas/test_scripts.py#write_join_fixtures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_inventory_and_join_cardinality_are_redacted",
      "target": "tests/geopandas/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_inventory_and_join_cardinality_are_redacted",
      "target": "tests/geopandas/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_inventory_and_join_cardinality_are_redacted",
      "target": "tests/geopandas/test_scripts.py#write_join_fixtures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_validity_dry_run_and_new_output_only",
      "target": "tests/geopandas/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_validity_dry_run_and_new_output_only",
      "target": "tests/geopandas/test_scripts.py#require_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#LocalCliSyntheticTests.test_validity_dry_run_and_new_output_only",
      "target": "tests/geopandas/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_scripts.py#write_join_fixtures",
      "target": "tests/geopandas/test_scripts.py#require_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "tests/geopandas/test_static.py#ScriptSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "tests/geopandas/test_static.py#SecurityAndStalenessTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "tests/geopandas/test_static.py#SkillStructureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#ScriptSafetyTests",
      "target": "tests/geopandas/test_static.py#ScriptSafetyTests.test_no_generated_bytecode_or_research_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#ScriptSafetyTests",
      "target": "tests/geopandas/test_static.py#ScriptSafetyTests.test_scripts_omit_network_execution_and_unsafe_serializers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#ScriptSafetyTests",
      "target": "tests/geopandas/test_static.py#ScriptSafetyTests.test_scripts_parse_and_keep_optional_imports_lazy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SecurityAndStalenessTests",
      "target": "tests/geopandas/test_static.py#SecurityAndStalenessTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SecurityAndStalenessTests",
      "target": "tests/geopandas/test_static.py#SecurityAndStalenessTests.test_current_api_and_security_guidance_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SecurityAndStalenessTests",
      "target": "tests/geopandas/test_static.py#SecurityAndStalenessTests.test_install_snapshot_is_pinned_and_uv_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SecurityAndStalenessTests",
      "target": "tests/geopandas/test_static.py#SecurityAndStalenessTests.test_no_credential_url_or_broad_environment_dump",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SkillStructureTests",
      "target": "tests/geopandas/test_static.py#SkillStructureTests.test_documented_cli_inventory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SkillStructureTests",
      "target": "tests/geopandas/test_static.py#SkillStructureTests.test_exactly_six_dated_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SkillStructureTests",
      "target": "tests/geopandas/test_static.py#SkillStructureTests.test_frontmatter_version_license_compatibility_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/geopandas/test_static.py#SkillStructureTests",
      "target": "tests/geopandas/test_static.py#SkillStructureTests.test_relative_markdown_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#CommonSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#ParserTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#PlannerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#SchedulerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tests/get-available-resources/test_scripts.py#SnapshotToolTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "accelerator_diagnostics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "detect_resources",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "plan_workload",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "snapshot_tools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#CommonSafetyTests",
      "target": "tests/get-available-resources/test_scripts.py#CommonSafetyTests.test_snapshot_reader_rejects_symlink",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#CommonSafetyTests",
      "target": "tests/get-available-resources/test_scripts.py#CommonSafetyTests.test_stdout_is_default_and_file_output_is_private",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests",
      "target": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_cpu_quota_is_capacity_not_a_topology_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests",
      "target": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_hierarchical_limits_use_most_restrictive_ancestor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_hierarchical_limits_use_most_restrictive_ancestor",
      "target": "tests/get-available-resources/test_scripts.py#LinuxCgroupTests.test_hierarchical_limits_use_most_restrictive_ancestor.reader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#ParserTests",
      "target": "tests/get-available-resources/test_scripts.py#ParserTests.test_accelerator_probe_timeout_is_a_partial_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#ParserTests",
      "target": "tests/get-available-resources/test_scripts.py#ParserTests.test_amd_and_apple_accelerators_are_not_cuda",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#ParserTests",
      "target": "tests/get-available-resources/test_scripts.py#ParserTests.test_cpu_list_is_counted_without_expansion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#ParserTests",
      "target": "tests/get-available-resources/test_scripts.py#ParserTests.test_nvidia_csv_is_typed_and_does_not_expose_uuid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#ParserTests.test_accelerator_probe_timeout_is_a_partial_warning",
      "target": "tests/get-available-resources/test_scripts.py#ParserTests.test_accelerator_probe_timeout_is_a_partial_warning.fake_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlannerTests",
      "target": "tests/get-available-resources/test_scripts.py#PlannerTests.test_accelerator_plan_executes_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlannerTests",
      "target": "tests/get-available-resources/test_scripts.py#PlannerTests.test_io_plan_is_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlannerTests",
      "target": "tests/get-available-resources/test_scripts.py#PlannerTests.test_worker_plan_uses_cpu_memory_tasks_and_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlannerTests.test_accelerator_plan_executes_nothing",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlannerTests.test_io_plan_is_bounded",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlannerTests.test_worker_plan_uses_cpu_memory_tasks_and_request",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_linux_partial_failure_still_returns_valid_snapshot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_macos_sysctl_and_unified_memory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_memory_is_kept_separate_from_limits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_linux_partial_failure_still_returns_valid_snapshot",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_linux_partial_failure_still_returns_valid_snapshot.reader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups.FakeProcess",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups.FakeProcess",
      "target": "tests/get-available-resources/test_scripts.py#PlatformMockTests.test_windows_psutil_affinity_and_processor_groups.FakeProcess.cpu_affinity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SchedulerTests",
      "target": "tests/get-available-resources/test_scripts.py#SchedulerTests.test_slurm_named_allocation_is_bounded_and_redacted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SchedulerTests",
      "target": "tests/get-available-resources/test_scripts.py#SchedulerTests.test_visibility_values_are_summarized_not_returned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SnapshotToolTests",
      "target": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_diff_ignores_timestamp_by_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SnapshotToolTests",
      "target": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_validator_accepts_canonical_snapshot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SnapshotToolTests",
      "target": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_validator_rejects_impossible_disk_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_diff_ignores_timestamp_by_default",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_validator_accepts_canonical_snapshot",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/get-available-resources/test_scripts.py#SnapshotToolTests.test_validator_rejects_impossible_disk_order",
      "target": "tests/get-available-resources/test_scripts.py#canonical_snapshot",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#correlation_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#diseases_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#FastaReadingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#info_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#search_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "gene_analysis",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_single_sequence_is_not_aligned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_asks_gget_to_write_the_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_can_be_switched_off",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_an_empty_fasta_file_runs_no_queries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_one_csv_is_written_per_sequence_named_after_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_structure_prediction_stays_a_no_op_even_when_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_failed_blast_does_not_abort_the_remaining_sequences",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_single_sequence_is_not_aligned",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_single_sequence_is_not_aligned",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_single_sequence_is_not_aligned",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_a_single_sequence_is_not_aligned",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_asks_gget_to_write_the_file",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_asks_gget_to_write_the_file",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_asks_gget_to_write_the_file",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_asks_gget_to_write_the_file",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_can_be_switched_off",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_can_be_switched_off",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_can_be_switched_off",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_alignment_can_be_switched_off",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_an_empty_fasta_file_runs_no_queries",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_an_empty_fasta_file_runs_no_queries",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_each_sequence_is_blasted_once_with_the_documented_parameters",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_one_csv_is_written_per_sequence_named_after_it",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_one_csv_is_written_per_sequence_named_after_it",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_one_csv_is_written_per_sequence_named_after_it",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_one_csv_is_written_per_sequence_named_after_it",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_structure_prediction_stays_a_no_op_even_when_requested",
      "target": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_structure_prediction_stays_a_no_op_even_when_requested",
      "target": "tests/gget/test_scripts.py#blast_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_structure_prediction_stays_a_no_op_even_when_requested",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#BatchSequenceAnalysisTests.test_structure_prediction_stays_a_no_op_even_when_requested",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_database_with_no_hits_is_left_out_of_the_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_failing_database_does_not_stop_the_sweep",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_an_expression_failure_leaves_the_enrichment_results_intact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_every_documented_database_is_queried_once_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_expression_lookups_are_capped_at_five_genes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_one_csv_per_database_plus_a_summary_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_species_background_and_plotting_are_forwarded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_the_top_tissue_is_the_one_with_the_highest_median",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_database_with_no_hits_is_left_out_of_the_summary",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_database_with_no_hits_is_left_out_of_the_summary",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_database_with_no_hits_is_left_out_of_the_summary",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_database_with_no_hits_is_left_out_of_the_summary",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_failing_database_does_not_stop_the_sweep",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_failing_database_does_not_stop_the_sweep",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_failing_database_does_not_stop_the_sweep",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_a_failing_database_does_not_stop_the_sweep",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_an_expression_failure_leaves_the_enrichment_results_intact",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_an_expression_failure_leaves_the_enrichment_results_intact",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_an_expression_failure_leaves_the_enrichment_results_intact",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_every_documented_database_is_queried_once_in_order",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_every_documented_database_is_queried_once_in_order",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_every_documented_database_is_queried_once_in_order",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_every_documented_database_is_queried_once_in_order",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_expression_lookups_are_capped_at_five_genes",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_expression_lookups_are_capped_at_five_genes",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_expression_lookups_are_capped_at_five_genes",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_expression_lookups_are_capped_at_five_genes",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_one_csv_per_database_plus_a_summary_is_written",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_one_csv_per_database_plus_a_summary_is_written",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_one_csv_per_database_plus_a_summary_is_written",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_one_csv_per_database_plus_a_summary_is_written",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_species_background_and_plotting_are_forwarded",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_species_background_and_plotting_are_forwarded",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_species_background_and_plotting_are_forwarded",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_species_background_and_plotting_are_forwarded",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_the_top_tissue_is_the_one_with_the_highest_median",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_the_top_tissue_is_the_one_with_the_highest_median",
      "target": "tests/gget/test_scripts.py#enrichr_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_the_top_tissue_is_the_one_with_the_highest_median",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#EnrichmentPipelineTests.test_the_top_tissue_is_the_one_with_the_highest_median",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.test_a_header_with_no_sequence_is_still_a_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.test_a_missing_trailing_newline_is_tolerated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.test_an_empty_file_yields_no_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.test_the_final_record_is_not_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.test_the_identifier_excludes_the_angle_bracket",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.test_wrapped_sequence_lines_are_joined",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests.test_a_header_with_no_sequence_is_still_a_record",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests.test_a_missing_trailing_newline_is_tolerated",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests.test_an_empty_file_yields_no_records",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests.test_the_final_record_is_not_dropped",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests.test_the_identifier_excludes_the_angle_bracket",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#FastaReadingTests.test_wrapped_sequence_lines_are_joined",
      "target": "tests/gget/test_scripts.py#FastaReadingTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_a_gene_that_does_not_exist_stops_before_any_other_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_already_joined_string_is_written_unchanged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_empty_drug_table_is_not_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_explicit_prefix_is_used_verbatim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_opentargets_resources_are_requested_with_a_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_sequence_forms_are_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_expression_and_correlation_are_separate_archs4_queries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_optional_lookups_may_fail_without_failing_the_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_ensembl_identifier_from_the_search_drives_every_lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_fasta_files_hold_the_lines_gget_returned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_output_prefix_defaults_to_the_lowercased_gene",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_search_is_scoped_to_the_species_and_a_single_hit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "target": "tests/gget/test_scripts.py#archs4_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "target": "tests/gget/test_scripts.py#correlation_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "target": "tests/gget/test_scripts.py#diseases_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "target": "tests/gget/test_scripts.py#info_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "target": "tests/gget/test_scripts.py#search_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_a_gene_that_does_not_exist_stops_before_any_other_request",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_a_gene_that_does_not_exist_stops_before_any_other_request",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_empty_drug_table_is_not_written",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_empty_drug_table_is_not_written",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_explicit_prefix_is_used_verbatim",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_an_explicit_prefix_is_used_verbatim",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_opentargets_resources_are_requested_with_a_limit",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_opentargets_resources_are_requested_with_a_limit",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_sequence_forms_are_requested",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_both_sequence_forms_are_requested",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_expression_and_correlation_are_separate_archs4_queries",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_expression_and_correlation_are_separate_archs4_queries",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_optional_lookups_may_fail_without_failing_the_run",
      "target": "tests/gget/test_scripts.py#info_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_optional_lookups_may_fail_without_failing_the_run",
      "target": "tests/gget/test_scripts.py#search_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_optional_lookups_may_fail_without_failing_the_run",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_optional_lookups_may_fail_without_failing_the_run",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_ensembl_identifier_from_the_search_drives_every_lookup",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_ensembl_identifier_from_the_search_drives_every_lookup",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_fasta_files_hold_the_lines_gget_returned",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_fasta_files_hold_the_lines_gget_returned",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_output_prefix_defaults_to_the_lowercased_gene",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_output_prefix_defaults_to_the_lowercased_gene",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_search_is_scoped_to_the_species_and_a_single_hit",
      "target": "tests/gget/test_scripts.py#GeneAnalysisTests.stub_everything",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneAnalysisTests.test_the_search_is_scoped_to_the_species_and_a_single_hit",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_csv_read_as_text_would_keep_the_commas",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_csv_takes_the_first_column_and_skips_the_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_plain_list_drops_blank_lines_and_whitespace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.test_an_empty_list_file_yields_no_genes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_csv_read_as_text_would_keep_the_commas",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_csv_takes_the_first_column_and_skips_the_header",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests.test_a_plain_list_drops_blank_lines_and_whitespace",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#GeneListReadingTests.test_an_empty_list_file_yields_no_genes",
      "target": "tests/gget/test_scripts.py#GeneListReadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.quietly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gget/test_scripts.py#WorkingDirectoryTestCase",
      "target": "tests/gget/test_scripts.py#WorkingDirectoryTestCase.stub",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#ArtifactTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#BedValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#CliResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#PlanningTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#sha512t24u",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#StaticSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "artifact_inspector",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "bed_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "coverage_preflight",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "execution_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "refget_digest_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "tokenizer_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#ArtifactTests",
      "target": "tests/gtars/test_scripts.py#ArtifactTests.test_wheel_filename_and_checksum_are_screened_without_loading",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#ArtifactTests.test_wheel_filename_and_checksum_are_screened_without_loading",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#ArtifactTests.test_wheel_filename_and_checksum_are_screened_without_loading",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#BedValidatorTests",
      "target": "tests/gtars/test_scripts.py#BedValidatorTests.test_bad_bounds_and_url_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#BedValidatorTests",
      "target": "tests/gtars/test_scripts.py#BedValidatorTests.test_valid_local_bed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#BedValidatorTests.test_bad_bounds_and_url_are_rejected",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#BedValidatorTests.test_bad_bounds_and_url_are_rejected",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#BedValidatorTests.test_valid_local_bed",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#BedValidatorTests.test_valid_local_bed",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#CliResult",
      "target": "tests/gtars/test_scripts.py#CliResult.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#PlanningTests",
      "target": "tests/gtars/test_scripts.py#PlanningTests.test_coverage_preflight_requires_sorted_bounded_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#PlanningTests",
      "target": "tests/gtars/test_scripts.py#PlanningTests.test_overlap_and_coverage_plans_are_fixed_dry_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#PlanningTests.test_coverage_preflight_requires_sorted_bounded_input",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#PlanningTests.test_coverage_preflight_requires_sorted_bounded_input",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#PlanningTests.test_overlap_and_coverage_plans_are_fixed_dry_runs",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#PlanningTests.test_overlap_and_coverage_plans_are_fixed_dry_runs",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#run_cli",
      "target": "tests/gtars/test_scripts.py#CliResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#StaticSafetyTests",
      "target": "tests/gtars/test_scripts.py#StaticSafetyTests.test_all_dependency_free_clis_have_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#StaticSafetyTests",
      "target": "tests/gtars/test_scripts.py#StaticSafetyTests.test_bundled_reference_inventory_and_relative_links",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#StaticSafetyTests.test_all_dependency_free_clis_have_help",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests",
      "target": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_refget_digest_validation_uses_known_acgt_digest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests",
      "target": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_tokenizer_manifest_matches_exact_universe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_refget_digest_validation_uses_known_acgt_digest",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_refget_digest_validation_uses_known_acgt_digest",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_refget_digest_validation_uses_known_acgt_digest",
      "target": "tests/gtars/test_scripts.py#sha512t24u",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_tokenizer_manifest_matches_exact_universe",
      "target": "tests/gtars/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_scripts.py#TokenizerAndRefgetTests.test_tokenizer_manifest_matches_exact_universe",
      "target": "tests/gtars/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py",
      "target": "tests/gtars/test_static.py#_word",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py",
      "target": "tests/gtars/test_static.py#StaticAstTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py#StaticAstTests",
      "target": "tests/gtars/test_static.py#StaticAstTests.test_scripts_parse_and_omit_dangerous_capabilities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/gtars/test_static.py#StaticAstTests.test_scripts_parse_and_omit_dangerous_capabilities",
      "target": "tests/gtars/test_static.py#_word",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "tests/hugging-science/test_scripts.py#CatalogueSourceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "tests/hugging-science/test_scripts.py#FilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "tests/hugging-science/test_scripts.py#ParserTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "tests/hugging-science/test_scripts.py#RenderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "fetch_catalog",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#CatalogueSourceTests",
      "target": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_network_failures_exit_with_a_message_rather_than_a_traceback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#CatalogueSourceTests",
      "target": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_requests_identify_the_skill_and_carry_a_timeout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#CatalogueSourceTests",
      "target": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_the_base_url_is_https",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#CatalogueSourceTests",
      "target": "tests/hugging-science/test_scripts.py#CatalogueSourceTests.test_topic_slugs_are_lowercase_hyphenated_and_sorted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_a_tag_also_matches_the_type_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_an_unknown_kind_matches_nothing_rather_than_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_each_cli_filter_value_selects_its_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_kind_and_tag_must_both_match",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_kind_matching_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_no_filter_matches_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_tag_matching_is_a_case_insensitive_substring",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_the_aliases_absorb_singular_section_headings_upstream",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#FilterTests",
      "target": "tests/hugging-science/test_scripts.py#FilterTests.test_the_cli_only_offers_the_aliased_filter_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_an_entry_before_any_section_is_labelled_unknown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_an_entry_without_prose_has_an_empty_description",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_content_before_the_first_entry_is_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_empty_input_yields_no_entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_every_entry_is_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_huggingface_link_and_url_keys_all_fill_the_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_metadata_bullets_populate_the_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_prose_after_the_bullets_becomes_the_description",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_tags_are_split_and_blank_entries_discarded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_the_count_suffix_is_stripped_from_the_section_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#ParserTests",
      "target": "tests/hugging-science/test_scripts.py#ParserTests.test_unrecognised_bullet_keys_are_dropped_not_misfiled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#RenderTests",
      "target": "tests/hugging-science/test_scripts.py#RenderTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#RenderTests",
      "target": "tests/hugging-science/test_scripts.py#RenderTests.test_a_rendered_catalogue_round_trips_through_the_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#RenderTests",
      "target": "tests/hugging-science/test_scripts.py#RenderTests.test_an_empty_result_says_so_rather_than_rendering_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#RenderTests",
      "target": "tests/hugging-science/test_scripts.py#RenderTests.test_an_entry_renders_only_the_fields_it_has",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#RenderTests",
      "target": "tests/hugging-science/test_scripts.py#RenderTests.test_grouped_rendering_counts_each_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hugging-science/test_scripts.py#RenderTests",
      "target": "tests/hugging-science/test_scripts.py#RenderTests.test_ungrouped_rendering_omits_section_headers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#DatasetAuditTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#file_sha256",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#make_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#make_run_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#make_task_config",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests",
      "target": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_missing_prices_make_plan_unready",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests",
      "target": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_named_env_check_is_boolean_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests",
      "target": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_secret_field_duplicate_key_and_traversal_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests",
      "target": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_missing_prices_make_plan_unready",
      "target": "tests/hypogenic/test_scripts.py#make_run_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_missing_prices_make_plan_unready",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_missing_prices_make_plan_unready",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_named_env_check_is_boolean_only",
      "target": "tests/hypogenic/test_scripts.py#make_run_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_named_env_check_is_boolean_only",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_named_env_check_is_boolean_only",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_secret_field_duplicate_key_and_traversal_are_rejected",
      "target": "tests/hypogenic/test_scripts.py#make_run_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_secret_field_duplicate_key_and_traversal_are_rejected",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_secret_field_duplicate_key_and_traversal_are_rejected",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "target": "tests/hypogenic/test_scripts.py#make_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "target": "tests/hypogenic/test_scripts.py#make_run_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "target": "tests/hypogenic/test_scripts.py#make_task_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#ConfigAndPlanTests.test_task_config_and_cost_plan",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests",
      "target": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_cross_split_duplicate_fails_with_hashed_evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests",
      "target": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_manifest_audit_passes_and_does_not_echo_untrusted_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_cross_split_duplicate_fails_with_hashed_evidence",
      "target": "tests/hypogenic/test_scripts.py#make_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_cross_split_duplicate_fails_with_hashed_evidence",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_cross_split_duplicate_fails_with_hashed_evidence",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_manifest_audit_passes_and_does_not_echo_untrusted_text",
      "target": "tests/hypogenic/test_scripts.py#make_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_manifest_audit_passes_and_does_not_echo_untrusted_text",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#DatasetAuditTests.test_manifest_audit_passes_and_does_not_echo_untrusted_text",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#make_manifest",
      "target": "tests/hypogenic/test_scripts.py#file_sha256",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#make_manifest",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests",
      "target": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_evaluation_plan_preserves_split_roles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests",
      "target": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_hypothesis_inspector_redacts_text_and_finds_normalized_duplicate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests",
      "target": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_result_inspection_and_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_evaluation_plan_preserves_split_roles",
      "target": "tests/hypogenic/test_scripts.py#make_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_evaluation_plan_preserves_split_roles",
      "target": "tests/hypogenic/test_scripts.py#make_run_config",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_evaluation_plan_preserves_split_roles",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_evaluation_plan_preserves_split_roles",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_hypothesis_inspector_redacts_text_and_finds_normalized_duplicate",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_hypothesis_inspector_redacts_text_and_finds_normalized_duplicate",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_result_inspection_and_metrics",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#OutputAndEvaluationTests.test_result_inspection_and_metrics",
      "target": "tests/hypogenic/test_scripts.py#write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "target": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_all_cli_help_paths_work_without_site_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "target": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_example_run_config_validates_without_dependencies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "target": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_local_markdown_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "target": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_scripts_have_no_network_or_dynamic_execution_surface",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests",
      "target": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_skill_metadata_progressive_disclosure_and_file_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_all_cli_help_paths_work_without_site_packages",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypogenic/test_scripts.py#SafetyAndHelpTests.test_example_run_config_validates_without_dependencies",
      "target": "tests/hypogenic/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "audit_evidence_ledger",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "check_falsification_controls",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "check_operationalization",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "generate_preregistration_scaffold",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "lint_causal_claims",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "validate_hypothesis_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py",
      "target": "validate_prediction_matrix",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests",
      "target": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_associational_tag_cannot_hide_causal_verb",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests",
      "target": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_fully_annotated_causal_claim_is_structurally_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests",
      "target": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_unmarked_causal_language_is_invalid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#CausalClaimLintTests.test_fully_annotated_causal_claim_is_structurally_valid",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests",
      "target": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_comprehensive_search_label_still_requires_human_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests",
      "target": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_comprehensive_search_label_still_requires_human_review",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_comprehensive_search_label_still_requires_human_review",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_search_boundary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_comprehensive_search_label_still_requires_human_review",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_ledger",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "target": "skills/hypothesis-generation/scripts/audit_evidence_ledger.py#load_search_boundary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#EvidenceLedgerTests.test_synthetic_ledger_and_boundary_cross_check",
      "target": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_identical_discriminating_expectations_are_invalid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_template_is_valid_pending_human_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_identical_discriminating_expectations_are_invalid",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_template_is_valid_pending_human_review",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_template_is_valid_pending_human_review",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FalsificationControlTests.test_template_is_valid_pending_human_review",
      "target": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_assets_parse_and_source_ledger_is_dated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_duplicate_json_keys_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_oversized_json_is_rejected_before_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_private_output_refuses_implicit_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_removed_external_schematic_and_latex_assets_stay_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_scripts_have_no_network_dynamic_execution_or_secret_access",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_skill_frontmatter_and_progressive_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/hypothesis-generation/test_scripts.py#FileSafetyAndStaticTests.test_symlink_input_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests",
      "target": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_causal_question_requires_estimand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests",
      "target": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_external_sensitive_data_declaration_blocks_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests",
      "target": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_non_candidate_status_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests",
      "target": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_template_is_valid_and_keeps_candidates_distinct",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_causal_question_requires_estimand",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_causal_question_requires_estimand",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_causal_question_requires_estimand",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_external_sensitive_data_declaration_blocks_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_external_sensitive_data_declaration_blocks_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_external_sensitive_data_declaration_blocks_record",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_non_candidate_status_is_rejected",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_non_candidate_status_is_rejected",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_template_is_valid_and_keeps_candidates_distinct",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_template_is_valid_and_keeps_candidates_distinct",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#HypothesisSchemaTests.test_template_is_valid_and_keeps_candidates_distinct",
      "target": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests",
      "target": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_applicable_measurement_requires_validity_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests",
      "target": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_template_is_valid_with_visible_measurement_gaps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_applicable_measurement_requires_validity_source",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_template_is_valid_with_visible_measurement_gaps",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#OperationalizationTests.test_template_is_valid_with_visible_measurement_gaps",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests",
      "target": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_csv_requires_exact_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests",
      "target": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_identical_focal_and_rival_expectations_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests",
      "target": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_template_cross_checks_against_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_template_cross_checks_against_record",
      "target": "tests/hypothesis-generation/test_scripts.py#assert_no_decision_keys",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#PredictionMatrixTests.test_template_cross_checks_against_record",
      "target": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests",
      "target": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_scaffold_contains_all_candidates_without_selection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests",
      "target": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_unresolved_gate_blocks_scaffold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_scaffold_contains_all_candidates_without_selection",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_scaffold_contains_all_candidates_without_selection",
      "target": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_unresolved_gate_blocks_scaffold",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_unresolved_gate_blocks_scaffold",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#validate_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_unresolved_gate_blocks_scaffold",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#ScaffoldTests.test_unresolved_gate_blocks_scaffold",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "target": "skills/hypothesis-generation/scripts/validate_hypothesis_schema.py#load_hypothesis_record",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/hypothesis-generation/test_scripts.py#valid_record",
      "target": "tests/hypothesis-generation/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "check_version",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex",
      "target": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "target": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_instructions_name_the_version_and_the_interpreter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "target": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_no_command_bypasses_an_externally_managed_interpreter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "target": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_pip_form_targets_the_running_interpreter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "target": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_upgrade_flag_applies_to_every_form",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands",
      "target": "tests/imaging-data-commons/test_check_version.py#TestInstallCommands.test_uv_form_is_preferred_when_uv_is_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck",
      "target": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_current_version_is_returned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck",
      "target": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_main_exit_code_follows_the_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck",
      "target": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_missing_package_reports_none_and_instructs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck",
      "target": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_older_version_reports_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_current_version_is_returned",
      "target": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestMinimumCheck.test_older_version_reports_none",
      "target": "tests/imaging-data-commons/test_check_version.py#_FakeIdcIndex",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort.test_fetch_json_returns_none_when_unreachable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort.test_notify_updates_survives_an_unreachable_network",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNetworkChecksAreBestEffort.test_skill_update_notice_is_conservative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls._source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls.test_source_has_no_dynamic_execution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls.test_source_has_no_installer_call",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls.test_source_has_no_dynamic_execution",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls._source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls.test_source_has_no_installer_call",
      "target": "tests/imaging-data-commons/test_check_version.py#TestNeverInstalls._source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "target": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_ignores_components_past_the_third",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "target": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_orders_numerically",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "target": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_pads_short_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "target": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_strips_v_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestParseVersion",
      "target": "tests/imaging-data-commons/test_check_version.py#TestParseVersion.test_tolerates_prereleases",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter",
      "target": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter._frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter",
      "target": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter.test_min_version_matches_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter",
      "target": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter.test_skill_version_matches_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter.test_min_version_matches_metadata",
      "target": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter._frontmatter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter.test_skill_version_matches_metadata",
      "target": "tests/imaging-data-commons/test_check_version.py#TestVersionsMatchFrontmatter._frontmatter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "tests/infographics/test_scripts.py#ParserTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "generate_infographic",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_every_catalogue_is_non_empty_and_free_of_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_every_catalogued_value_is_documented_by_list_options",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_option_names_are_lowercase_slugs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_the_palettes_are_the_recognised_colourblind_safe_sets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#OptionCatalogueTests",
      "target": "tests/infographics/test_scripts.py#OptionCatalogueTests.test_the_parser_offers_each_catalogue_as_choices",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#ParserTests",
      "target": "tests/infographics/test_scripts.py#ParserTests.test_an_unknown_option_value_is_rejected_at_the_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#ParserTests",
      "target": "tests/infographics/test_scripts.py#ParserTests.test_help_lists_every_documented_flag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#ParserTests",
      "target": "tests/infographics/test_scripts.py#ParserTests.test_the_generator_script_is_shipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_an_empty_key_is_omitted_rather_than_passed_blank",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_only_allowlisted_variables_are_forwarded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_allowlist_carries_no_credential_variables",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_allowlist_keeps_tls_and_proxy_settings_working",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_allowlist_matches_the_schematic_scripts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests",
      "target": "tests/infographics/test_scripts.py#SubprocessEnvironmentTests.test_the_api_key_is_injected_when_supplied",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_all_help_commands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_closed_capa_without_effectiveness_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_device_domain_is_refused_under_laboratory_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_distributed_json_templates_fail_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_duplicate_json_key_is_input_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_evidence_path_traversal_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_laboratory_profile_uses_its_own_domains",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_manifest_and_gap_analyzer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_output_is_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_refuses_overwrite_without_force",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_standard_specific_templates_fail_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_undetermined_applicability_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_unknown_standard_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_capa",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_document_register",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_qmsr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_scope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_supplier_controls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_traceability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_all_help_commands",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_closed_capa_without_effectiveness_fails",
      "target": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_closed_capa_without_effectiveness_fails",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_closed_capa_without_effectiveness_fails",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_device_domain_is_refused_under_laboratory_profile",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_device_domain_is_refused_under_laboratory_profile",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_device_domain_is_refused_under_laboratory_profile",
      "target": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_distributed_json_templates_fail_closed",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_duplicate_json_key_is_input_error",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_evidence_path_traversal_is_refused",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_evidence_path_traversal_is_refused",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_evidence_path_traversal_is_refused",
      "target": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_laboratory_profile_uses_its_own_domains",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_laboratory_profile_uses_its_own_domains",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_laboratory_profile_uses_its_own_domains",
      "target": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_manifest_and_gap_analyzer",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_manifest_and_gap_analyzer",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_manifest_and_gap_analyzer",
      "target": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_output_is_deterministic",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_output_is_deterministic",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_output_is_deterministic",
      "target": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_refuses_overwrite_without_force",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_refuses_overwrite_without_force",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_refuses_overwrite_without_force",
      "target": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_standard_specific_templates_fail_closed",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_undetermined_applicability_fails",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_undetermined_applicability_fails",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_undetermined_applicability_fails",
      "target": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_unknown_standard_is_refused",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_unknown_standard_is_refused",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_unknown_standard_is_refused",
      "target": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_capa",
      "target": "tests/iso-standards-readiness/test_scripts.py#capa_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_capa",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_document_register",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_document_register",
      "target": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_qmsr",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_qmsr",
      "target": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_scope",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_scope",
      "target": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_supplier_controls",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_supplier_controls",
      "target": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_traceability",
      "target": "tests/iso-standards-readiness/test_scripts.py#CLITests.assert_valid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#CLITests.test_valid_traceability",
      "target": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#document_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#manifest_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "target": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#qmsr_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#scope_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#supplier_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#approval",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#controlled",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#evidence",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/iso-standards-readiness/test_scripts.py#traceability_data",
      "target": "tests/iso-standards-readiness/test_scripts.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._pocket",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_manifest_without_interfaces_says_how_to_add_them",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_one_failing_entry_fails_the_whole_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_at_maximum_material_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_sized_from_nominal_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unsupported_target_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unverified_standard_is_flagged_in_the_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_manifest_without_interfaces_says_how_to_add_them",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_manifest_without_interfaces_says_how_to_add_them",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_one_failing_entry_fails_the_whole_check",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_one_failing_entry_fails_the_whole_check",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._pocket",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_at_maximum_material_passes",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_at_maximum_material_passes",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._pocket",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_sized_from_nominal_fails",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_pocket_sized_from_nominal_fails",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._pocket",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unsupported_target_is_rejected",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unverified_standard_is_flagged_in_the_output",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces.test_unverified_standard_is_flagged_in_the_output",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestDeclaredInterfaces._manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_clearance_offset_shifts_the_expected_band",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_envelope_intent_requires_maximum_material_condition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_match_intent_accepts_a_conforming_dimension",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_match_intent_rejects_an_out_of_tolerance_dimension",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_non_numeric_value_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_standard_without_bbox_checks_explains_itself",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_unknown_dimension_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_clearance_offset_shifts_the_expected_band",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_envelope_intent_requires_maximum_material_condition",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_match_intent_accepts_a_conforming_dimension",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_match_intent_rejects_an_out_of_tolerance_dimension",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_non_numeric_value_is_rejected",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_standard_without_bbox_checks_explains_itself",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic.test_unknown_dimension_is_rejected",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestFitArithmetic._fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelp",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelp.test_check_subcommands_have_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelp",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelp.test_each_cli_has_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelp.test_check_subcommands_have_help",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelp.test_each_cli_has_help",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_load_shape_rejects_unsupported_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_measure_rejects_unknown_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_measure_resolves_bbox_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_measure_swap_xy_exchanges_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_parse_params_coerces_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_parse_params_rejects_malformed_pairs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestHelpers",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestHelpers.test_run_model_rejects_a_missing_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_a_model_declaring_nothing_returns_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_bad_intent_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_callable_form_wins_over_a_static_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_defaults_are_filled_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_missing_keys_are_named",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestInterfaceNormalisation.test_non_numeric_value_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_all_references_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_no_script_shadows_a_stdlib_module",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_scripts_are_executable_clis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_skill_md_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestLayout",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestLayout.test_skill_md_links_every_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_list_runs_without_build123d",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_show_reports_the_source_document",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_show_unknown_standard_lists_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_list_runs_without_build123d",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_show_reports_the_source_document",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsCli.test_show_unknown_standard_lists_alternatives",
      "target": "tests/lab-hardware-cad/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_every_standard_is_well_formed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_fit_checks_reference_real_dimensions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_get_standard_rejects_unknown_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_metric_and_imperial_grids_are_distinct",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_slas_footprint_matches_the_published_standard",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_units_are_millimetres",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase",
      "target": "tests/lab-hardware-cad/test_scripts.py#TestStandardsDatabase.test_unverified_entries_say_so_in_their_notes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#AuthParameterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tests/labarchive-integration/test_scripts.py#XmlHelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "entry_operations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "hmac",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "notebook_operations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "setup_config",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_a_custom_port_query_or_fragment_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_a_non_allowlisted_host_is_refused_and_lists_the_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_a_trailing_slash_and_mixed_case_host_are_normalised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_an_empty_url_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_embedded_credentials_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_every_documented_region_url_normalises_to_itself",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_plain_http_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ApiUrlTests",
      "target": "tests/labarchive-integration/test_scripts.py#ApiUrlTests.test_the_path_must_be_exactly_api",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#AuthParameterTests",
      "target": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_an_omitted_expiry_defaults_to_now",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#AuthParameterTests",
      "target": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_eln_parameters_carry_the_key_expiry_and_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#AuthParameterTests",
      "target": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_inventory_headers_sign_the_resolved_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#AuthParameterTests",
      "target": "tests/labarchive-integration/test_scripts.py#AuthParameterTests.test_the_password_never_appears_in_the_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests",
      "target": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests.test_anything_outside_the_documented_shape_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests",
      "target": "tests/labarchive-integration/test_scripts.py#ComponentValidationTests.test_valid_method_names_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests._inspect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_member_count_over_the_limit_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_missing_file_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_missing_manifest_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_non_zip_file_is_refused_rather_than_crashing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_traversing_member_is_reported_as_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_non_positive_limits_are_refused_outright",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_the_documented_limits_are_positive_and_ordered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_the_manifest_name_is_the_documented_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests._inspect",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_missing_manifest_is_reported",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests._inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests._inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_symlink_member_is_reported_as_an_error.build",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests.test_a_traversing_member_is_reported_as_an_error",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerLimitTests._inspect",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_backslashes_nulls_and_empty_names_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_ordinary_member_paths_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_redundant_but_harmless_segments_are_allowed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_symlink_members_are_detected_from_the_mode_bits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests",
      "target": "tests/labarchive-integration/test_scripts.py#ContainerMemberTests.test_traversal_and_absolute_paths_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_path_outside_the_public_v1_prefix_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_percent_encoded_path_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_query_or_fragment_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_a_resolved_route_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_traversal_and_ambiguous_segments_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_unresolved_placeholders_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#InventoryPathTests",
      "target": "tests/labarchive-integration/test_scripts.py#InventoryPathTests.test_whitespace_and_backslashes_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_a_negative_expiry_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_empty_inputs_are_refused_before_signing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_every_input_changes_the_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_official_vendor_vector_reproduces_exactly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_signature_is_base64_hmac_sha512_over_the_concatenation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_signature_is_uri_encoded_for_a_query_parameter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call.Args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call",
      "target": "tests/labarchive-integration/test_scripts.py#SignatureTests.test_the_self_test_command_reports_a_pass_without_a_network_call.Args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/labarchive-integration/test_scripts.py#XmlHelperTests",
      "target": "tests/labarchive-integration/test_scripts.py#XmlHelperTests.test_namespaced_tags_are_reduced_to_their_local_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#CatalogueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#ReportShapeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "inspect_latch_sdk",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "latch",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#CatalogueTests",
      "target": "tests/latchbio-integration/test_scripts.py#CatalogueTests.test_every_symbol_group_is_non_empty_and_latch_scoped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#CatalogueTests",
      "target": "tests/latchbio-integration/test_scripts.py#CatalogueTests.test_method_targets_are_also_catalogued_as_symbols",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#CatalogueTests",
      "target": "tests/latchbio-integration/test_scripts.py#CatalogueTests.test_no_symbol_is_catalogued_twice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_a_missing_sdk_exits_two_regardless_of_strict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_an_installed_sdk_exits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_json_output_parses_even_when_the_sdk_is_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_a_missing_sdk_exits_two_regardless_of_strict",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_an_installed_sdk_exits_zero",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ExitCodeTests.test_json_output_parses_even_when_the_sdk_is_absent",
      "target": "tests/latchbio-integration/test_scripts.py#ExitCodeTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests",
      "target": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests.test_an_unimportable_class_reports_one_error_not_per_method",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests",
      "target": "tests/latchbio-integration/test_scripts.py#MethodInspectionTests.test_present_and_absent_methods_are_distinguished",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests",
      "target": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_bare_addresses_are_replaced_everywhere",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests",
      "target": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_object_repr_loses_its_address",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests",
      "target": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_scrubbing_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests",
      "target": "tests/latchbio-integration/test_scripts.py#NormalizeReprTests.test_text_without_an_address_is_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ReportShapeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ReportShapeTests.test_printing_a_report_without_the_sdk_does_not_raise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ReportShapeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ReportShapeTests.test_the_report_describes_the_environment_and_every_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#ReportShapeTests",
      "target": "tests/latchbio-integration/test_scripts.py#ReportShapeTests.test_the_report_is_json_serialisable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests._report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_a_fully_available_sdk_has_no_required_failures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_an_empty_report_counts_as_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_any_single_missing_core_symbol_is_a_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_every_required_symbol_is_one_the_script_catalogues",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_a_fully_available_sdk_has_no_required_failures",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests._report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests.test_any_single_missing_core_symbol_is_a_failure",
      "target": "tests/latchbio-integration/test_scripts.py#RequiredSymbolTests._report",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests",
      "target": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests.test_a_signature_is_returned_for_an_ordinary_function",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests",
      "target": "tests/latchbio-integration/test_scripts.py#SafeSignatureTests.test_objects_without_a_signature_yield_none_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests",
      "target": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_a_missing_symbol_is_reported_without_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests",
      "target": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_an_available_symbol_is_reported_with_its_kind_and_signature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests",
      "target": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_an_unimportable_module_becomes_the_diagnostic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests",
      "target": "tests/latchbio-integration/test_scripts.py#SymbolInspectionTests.test_plain_symbols_carry_no_workflow_interface",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "tests/latex-posters/test_scripts.py#AssetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#AssetTests",
      "target": "tests/latex-posters/test_scripts.py#AssetTests.test_every_documented_asset_is_shipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_a_missing_file_exits_non_zero_and_names_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_a_missing_poppler_tool_degrades_instead_of_aborting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_every_python_script_it_invokes_is_shipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_it_is_executable_shell_with_a_shebang",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_it_parses_as_bash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_no_argument_exits_non_zero_with_usage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_a_missing_file_exits_non_zero_and_names_it",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/latex-posters/test_scripts.py#ReviewScriptTests.test_no_argument_exits_non_zero_with_usage",
      "target": "tests/latex-posters/test_scripts.py#ReviewScriptTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#ExtensionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#parse_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#SerialisationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#StubParser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tests/liteparse/test_scripts.py#text_item",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "batch_parse_dir",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_is_matched_case_insensitively",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_narrows_the_selection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_directories_are_skipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_only_supported_extensions_are_yielded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_is_matched_case_insensitively",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_is_matched_case_insensitively",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_narrows_the_selection",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_an_explicit_extension_narrows_the_selection",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_directories_are_skipped",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_only_supported_extensions_are_yielded",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_only_supported_extensions_are_yielded",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests._found",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ExtensionTests",
      "target": "tests/liteparse/test_scripts.py#ExtensionTests.test_the_default_set_is_lowercase_and_dotted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ExtensionTests",
      "target": "tests/liteparse/test_scripts.py#ExtensionTests.test_the_documented_document_and_image_families_are_covered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#parse_result",
      "target": "tests/liteparse/test_scripts.py#text_item",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests.test_a_failing_document_is_reported_not_raised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests.test_an_unknown_format_falls_back_to_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests.test_json_output_writes_the_structured_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests.test_text_output_writes_the_plain_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests",
      "target": "tests/liteparse/test_scripts.py#ParseOneTests.test_the_output_name_comes_from_the_source_stem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#ParseOneTests.setUp",
      "target": "tests/liteparse/test_scripts.py#StubParser",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#SerialisationTests",
      "target": "tests/liteparse/test_scripts.py#SerialisationTests.test_a_result_becomes_a_json_serialisable_dictionary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#SerialisationTests",
      "target": "tests/liteparse/test_scripts.py#SerialisationTests.test_a_text_item_keeps_its_position_font_and_confidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#SerialisationTests",
      "target": "tests/liteparse/test_scripts.py#SerialisationTests.test_page_geometry_and_text_items_survive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#SerialisationTests.test_a_result_becomes_a_json_serialisable_dictionary",
      "target": "tests/liteparse/test_scripts.py#parse_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#SerialisationTests.test_a_text_item_keeps_its_position_font_and_confidence",
      "target": "tests/liteparse/test_scripts.py#text_item",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#SerialisationTests.test_page_geometry_and_text_items_survive",
      "target": "tests/liteparse/test_scripts.py#parse_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#StubParser",
      "target": "tests/liteparse/test_scripts.py#StubParser.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#StubParser",
      "target": "tests/liteparse/test_scripts.py#StubParser.parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/liteparse/test_scripts.py#StubParser.parse",
      "target": "tests/liteparse/test_scripts.py#parse_result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#DependencyCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#FormattingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#PipelineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#RankingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#SummaryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "tests/literature-review/test_scripts.py#YearFilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "generate_pdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "search_databases",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests.test_an_empty_list_deduplicates_to_an_empty_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests.test_doi_comparison_ignores_case_and_surrounding_space",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests.test_records_sharing_a_doi_collapse_to_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests.test_records_with_neither_doi_nor_title_are_all_kept",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests.test_the_first_occurrence_is_the_one_kept",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DeduplicationTests",
      "target": "tests/literature-review/test_scripts.py#DeduplicationTests.test_titles_only_deduplicate_records_that_have_no_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#DependencyCheckTests",
      "target": "tests/literature-review/test_scripts.py#DependencyCheckTests.test_the_pdf_generator_reports_missing_tooling_rather_than_crashing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_an_empty_corpus_formats_without_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_an_unknown_format_is_refused_by_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_bibtex_entries_are_balanced_and_keyed_by_author_and_year",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_bibtex_falls_back_to_a_placeholder_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_bibtex_omits_fields_the_record_does_not_have",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_json_output_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_markdown_lists_every_record_with_a_resolvable_doi_link",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#FormattingTests",
      "target": "tests/literature-review/test_scripts.py#FormattingTests.test_markdown_substitutes_placeholders_for_absent_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#PipelineTests",
      "target": "tests/literature-review/test_scripts.py#PipelineTests.test_dedupe_filter_and_rank_compose_into_a_stable_corpus",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#RankingTests",
      "target": "tests/literature-review/test_scripts.py#RankingTests.test_a_missing_citation_count_sorts_last_rather_than_erroring",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#RankingTests",
      "target": "tests/literature-review/test_scripts.py#RankingTests.test_an_unknown_criterion_leaves_the_order_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#RankingTests",
      "target": "tests/literature-review/test_scripts.py#RankingTests.test_citation_ranking_puts_the_most_cited_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#RankingTests",
      "target": "tests/literature-review/test_scripts.py#RankingTests.test_ranking_does_not_mutate_the_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#RankingTests",
      "target": "tests/literature-review/test_scripts.py#RankingTests.test_relevance_ranking_uses_the_relevance_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#RankingTests",
      "target": "tests/literature-review/test_scripts.py#RankingTests.test_year_ranking_puts_the_newest_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#SummaryTests",
      "target": "tests/literature-review/test_scripts.py#SummaryTests.test_a_non_numeric_citation_count_is_skipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#SummaryTests",
      "target": "tests/literature-review/test_scripts.py#SummaryTests.test_an_empty_corpus_summarises_to_zeroes_not_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#SummaryTests",
      "target": "tests/literature-review/test_scripts.py#SummaryTests.test_citation_statistics_ignore_records_without_a_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#SummaryTests",
      "target": "tests/literature-review/test_scripts.py#SummaryTests.test_records_with_no_source_are_bucketed_as_unknown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#SummaryTests",
      "target": "tests/literature-review/test_scripts.py#SummaryTests.test_the_summary_counts_records_sources_and_years",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#YearFilterTests",
      "target": "tests/literature-review/test_scripts.py#YearFilterTests.test_an_unparseable_year_is_kept_rather_than_silently_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#YearFilterTests",
      "target": "tests/literature-review/test_scripts.py#YearFilterTests.test_both_bounds_are_inclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#YearFilterTests",
      "target": "tests/literature-review/test_scripts.py#YearFilterTests.test_each_bound_can_be_used_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#YearFilterTests",
      "target": "tests/literature-review/test_scripts.py#YearFilterTests.test_filtering_does_not_mutate_the_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/literature-review/test_scripts.py#YearFilterTests",
      "target": "tests/literature-review/test_scripts.py#YearFilterTests.test_no_bounds_keeps_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#ClaimAuditTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#ConsistencyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#ForecastTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#MarketSizingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tests/market-research-reports/test_scripts.py#ScaffoldTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "audit_claim_citations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "calculate_market_sizing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "check_unit_consistency",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "forecast_sensitivity",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "generate_report_scaffold",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "validate_competitor_matrix",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py",
      "target": "validate_evidence_ledger",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ClaimAuditTests",
      "target": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ClaimAuditTests",
      "target": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.test_synthetic_claims_are_fully_mapped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ClaimAuditTests",
      "target": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.test_uncited_forecast_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ClaimAuditTests.setUp",
      "target": "skills/market-research-reports/scripts/audit_claim_citations.py#_load_sources",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests",
      "target": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests",
      "target": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests.test_complete_synthetic_matrix_is_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests",
      "target": "tests/market-research-reports/test_scripts.py#CompetitorMatrixTests.test_incomplete_matrix_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ConsistencyTests",
      "target": "tests/market-research-reports/test_scripts.py#ConsistencyTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ConsistencyTests",
      "target": "tests/market-research-reports/test_scripts.py#ConsistencyTests.test_mixed_currency_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ConsistencyTests",
      "target": "tests/market-research-reports/test_scripts.py#ConsistencyTests.test_synthetic_comparison_group_is_consistent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests",
      "target": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_duplicate_source_id_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests",
      "target": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_not_stated_publication_date_warns_without_crashing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests",
      "target": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_retrieval_before_publication_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests",
      "target": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_synthetic_source_ledger_is_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_duplicate_source_id_fails",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_not_stated_publication_date_warns_without_crashing",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_retrieval_before_publication_fails",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#EvidenceLedgerTests.test_synthetic_source_ledger_is_valid",
      "target": "skills/market-research-reports/scripts/validate_evidence_ledger.py#validate_records",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests",
      "target": "tests/market-research-reports/test_scripts.py#ForecastTests.test_horizon_rejects_float_string_and_boolean_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests",
      "target": "tests/market-research-reports/test_scripts.py#ForecastTests.test_synthetic_forecast_returns_range_and_sensitivity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests",
      "target": "tests/market-research-reports/test_scripts.py#ForecastTests.test_unvalidated_probability_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests.test_horizon_rejects_float_string_and_boolean_values",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests.test_horizon_rejects_float_string_and_boolean_values",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests.test_synthetic_forecast_returns_range_and_sensitivity",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests.test_synthetic_forecast_returns_range_and_sensitivity",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests.test_unvalidated_probability_is_rejected",
      "target": "skills/market-research-reports/scripts/forecast_sensitivity.py#forecast",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ForecastTests.test_unvalidated_probability_is_rejected",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#MarketSizingTests",
      "target": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_duplicate_coverage_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#MarketSizingTests",
      "target": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_inconsistent_denominator_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#MarketSizingTests",
      "target": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_synthetic_sizing_reconciles_and_returns_scenarios",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_duplicate_coverage_key_is_rejected",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_inconsistent_denominator_is_rejected",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#MarketSizingTests.test_synthetic_sizing_reconciles_and_returns_scenarios",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ScaffoldTests",
      "target": "tests/market-research-reports/test_scripts.py#ScaffoldTests.test_scaffold_creates_only_expected_local_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/market-research-reports/test_scripts.py#ScaffoldTests.test_scaffold_creates_only_expected_local_files",
      "target": "tests/market-research-reports/test_scripts.py#load_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#DigestTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#InstallationReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#OutputPathTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tests/markitdown/test_scripts.py#YamlScalarTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "batch_convert",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "convert_literature",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "inspect_installation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "target": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_an_existing_file_is_replaced_wholesale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "target": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_no_temporary_file_survives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "target": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_non_ascii_content_survives_the_round_trip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "target": "tests/markitdown/test_scripts.py#AtomicWriteTests.test_the_content_lands_at_the_destination",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#AtomicWriteTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DigestTests",
      "target": "tests/markitdown/test_scripts.py#DigestTests.test_a_file_larger_than_one_chunk_is_hashed_whole",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DigestTests",
      "target": "tests/markitdown/test_scripts.py#DigestTests.test_an_empty_file_hashes_to_the_empty_digest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DigestTests",
      "target": "tests/markitdown/test_scripts.py#DigestTests.test_the_digest_matches_hashlib",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DigestTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTestCase.touch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests.test_an_empty_directory_yields_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests.test_directories_are_never_returned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests.test_only_the_requested_extensions_are_returned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests",
      "target": "tests/markitdown/test_scripts.py#DiscoveryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests.test_matching_is_case_insensitive",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests.test_only_the_requested_extensions_are_returned",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests.test_recursion_is_opt_in",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/markitdown/test_scripts.py#DiscoveryTests.test_the_order_is_deterministic",
      "target": "tests/liteparse/test_scripts.py#DiscoveryTests.touch",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_a_lone_dot_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_an_empty_selection_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_blank_entries_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_extensions_are_lowercased_dotted_and_deduplicated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_the_defaults_are_sorted_lowercase_and_dotted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_the_defaults_carry_no_audio_or_video_formats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#ExtensionTests",
      "target": "tests/markitdown/test_scripts.py#ExtensionTests.test_the_result_is_sorted_so_runs_are_reproducible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#InstallationReportTests",
      "target": "tests/markitdown/test_scripts.py#InstallationReportTests.test_an_absent_distribution_reports_none_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#InstallationReportTests",
      "target": "tests/markitdown/test_scripts.py#InstallationReportTests.test_an_installed_distribution_reports_its_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#InstallationReportTests",
      "target": "tests/markitdown/test_scripts.py#InstallationReportTests.test_the_report_is_json_serialisable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#InstallationReportTests",
      "target": "tests/markitdown/test_scripts.py#InstallationReportTests.test_the_report_names_the_target_version_and_optional_extras",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "target": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_a_multi_word_author_is_kept_whole",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "target": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_an_author_year_title_filename_is_parsed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "target": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_an_unstructured_filename_still_yields_a_readable_title",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "target": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_only_plausible_years_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#MetadataInferenceTests",
      "target": "tests/markitdown/test_scripts.py#MetadataInferenceTests.test_runs_of_whitespace_are_collapsed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#OutputPathTests",
      "target": "tests/markitdown/test_scripts.py#OutputPathTests.test_the_directory_layout_is_mirrored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#OutputPathTests",
      "target": "tests/markitdown/test_scripts.py#OutputPathTests.test_the_source_suffix_is_kept_in_the_output_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#YamlScalarTests",
      "target": "tests/markitdown/test_scripts.py#YamlScalarTests.test_non_ascii_is_preserved_rather_than_escaped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#YamlScalarTests",
      "target": "tests/markitdown/test_scripts.py#YamlScalarTests.test_ordinary_text_is_quoted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/markitdown/test_scripts.py#YamlScalarTests",
      "target": "tests/markitdown/test_scripts.py#YamlScalarTests.test_quotes_and_colons_are_escaped_safely",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#FakeScores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#HitWritingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#metric_choices",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#MetricTableTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#score_record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#SuffixPolicyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#ValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tests/matchms/test_scripts.py#VersionPinTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "library_search",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "matchms",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "matchms.similarity.BaseSimilarity",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_library_that_processing_empties_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_match_threshold_above_the_peak_count_reports_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_an_identical_reference_is_reported_with_a_perfect_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_main_turns_a_validation_error_into_exit_code_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_the_pair_budget_stops_the_search_before_it_starts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_top_k_limits_the_reported_hits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_library_that_processing_empties_is_reported",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_match_threshold_above_the_peak_count_reports_nothing",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_a_match_threshold_above_the_peak_count_reports_nothing",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_an_identical_reference_is_reported_with_a_perfect_score",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_an_identical_reference_is_reported_with_a_perfect_score",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_the_pair_budget_stops_the_search_before_it_starts",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_top_k_limits_the_reported_hits",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#EndToEndSearchTests.test_top_k_limits_the_reported_hits",
      "target": "tests/matchms/test_scripts.py#EndToEndSearchTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#FakeScores",
      "target": "tests/matchms/test_scripts.py#FakeScores.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#FakeScores",
      "target": "tests/matchms/test_scripts.py#FakeScores.scores_by_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#FakeSpectrum",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#FakeSpectrum",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum.get",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_a_non_finite_score_is_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_a_reference_outside_the_library_is_an_error_not_a_blank_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_a_scalar_score_survives_a_match_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_a_score_exactly_at_the_threshold_is_kept",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_an_empty_ranking_still_writes_a_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_hits_are_numbered_from_one_and_carry_reference_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_scores_are_written_with_enough_precision_to_be_reproducible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_the_match_count_threshold_is_inclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_the_writer_asks_for_a_sorted_ranking_by_the_score_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.test_top_k_truncates_after_the_filters_not_before",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "target": "tests/matchms/test_scripts.py#score_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.setUp",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_non_finite_score_is_dropped",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_non_finite_score_is_dropped",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_reference_outside_the_library_is_an_error_not_a_blank_row",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_reference_outside_the_library_is_an_error_not_a_blank_row",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_reference_outside_the_library_is_an_error_not_a_blank_row",
      "target": "tests/matchms/test_scripts.py#score_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_scalar_score_survives_a_match_threshold",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_score_exactly_at_the_threshold_is_kept",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_a_score_exactly_at_the_threshold_is_kept",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_an_empty_ranking_still_writes_a_header",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_hits_are_numbered_from_one_and_carry_reference_metadata",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_hits_are_numbered_from_one_and_carry_reference_metadata",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_scores_are_written_with_enough_precision_to_be_reproducible",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_scores_are_written_with_enough_precision_to_be_reproducible",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_the_match_count_threshold_is_inclusive",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_the_match_count_threshold_is_inclusive",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_the_writer_asks_for_a_sorted_ranking_by_the_score_field",
      "target": "tests/matchms/test_scripts.py#FakeScores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_the_writer_asks_for_a_sorted_ranking_by_the_score_field",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_the_writer_asks_for_a_sorted_ranking_by_the_score_field",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_top_k_truncates_after_the_filters_not_before",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.ranked",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.test_top_k_truncates_after_the_filters_not_before",
      "target": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "target": "tests/matchms/test_scripts.py#FakeScores",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#HitWritingTests.write",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests",
      "target": "tests/matchms/test_scripts.py#MetricTableTests.test_an_unknown_metric_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests",
      "target": "tests/matchms/test_scripts.py#MetricTableTests.test_blink_receives_the_intensity_and_score_cutoffs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests",
      "target": "tests/matchms/test_scripts.py#MetricTableTests.test_each_metric_name_selects_the_documented_matchms_class",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests",
      "target": "tests/matchms/test_scripts.py#MetricTableTests.test_every_advertised_metric_builds_a_similarity_object",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests",
      "target": "tests/matchms/test_scripts.py#MetricTableTests.test_the_metric_sets_only_name_metrics_the_parser_offers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests",
      "target": "tests/matchms/test_scripts.py#MetricTableTests.test_the_three_flash_metrics_differ_in_score_type_and_matching_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_an_unknown_metric_is_refused",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_blink_receives_the_intensity_and_score_cutoffs",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_each_metric_name_selects_the_documented_matchms_class",
      "target": "tests/matchms/test_scripts.py#metric_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_each_metric_name_selects_the_documented_matchms_class",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_every_advertised_metric_builds_a_similarity_object",
      "target": "tests/matchms/test_scripts.py#metric_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_every_advertised_metric_builds_a_similarity_object",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_the_metric_sets_only_name_metrics_the_parser_offers",
      "target": "tests/matchms/test_scripts.py#metric_choices",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#MetricTableTests.test_the_three_flash_metrics_differ_in_score_type_and_matching_mode",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_a_precursor_window_forces_the_precursor_requirement",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_each_switch_adds_exactly_its_own_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_metadata_filters_run_before_the_peak_filters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_precursor_metrics_require_a_precursor_and_others_do_not",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_disabling_flags_actually_remove_steps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_optional_filters_are_absent_by_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_same_chain_is_used_for_queries_and_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.test_zero_thresholds_disable_their_filters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_a_precursor_window_forces_the_precursor_requirement",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_a_precursor_window_forces_the_precursor_requirement",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_each_switch_adds_exactly_its_own_filter",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_each_switch_adds_exactly_its_own_filter",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_metadata_filters_run_before_the_peak_filters",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_metadata_filters_run_before_the_peak_filters",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_precursor_metrics_require_a_precursor_and_others_do_not",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_precursor_metrics_require_a_precursor_and_others_do_not",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_disabling_flags_actually_remove_steps",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_disabling_flags_actually_remove_steps",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_optional_filters_are_absent_by_default",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_optional_filters_are_absent_by_default",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_same_chain_is_used_for_queries_and_references",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_the_same_chain_is_used_for_queries_and_references",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_zero_thresholds_disable_their_filters",
      "target": "tests/matchms/test_scripts.py#ProcessingChainTests.step_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ProcessingChainTests.test_zero_thresholds_disable_their_filters",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "target": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_field_the_record_does_not_carry_is_not_invented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "target": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_metric_without_a_score_suffix_falls_back_to_the_first_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "target": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_scalar_score_is_read_directly_and_reports_no_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "target": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_structured_record_is_read_field_by_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests",
      "target": "tests/matchms/test_scripts.py#ScoreRecordTests.test_the_score_field_is_the_one_ending_in_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_field_the_record_does_not_carry_is_not_invented",
      "target": "tests/matchms/test_scripts.py#score_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_scalar_score_is_read_directly_and_reports_no_matches",
      "target": "tests/matchms/test_scripts.py#score_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ScoreRecordTests.test_a_structured_record_is_read_field_by_field",
      "target": "tests/matchms/test_scripts.py#score_record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_a_numeric_identifier_is_stringified",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_an_empty_value_is_skipped_rather_than_used",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_an_unidentified_spectrum_falls_back_to_prefix_and_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_missing_metadata_becomes_an_empty_cell_not_the_word_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_the_default_order_prefers_spectrum_id_over_a_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests",
      "target": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_the_preferred_field_wins_over_every_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_a_numeric_identifier_is_stringified",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_an_empty_value_is_skipped_rather_than_used",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_an_unidentified_spectrum_falls_back_to_prefix_and_index",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_missing_metadata_becomes_an_empty_cell_not_the_word_none",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_the_default_order_prefers_spectrum_id_over_a_name",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SpectrumIdentityTests.test_the_preferred_field_wins_over_every_default",
      "target": "tests/matchms/test_scripts.py#FakeSpectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SuffixPolicyTests",
      "target": "tests/matchms/test_scripts.py#SuffixPolicyTests.test_every_suffix_is_lowercase_and_dotted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#SuffixPolicyTests",
      "target": "tests/matchms/test_scripts.py#SuffixPolicyTests.test_pickle_suffixes_are_never_also_supported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_a_missing_input_is_reported_by_role",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_a_missing_output_directory_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_a_valid_invocation_passes_silently",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_an_existing_output_needs_force",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_an_inverted_mz_window_is_refused_but_one_sided_is_fine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_an_unsupported_suffix_lists_the_formats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_every_supported_suffix_is_accepted_in_both_positions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_min_matches_is_refused_for_metrics_that_report_no_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_numeric_bounds_are_enforced_at_the_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_pickle_input_is_refused_with_the_reason",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_the_inclusive_ends_of_each_range_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests",
      "target": "tests/matchms/test_scripts.py#ValidationTests.test_uppercase_suffixes_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.args",
      "target": "tests/matchms/test_scripts.py#search_namespace",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_a_missing_input_is_reported_by_role",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_a_missing_output_directory_is_refused",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_a_valid_invocation_passes_silently",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_an_existing_output_needs_force",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_an_inverted_mz_window_is_refused_but_one_sided_is_fine",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_an_unsupported_suffix_lists_the_formats",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_every_supported_suffix_is_accepted_in_both_positions",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_min_matches_is_refused_for_metrics_that_report_no_matches",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_numeric_bounds_are_enforced_at_the_boundary",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_pickle_input_is_refused_with_the_reason",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_the_inclusive_ends_of_each_range_are_accepted",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#ValidationTests.test_uppercase_suffixes_are_accepted",
      "target": "tests/matchms/test_scripts.py#ValidationTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#VersionPinTests",
      "target": "tests/matchms/test_scripts.py#VersionPinTests.test_the_documented_target_matches_the_skill_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matchms/test_scripts.py#VersionPinTests",
      "target": "tests/matchms/test_scripts.py#VersionPinTests.test_the_installed_version_is_reported_rather_than_assumed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#CommandPlannerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#DependencyFreeHelpTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#MatInventoryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#PythonCompatibilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#StaticScannerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tests/matlab/test_scripts.py#valid_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "h5py",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "scipy.io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#CommandPlannerTests",
      "target": "tests/matlab/test_scripts.py#CommandPlannerTests.test_matlab_script_and_function_plans_never_execute",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#CommandPlannerTests",
      "target": "tests/matlab/test_scripts.py#CommandPlannerTests.test_octave_plan_uses_no_init_and_traversal_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#CommandPlannerTests.test_matlab_script_and_function_plans_never_execute",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#CommandPlannerTests.test_matlab_script_and_function_plans_never_execute",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#CommandPlannerTests.test_octave_plan_uses_no_init_and_traversal_fails",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#CommandPlannerTests.test_octave_plan_uses_no_init_and_traversal_fails",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#DependencyFreeHelpTests",
      "target": "tests/matlab/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests",
      "target": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_manifest_validates_without_claiming_license_verification",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests",
      "target": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_reproducibility_report_is_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_manifest_validates_without_claiming_license_verification",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_manifest_validates_without_claiming_license_verification",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_manifest_validates_without_claiming_license_verification",
      "target": "tests/matlab/test_scripts.py#valid_manifest",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_reproducibility_report_is_deterministic",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#ManifestAndReproducibilityTests.test_reproducibility_report_is_deterministic",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests",
      "target": "tests/matlab/test_scripts.py#MatInventoryTests.test_header_only_inventory_and_pickle_refusal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests",
      "target": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_h5py_metadata_smoke",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests",
      "target": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_scipy_metadata_smoke",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests.test_header_only_inventory_and_pickle_refusal",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests.test_header_only_inventory_and_pickle_refusal",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_h5py_metadata_smoke",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_h5py_metadata_smoke",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_scipy_metadata_smoke",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#MatInventoryTests.test_optional_scipy_metadata_smoke",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#PythonCompatibilityTests",
      "target": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_r2026a_exact_support_and_engine_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#PythonCompatibilityTests",
      "target": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_unsupported_python_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_r2026a_exact_support_and_engine_version",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_r2026a_exact_support_and_engine_version",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_unsupported_python_fails_closed",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#PythonCompatibilityTests.test_unsupported_python_fails_closed",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#StaticScannerTests",
      "target": "tests/matlab/test_scripts.py#StaticScannerTests.test_generated_scaffolds_are_clean_at_high_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#StaticScannerTests",
      "target": "tests/matlab/test_scripts.py#StaticScannerTests.test_risk_surfaces_and_opaque_mex_are_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#StaticScannerTests.test_generated_scaffolds_are_clean_at_high_threshold",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#StaticScannerTests.test_generated_scaffolds_are_clean_at_high_threshold",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#StaticScannerTests.test_risk_surfaces_and_opaque_mex_are_reported",
      "target": "tests/matlab/test_scripts.py#parsed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_scripts.py#StaticScannerTests.test_risk_surfaces_and_opaque_mex_are_reported",
      "target": "tests/matlab/test_scripts.py#run_cli",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "tests/matlab/test_static.py#CurrentReleaseTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "tests/matlab/test_static.py#ScriptSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "tests/matlab/test_static.py#SkillStructureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#CurrentReleaseTests",
      "target": "tests/matlab/test_static.py#CurrentReleaseTests.test_no_stale_execution_or_install_patterns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#CurrentReleaseTests",
      "target": "tests/matlab/test_static.py#CurrentReleaseTests.test_r2026a_python_record_is_exact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#ScriptSafetyTests",
      "target": "tests/matlab/test_static.py#ScriptSafetyTests.test_cli_inventory_and_documentation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#ScriptSafetyTests",
      "target": "tests/matlab/test_static.py#ScriptSafetyTests.test_no_bytecode_or_generated_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#ScriptSafetyTests",
      "target": "tests/matlab/test_static.py#ScriptSafetyTests.test_scripts_have_no_execution_network_or_unsafe_serialization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#ScriptSafetyTests",
      "target": "tests/matlab/test_static.py#ScriptSafetyTests.test_scripts_parse_and_optional_imports_are_lazy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#SkillStructureTests",
      "target": "tests/matlab/test_static.py#SkillStructureTests.test_assets_are_strict_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#SkillStructureTests",
      "target": "tests/matlab/test_static.py#SkillStructureTests.test_exactly_eight_dated_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#SkillStructureTests",
      "target": "tests/matlab/test_static.py#SkillStructureTests.test_external_sources_use_allowed_official_domains",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#SkillStructureTests",
      "target": "tests/matlab/test_static.py#SkillStructureTests.test_frontmatter_and_progressive_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#SkillStructureTests",
      "target": "tests/matlab/test_static.py#SkillStructureTests.test_local_markdown_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matlab/test_static.py#SkillStructureTests",
      "target": "tests/matlab/test_static.py#SkillStructureTests.test_security_and_product_boundaries_are_explicit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tests/matplotlib/test_scripts.py#CompositeFigureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tests/matplotlib/test_scripts.py#FigureTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tests/matplotlib/test_scripts.py#SampleDataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tests/matplotlib/test_scripts.py#StyleFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "plot_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "style_configurator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#CompositeFigureTests",
      "target": "tests/matplotlib/test_scripts.py#CompositeFigureTests.test_the_comprehensive_figure_renders_and_saves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#CompositeFigureTests",
      "target": "tests/matplotlib/test_scripts.py#CompositeFigureTests.test_the_style_preview_renders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#CompositeFigureTests",
      "target": "tests/matplotlib/test_scripts.py#FigureTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#FigureTestCase",
      "target": "tests/matplotlib/test_scripts.py#FigureTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "target": "tests/matplotlib/test_scripts.py#PlotBuilderTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "target": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_builders_create_their_own_axes_when_none_is_supplied",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "target": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_every_builder_draws_onto_the_axes_it_is_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "target": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_every_builder_labels_its_axes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "target": "tests/matplotlib/test_scripts.py#PlotBuilderTests.test_the_publication_style_applies_without_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#PlotBuilderTests",
      "target": "tests/matplotlib/test_scripts.py#FigureTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#SampleDataTests",
      "target": "tests/matplotlib/test_scripts.py#SampleDataTests.test_the_preview_data_is_deterministic_too",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#SampleDataTests",
      "target": "tests/matplotlib/test_scripts.py#SampleDataTests.test_the_sample_data_covers_every_plot_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#SampleDataTests",
      "target": "tests/matplotlib/test_scripts.py#SampleDataTests.test_the_sample_data_is_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StyleFileTests",
      "target": "tests/matplotlib/test_scripts.py#StyleFileTests.test_a_saved_style_is_loadable_by_matplotlib",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StyleFileTests",
      "target": "tests/matplotlib/test_scripts.py#StyleFileTests.test_an_empty_style_still_writes_a_valid_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StyleFileTests",
      "target": "tests/matplotlib/test_scripts.py#StyleFileTests.test_sequence_values_are_written_comma_separated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StyleFileTests",
      "target": "tests/matplotlib/test_scripts.py#StyleFileTests.test_the_file_is_commented_and_grouped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "target": "tests/matplotlib/test_scripts.py#StylePresetTests.test_every_documented_preset_is_defined",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "target": "tests/matplotlib/test_scripts.py#StylePresetTests.test_every_preset_applies_cleanly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "target": "tests/matplotlib/test_scripts.py#StylePresetTests.test_every_preset_key_is_a_real_rcparam",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "target": "tests/matplotlib/test_scripts.py#StylePresetTests.test_presets_exist_and_are_named_dictionaries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/matplotlib/test_scripts.py#StylePresetTests",
      "target": "tests/matplotlib/test_scripts.py#StylePresetTests.test_the_publication_preset_saves_at_print_resolution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#ChemicalGroupTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#LillyFilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#RuleFilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "filter_molecules",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ChemicalGroupTests",
      "target": "tests/medchem/test_scripts.py#ChemicalGroupTests.test_an_unrecognised_group_reports_no_matches_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ChemicalGroupTests",
      "target": "tests/medchem/test_scripts.py#ChemicalGroupTests.test_one_boolean_column_is_produced_per_requested_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ChemicalGroupTests.test_an_unrecognised_group_reports_no_matches_rather_than_raising",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ChemicalGroupTests.test_one_boolean_column_is_produced_per_requested_group",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "target": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_generous_complexity_percentile_keeps_a_simple_molecule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "target": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_malformed_query_raises_instead_of_admitting_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "target": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_negated_query_inverts_the_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "target": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_query_can_both_admit_and_reject_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests",
      "target": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_the_complexity_column_records_the_metric_used",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_generous_complexity_percentile_keeps_a_simple_molecule",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_malformed_query_raises_instead_of_admitting_everything",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_negated_query_inverts_the_verdict",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_a_query_can_both_admit_and_reject_molecules",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#ComplexityAndQueryTests.test_the_complexity_column_records_the_metric_used",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LillyFilterTests",
      "target": "tests/medchem/test_scripts.py#LillyFilterTests.test_a_missing_lilly_installation_yields_a_null_column_of_the_right_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LillyFilterTests.test_a_missing_lilly_installation_yields_a_null_column_of_the_right_length",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_csv_is_read_with_its_extra_columns_preserved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_file_of_only_bad_smiles_yields_nothing_rather_than_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_header_only_csv_loads_zero_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_missing_smiles_column_exits_rather_than_guessing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_named_smiles_column_is_honoured",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_plain_text_file_treats_each_line_as_a_smiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_tsv_is_split_on_tabs_not_commas",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_an_sdf_carries_its_properties_into_the_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_an_unparseable_smiles_drops_its_row_too",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_an_unsupported_extension_exits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_the_extension_check_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests",
      "target": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#LoadMoleculesTests.test_a_csv_is_read_with_its_extra_columns_preserved",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests",
      "target": "tests/medchem/test_scripts.py#RuleFilterTests.test_an_unknown_rule_is_refused_rather_than_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests",
      "target": "tests/medchem/test_scripts.py#RuleFilterTests.test_rule_of_five_accepts_a_small_molecule_and_rejects_a_pentapeptide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests",
      "target": "tests/medchem/test_scripts.py#RuleFilterTests.test_several_rules_produce_one_column_each_plus_the_aggregates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests",
      "target": "tests/medchem/test_scripts.py#RuleFilterTests.test_the_molecule_objects_are_not_carried_into_the_output_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests",
      "target": "tests/medchem/test_scripts.py#RuleFilterTests.test_the_rule_names_the_cli_validates_against_include_the_documented_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests.test_an_unknown_rule_is_refused_rather_than_ignored",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests.test_rule_of_five_accepts_a_small_molecule_and_rejects_a_pentapeptide",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests.test_several_rules_produce_one_column_each_plus_the_aggregates",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#RuleFilterTests.test_the_molecule_objects_are_not_carried_into_the_output_frame",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests.test_common_alerts_columns_are_renamed_to_the_passes_convention",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests.test_common_alerts_pass_caffeine_and_exclude_catechol",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests.test_each_requested_catalog_is_yielded_separately",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests.test_nibr_columns_are_renamed_too",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests.test_nibr_passes_caffeine_and_excludes_catechol",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests",
      "target": "tests/medchem/test_scripts.py#StructuralAlertTests.test_the_pains_catalog_flags_catechol_and_leaves_caffeine_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests.test_common_alerts_columns_are_renamed_to_the_passes_convention",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests.test_common_alerts_pass_caffeine_and_exclude_catechol",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests.test_each_requested_catalog_is_yielded_separately",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests.test_nibr_columns_are_renamed_too",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests.test_nibr_passes_caffeine_and_excludes_catechol",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#StructuralAlertTests.test_the_pains_catalog_flags_catechol_and_leaves_caffeine_alone",
      "target": "tests/medchem/test_scripts.py#molecules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.test_a_frame_with_no_filter_columns_reports_only_the_total",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.test_a_non_boolean_filter_column_is_skipped_not_summed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.test_an_empty_result_set_does_not_divide_by_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.test_counts_and_percentages_are_reported_per_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.test_the_aggregate_pass_all_column_is_counted_as_a_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.test_the_summary_sits_beside_the_output_and_takes_its_stem",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests",
      "target": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests.test_a_frame_with_no_filter_columns_reports_only_the_total",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests.test_a_non_boolean_filter_column_is_skipped_not_summed",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests.test_an_empty_result_set_does_not_divide_by_zero",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests.test_counts_and_percentages_are_reported_per_filter",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests.test_the_aggregate_pass_all_column_is_counted_as_a_filter",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#SummaryReportTests.test_the_summary_sits_beside_the_output_and_takes_its_stem",
      "target": "tests/medchem/test_scripts.py#SummaryReportTests.summarize",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/medchem/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#_load_client",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#_load_client",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#NormalizationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#normalize_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#RenderingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "email.message",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py",
      "target": "urllib.request",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_manifests_record_the_actual_network_stage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_retention_is_best_effort_and_does_not_mask_original",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_main_exit_code_mapping_for_local_and_response_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_malformed_response_is_retained_without_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_normalize_command_never_posts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_output_directory_policy_and_atomic_no_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_oversized_query_retains_request_and_manifest_but_no_partial_response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_partial_graph_command_retains_all_artifacts_and_exits_seven",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_preflight_with_output_has_get_manifest_and_no_request_artifact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_summarize_is_offline_and_preserves_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_zero_result_and_normalization_no_result_statuses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_manifests_record_the_actual_network_stage",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_manifests_record_the_actual_network_stage",
      "target": "tests/ncats-arax/test_scripts.py#normalize_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_manifests_record_the_actual_network_stage",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_failure_manifests_record_the_actual_network_stage",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response",
      "target": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_graph_command_posts_saved_bytes_and_hashes_exact_response.fake_post",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_main_exit_code_mapping_for_local_and_response_errors",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_malformed_response_is_retained_without_summary",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_malformed_response_is_retained_without_summary",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_normalize_command_never_posts",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_normalize_command_never_posts",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_oversized_query_retains_request_and_manifest_but_no_partial_response",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_oversized_query_retains_request_and_manifest_but_no_partial_response",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_oversized_query_retains_request_and_manifest_but_no_partial_response",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_partial_graph_command_retains_all_artifacts_and_exits_seven",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_partial_graph_command_retains_all_artifacts_and_exits_seven",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_preflight_with_output_has_get_manifest_and_no_request_artifact",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_preflight_with_output_has_get_manifest_and_no_request_artifact",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_summarize_is_offline_and_preserves_inputs",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_summarize_is_offline_and_preserves_inputs",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_zero_result_and_normalization_no_result_statuses",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_zero_result_and_normalization_no_result_statuses",
      "target": "tests/ncats-arax/test_scripts.py#normalize_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_zero_result_and_normalization_no_result_statuses",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ArtifactAndCommandTests.test_zero_result_and_normalization_no_result_statuses",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse.__enter__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse.__exit__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse.close",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse.getcode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse.read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#fixture_json",
      "target": "tests/ncats-arax/test_scripts.py#fixture_bytes",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.bound_node_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_service",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_01_production_openapi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_02_production_accepts_rtx_kg2_lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_03_normalize_ivacaftor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_04_pinned_imatinib_abl1_one_hop",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_06_imatinib_gene_cml_contains_abl1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_07_wrong_direction_does_not_return_abl1_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_08_selected_provider_federation_is_bounded_and_provenanced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_service",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_01_production_openapi",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_service",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_02_production_accepts_rtx_kg2_lookup",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_02_production_accepts_rtx_kg2_lookup",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_03_normalize_ivacaftor",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_service",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_04_pinned_imatinib_abl1_one_hop",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_04_pinned_imatinib_abl1_one_hop",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.bound_node_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_05_ivacaftor_gene_cystic_fibrosis_contains_cftr",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_06_imatinib_gene_cml_contains_abl1",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.bound_node_ids",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_06_imatinib_gene_cml_contains_abl1",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_06_imatinib_gene_cml_contains_abl1",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_07_wrong_direction_does_not_return_abl1_path",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_07_wrong_direction_does_not_return_abl1_path",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_08_selected_provider_federation_is_bounded_and_provenanced",
      "target": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.live_query",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#LiveSmokeTests.test_08_selected_provider_federation_is_bounded_and_provenanced",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests",
      "target": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_curie_input_does_not_require_normalization_confirmation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests",
      "target": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_nested_normalization_match_and_mismatch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests",
      "target": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_no_usable_normalization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_curie_input_does_not_require_normalization_confirmation",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_curie_input_does_not_require_normalization_confirmation",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_nested_normalization_match_and_mismatch",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_nested_normalization_match_and_mismatch",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#NormalizationTests.test_no_usable_normalization",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_headers_timeout_and_http_date_retry_after",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_retries_one_retryable_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_retries_timeout_but_not_other_transport",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_known_version_skew_warns_and_unknown_override_warns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_minimal_openapi_parses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_openapi_title_path_and_version_failures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_oversized_success_and_http_error_preserve_exit_and_attempts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_post_never_retries_and_uses_identity_encoding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_query_response_version_policy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_redirects_are_https_and_same_origin_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_response_byte_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_retry_after_is_capped_and_invalid_defaults",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_headers_timeout_and_http_date_retry_after",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_headers_timeout_and_http_date_retry_after.opened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_headers_timeout_and_http_date_retry_after.opened",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_retries_one_retryable_status",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_get_retries_timeout_but_not_other_transport",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_known_version_skew_warns_and_unknown_override_warns",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_minimal_openapi_parses",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_openapi_title_path_and_version_failures",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_oversized_success_and_http_error_preserve_exit_and_attempts",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_post_never_retries_and_uses_identity_encoding",
      "target": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_post_never_retries_and_uses_identity_encoding.fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_redirects_are_https_and_same_origin_only",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#OpenApiAndTransportTests.test_response_byte_limit",
      "target": "tests/ncats-arax/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests",
      "target": "tests/ncats-arax/test_scripts.py#RenderingTests.test_all_remote_scalar_fields_are_terminal_safe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests",
      "target": "tests/ncats-arax/test_scripts.py#RenderingTests.test_display_text_removes_controls_and_caps_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests",
      "target": "tests/ncats-arax/test_scripts.py#RenderingTests.test_text_is_cautious_bounded_and_points_to_raw_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests.test_all_remote_scalar_fields_are_terminal_safe",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests.test_all_remote_scalar_fields_are_terminal_safe",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests.test_all_remote_scalar_fields_are_terminal_safe",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests.test_text_is_cautious_bounded_and_points_to_raw_artifacts",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests.test_text_is_cautious_bounded_and_points_to_raw_artifacts",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RenderingTests.test_text_is_cautious_bounded_and_points_to_raw_artifacts",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_deterministic_non_ascii_serialization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_empty_qualifiers_are_omitted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_federation_uses_one_list_valued_kp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_fixed_actions_exclude_banned_workflows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_one_hop_exact_shape_and_and_qualifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_saved_request_validator_rejects_escape_hatches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_strict_json_rejects_nonfinite_numbers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests",
      "target": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_two_hop_right_and_left_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_deterministic_non_ascii_serialization",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_empty_qualifiers_are_omitted",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_federation_uses_one_list_valued_kp",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_fixed_actions_exclude_banned_workflows",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_one_hop_exact_shape_and_and_qualifiers",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_saved_request_validator_rejects_escape_hatches",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#RequestBuilderTests.test_two_hop_right_and_left_first",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_explicit_pruning_confirms_truncation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_informational_timeout_and_prune_configuration_do_not_mark_partial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_malformed_message_graph_and_binding_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_missing_publications_and_auxiliary_graph",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_one_hop_bindings_multiple_analyses_and_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_partial_federation_is_retained",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_publications_are_deduplicated_within_each_edge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_reversed_edge_is_flagged_and_not_rewritten",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_truncation_states",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_two_hop_preserves_refined_predicate_and_support_graph",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_zero_results_are_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_explicit_pruning_confirms_truncation",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_explicit_pruning_confirms_truncation",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_explicit_pruning_confirms_truncation",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_informational_timeout_and_prune_configuration_do_not_mark_partial",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_informational_timeout_and_prune_configuration_do_not_mark_partial",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_informational_timeout_and_prune_configuration_do_not_mark_partial",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_malformed_message_graph_and_binding_fail",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_malformed_message_graph_and_binding_fail",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_malformed_message_graph_and_binding_fail",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_missing_publications_and_auxiliary_graph",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_missing_publications_and_auxiliary_graph",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_missing_publications_and_auxiliary_graph",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_missing_publications_and_auxiliary_graph",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_one_hop_bindings_multiple_analyses_and_provenance",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_one_hop_bindings_multiple_analyses_and_provenance",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_one_hop_bindings_multiple_analyses_and_provenance",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_partial_federation_is_retained",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_partial_federation_is_retained",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_publications_are_deduplicated_within_each_edge",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_publications_are_deduplicated_within_each_edge",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_publications_are_deduplicated_within_each_edge",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_reversed_edge_is_flagged_and_not_rewritten",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_truncation_states",
      "target": "tests/ncats-arax/test_scripts.py#fixture_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_truncation_states",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_truncation_states",
      "target": "tests/ncats-arax/test_scripts.py#service_info",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_two_hop_preserves_refined_predicate_and_support_graph",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_two_hop_preserves_refined_predicate_and_support_graph",
      "target": "tests/ncats-arax/test_scripts.py#two_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ResponseParserTests.test_zero_results_are_valid",
      "target": "tests/ncats-arax/test_scripts.py#ResponseParserTests.parse_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_base_url_policy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_biolink_and_provider_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_curie_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_mode_provider_and_result_caps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_one_hop_requires_a_pinned_endpoint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_parser_exposes_no_arbitrary_or_batch_query_surface",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_qualifier_limits_and_duplicate_types",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests",
      "target": "tests/ncats-arax/test_scripts.py#ValidationTests.test_repeated_endpoint_flag_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ncats-arax/test_scripts.py#ValidationTests.test_one_hop_requires_a_pinned_endpoint",
      "target": "tests/ncats-arax/test_scripts.py#one_hop_body",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "ecg_hrv_pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "eda_pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "generate_synthetic",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "inspect_signal",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "plan_epochs",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py",
      "target": "validate_multimodal",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests",
      "target": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_epoch_planner_reports_sample_exact_boundaries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests",
      "target": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_multimodal_validator_detects_resampling_need",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests",
      "target": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_synthetic_generation_is_deterministic_and_inspectable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_epoch_planner_reports_sample_exact_boundaries",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_multimodal_validator_detects_resampling_need",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#DependencyFreeWorkflowTests.test_synthetic_generation_is_deterministic_and_inspectable",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests",
      "target": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests.test_pinned_synthetic_eda_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests",
      "target": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests.test_pinned_version_and_synthetic_ecg_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests.test_pinned_synthetic_eda_pipeline",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#PinnedNeuroKitSmokeTests.test_pinned_version_and_synthetic_ecg_pipeline",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "target": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_build_parsers_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "target": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_every_cli_help_works_without_site_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "target": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_scripts_parse_without_dynamic_execution_or_network_imports",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "target": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_skill_version_license_references_and_progressive_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests",
      "target": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_strict_local_io_rejects_url_symlink_duplicates_and_nan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neurokit2/test_scripts.py#SafetyAndManifestTests.test_every_cli_help_works_without_site_packages",
      "target": "tests/neurokit2/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "tests/neuropixels-analysis/test_scripts.py#metrics_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "compute_metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "explore_recording",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "neuropixels_pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "run_sorting",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_every_preset_carries_the_same_criteria",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_no_threshold_is_zero_or_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_allen_thresholds_are_the_documented_visual_coding_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_ibl_thresholds_are_the_documented_reproducible_ephys_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_presets_are_ordered_from_permissive_to_strict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_presets_are_the_three_the_cli_offers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_two_scripts_agree_on_which_standard_is_stricter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationCriteriaTests.test_the_two_scripts_agree_on_which_standard_is_stricter",
      "target": "tests/neuropixels-analysis/test_scripts.py#metrics_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_allen_tolerates_refractory_violations_that_ibl_calls_multi_unit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_amplitude_clipping_downgrades_without_calling_the_unit_multi_unit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_empty_metrics_table_yields_no_labels",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_exemplary_unit_is_good_under_every_preset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_unknown_method_raises_instead_of_dropping_units",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_every_unit_gets_exactly_one_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_ibl_additionally_requires_a_minimum_firing_rate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_low_snr_is_noise_whatever_else_the_unit_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_presence_ratio_is_a_strict_minimum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_strict_demands_high_snr_and_a_nearly_clean_refractory_period",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_the_allen_refractory_boundary_is_strict_on_both_sides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_the_noise_threshold_excludes_its_own_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "target": "tests/neuropixels-analysis/test_scripts.py#metrics_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_allen_tolerates_refractory_violations_that_ibl_calls_multi_unit",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_amplitude_clipping_downgrades_without_calling_the_unit_multi_unit",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_exemplary_unit_is_good_under_every_preset",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_an_unknown_method_raises_instead_of_dropping_units",
      "target": "tests/neuropixels-analysis/test_scripts.py#metrics_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_every_unit_gets_exactly_one_label",
      "target": "tests/neuropixels-analysis/test_scripts.py#metrics_table",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_ibl_additionally_requires_a_minimum_firing_rate",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_low_snr_is_noise_whatever_else_the_unit_scores",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_presence_ratio_is_a_strict_minimum",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_strict_demands_high_snr_and_a_nearly_clean_refractory_period",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_the_allen_refractory_boundary_is_strict_on_both_sides",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.test_the_noise_threshold_excludes_its_own_boundary",
      "target": "tests/neuropixels-analysis/test_scripts.py#CurationLabelTests.label",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_an_unlisted_sorter_gets_no_parameters_rather_than_a_wrong_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_every_sorter_that_can_preprocess_has_it_switched_off",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_the_kilosort4_thresholds_are_positive_spike_amplitudes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#SorterDefaultTests.test_the_presets_match_the_sorters_the_cli_offers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.drawn_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.recording",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_a_narrow_probe_draws_every_channel_it_has",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_a_wide_probe_is_subsampled_to_twenty_traces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_the_time_axis_covers_the_requested_duration",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.drawn_lines",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.recording",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_a_narrow_probe_draws_every_channel_it_has",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.drawn_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_a_wide_probe_is_subsampled_to_twenty_traces",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.drawn_lines",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.test_the_time_axis_covers_the_requested_duration",
      "target": "tests/neuropixels-analysis/test_scripts.py#TracePlotTests.recording",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#BoundTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#ConfigTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#FakeConnection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#FakeDetails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#FakeFile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#FakeImage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#FakeParty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#InventoryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#OutputTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#RedactionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tests/omero-integration/test_scripts.py#TransferPlannerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "export_image_metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "inventory",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "omero_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "plan_transfer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#BoundTests",
      "target": "tests/omero-integration/test_scripts.py#BoundTests.test_json_safe_bounds_nested_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#BoundTests",
      "target": "tests/omero-integration/test_scripts.py#BoundTests.test_take_bounded_detects_extra_item",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#BoundTests.test_json_safe_bounds_nested_values",
      "target": "skills/omero-integration/scripts/omero_common.py#json_safe",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#BoundTests.test_take_bounded_detects_extra_item",
      "target": "skills/omero-integration/scripts/omero_common.py#take_bounded",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests",
      "target": "tests/omero-integration/test_scripts.py#ConfigTests.test_defaults_and_no_auth",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests",
      "target": "tests/omero-integration/test_scripts.py#ConfigTests.test_partial_password_auth_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests",
      "target": "tests/omero-integration/test_scripts.py#ConfigTests.test_session_key_takes_precedence_without_leaking",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests",
      "target": "tests/omero-integration/test_scripts.py#ConfigTests.test_url_is_not_a_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests.test_defaults_and_no_auth",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests.test_partial_password_auth_is_rejected",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests.test_session_key_takes_precedence_without_leaking",
      "target": "skills/omero-integration/scripts/omero_common.py#config_summary",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests.test_session_key_takes_precedence_without_leaking",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#ConfigTests.test_url_is_not_a_host",
      "target": "skills/omero-integration/scripts/omero_common.py#load_connection_config",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation.getDetails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation.getFile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation.getId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation.getNs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation.getValue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation.getDetails",
      "target": "tests/omero-integration/test_scripts.py#FakeDetails",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeAnnotation.getFile",
      "target": "tests/omero-integration/test_scripts.py#FakeFile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeConnection",
      "target": "tests/omero-integration/test_scripts.py#FakeConnection.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeConnection",
      "target": "tests/omero-integration/test_scripts.py#FakeConnection.getObjects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeConnection.__init__",
      "target": "tests/omero-integration/test_scripts.py#FakeImage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeDetails",
      "target": "tests/omero-integration/test_scripts.py#FakeDetails.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeDetails",
      "target": "tests/omero-integration/test_scripts.py#FakeDetails.getGroup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeDetails",
      "target": "tests/omero-integration/test_scripts.py#FakeDetails.getOwner",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeDetails.__init__",
      "target": "tests/omero-integration/test_scripts.py#FakeParty",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeFile",
      "target": "tests/omero-integration/test_scripts.py#FakeFile.getId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeFile",
      "target": "tests/omero-integration/test_scripts.py#FakeFile.getMimetype",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeFile",
      "target": "tests/omero-integration/test_scripts.py#FakeFile.getName",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeFile",
      "target": "tests/omero-integration/test_scripts.py#FakeFile.getSize",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getDetails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getName",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getPixelsType",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getSizeC",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getSizeT",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getSizeX",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getSizeY",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage",
      "target": "tests/omero-integration/test_scripts.py#FakeImage.getSizeZ",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeImage.getDetails",
      "target": "tests/omero-integration/test_scripts.py#FakeDetails",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeParty",
      "target": "tests/omero-integration/test_scripts.py#FakeParty.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeParty",
      "target": "tests/omero-integration/test_scripts.py#FakeParty.getId",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#FakeParty",
      "target": "tests/omero-integration/test_scripts.py#FakeParty.getOmeName",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#InventoryTests",
      "target": "tests/omero-integration/test_scripts.py#InventoryTests.test_inventory_pages_and_redacts_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#InventoryTests.test_inventory_pages_and_redacts_names",
      "target": "tests/omero-integration/test_scripts.py#FakeConnection",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#OutputTests",
      "target": "tests/omero-integration/test_scripts.py#OutputTests.test_atomic_json_refuses_overwrite_and_uses_private_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#OutputTests",
      "target": "tests/omero-integration/test_scripts.py#OutputTests.test_atomic_json_refuses_symlink",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#RedactionTests",
      "target": "tests/omero-integration/test_scripts.py#RedactionTests.test_annotation_value_and_filename_not_read_when_redacted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#RedactionTests.test_annotation_value_and_filename_not_read_when_redacted",
      "target": "tests/omero-integration/test_scripts.py#FakeAnnotation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#TransferPlannerTests",
      "target": "tests/omero-integration/test_scripts.py#TransferPlannerTests.test_export_plan_reports_collision",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#TransferPlannerTests",
      "target": "tests/omero-integration/test_scripts.py#TransferPlannerTests.test_import_plan_caps_multiple_top_level_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/omero-integration/test_scripts.py#TransferPlannerTests",
      "target": "tests/omero-integration/test_scripts.py#TransferPlannerTests.test_import_plan_is_bounded_and_contains_no_credentials",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#AbsentValueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#BundledDataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#ChildrenIndexTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#DatasetInfoTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#KinshipCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#MetaParserTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#Pages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#PopulationListingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#RecordingClient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#RetryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#SharedHelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#Stream",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tests/onekgpd/test_scripts.py#ZygosityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "dnaerys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "onekgpd_api",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "onekgpd_meta",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AbsentValueTests",
      "target": "tests/onekgpd/test_scripts.py#AbsentValueTests.test_null_if_absent_keeps_zero_out_of_the_output",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AbsentValueTests",
      "target": "tests/onekgpd/test_scripts.py#AbsentValueTests.test_null_if_empty_keeps_zero_because_a_family_may_be_named_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AbsentValueTests",
      "target": "tests/onekgpd/test_scripts.py#AbsentValueTests.test_zero_and_empty_are_absent_but_an_identifier_is_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_an_alphamissense_class_and_score_together_are_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_an_unknown_vocabulary_term_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_boolean_flags_are_only_set_when_asked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_csv_terms_become_a_tuple_of_library_enums",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_either_alphamissense_selector_alone_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_length_bounds_are_not_annotation_filter_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_no_flags_means_no_filter_at_all",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_numeric_thresholds_pass_through_including_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests",
      "target": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_whitespace_in_a_csv_term_list_is_tolerated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_an_alphamissense_class_and_score_together_are_refused",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_an_unknown_vocabulary_term_is_rejected",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_boolean_flags_are_only_set_when_asked",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_csv_terms_become_a_tuple_of_library_enums",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_either_alphamissense_selector_alone_is_accepted",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_length_bounds_are_not_annotation_filter_fields",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_no_flags_means_no_filter_at_all",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_numeric_thresholds_pass_through_including_zero",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#AnnotationFilterTests.test_whitespace_in_a_csv_term_list_is_tolerated",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.client",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "target": "tests/onekgpd/test_scripts.py#ApiMainTests.test_a_subcommand_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "target": "tests/onekgpd/test_scripts.py#ApiMainTests.test_an_invalid_region_exits_one_with_a_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "target": "tests/onekgpd/test_scripts.py#ApiMainTests.test_limit_and_page_size_are_mutually_exclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "target": "tests/onekgpd/test_scripts.py#ApiMainTests.test_the_documented_subcommands_all_parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ApiMainTests",
      "target": "tests/onekgpd/test_scripts.py#ApiMainTests.test_the_zygosity_flags_are_mutually_exclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#BundledDataTests",
      "target": "tests/onekgpd/test_scripts.py#BundledDataTests.test_every_record_carries_the_keys_the_commands_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#BundledDataTests",
      "target": "tests/onekgpd/test_scripts.py#BundledDataTests.test_the_bundled_cohort_is_the_published_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#BundledDataTests",
      "target": "tests/onekgpd/test_scripts.py#BundledDataTests.test_the_limit_ceiling_is_the_cohort_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#BundledDataTests",
      "target": "tests/onekgpd/test_scripts.py#BundledDataTests.test_the_phase_three_subset_is_the_published_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ChildrenIndexTests",
      "target": "tests/onekgpd/test_scripts.py#ChildrenIndexTests.test_a_child_with_one_recorded_parent_is_not_indexed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ChildrenIndexTests",
      "target": "tests/onekgpd/test_scripts.py#ChildrenIndexTests.test_founders_have_no_children_entry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ChildrenIndexTests",
      "target": "tests/onekgpd/test_scripts.py#ChildrenIndexTests.test_the_yoruba_trio_is_reconstructed_from_the_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "target": "tests/onekgpd/test_scripts.py#CountCommandTests.test_an_incomplete_cluster_result_is_flagged_in_the_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "target": "tests/onekgpd/test_scripts.py#CountCommandTests.test_counting_individuals_never_passes_a_sample_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "target": "tests/onekgpd/test_scripts.py#CountCommandTests.test_named_individuals_are_split_from_the_csv_flag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "target": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_public_1000_genomes_endpoint_is_the_one_contacted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "target": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_request_carries_the_region_zygosity_and_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_an_incomplete_cluster_result_is_flagged_in_the_json",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_an_incomplete_cluster_result_is_flagged_in_the_json",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_an_incomplete_cluster_result_is_flagged_in_the_json",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_counting_individuals_never_passes_a_sample_list",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_counting_individuals_never_passes_a_sample_list",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_counting_individuals_never_passes_a_sample_list",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_counting_individuals_never_passes_a_sample_list",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_named_individuals_are_split_from_the_csv_flag",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_named_individuals_are_split_from_the_csv_flag",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_named_individuals_are_split_from_the_csv_flag",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_named_individuals_are_split_from_the_csv_flag",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_public_1000_genomes_endpoint_is_the_one_contacted",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_public_1000_genomes_endpoint_is_the_one_contacted",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_public_1000_genomes_endpoint_is_the_one_contacted",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_request_carries_the_region_zygosity_and_filter",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_request_carries_the_region_zygosity_and_filter",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_request_carries_the_region_zygosity_and_filter",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#CountCommandTests.test_the_request_carries_the_region_zygosity_and_filter",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#DatasetInfoTests",
      "target": "tests/onekgpd/test_scripts.py#DatasetInfoTests.test_the_totals_and_cohorts_are_echoed_verbatim",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#DatasetInfoTests",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#DatasetInfoTests.test_the_totals_and_cohorts_are_echoed_verbatim",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.arguments",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_a_real_count_is_reported_as_a_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_listing_hom_ref_individuals_echoes_the_position",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_minus_one_means_no_variant_here_not_a_negative_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_zero_means_the_variant_exists_but_nobody_is_hom_ref",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_a_real_count_is_reported_as_a_count",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_a_real_count_is_reported_as_a_count",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_a_real_count_is_reported_as_a_count",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.arguments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_a_real_count_is_reported_as_a_count",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_listing_hom_ref_individuals_echoes_the_position",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_listing_hom_ref_individuals_echoes_the_position",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_minus_one_means_no_variant_here_not_a_negative_count",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.arguments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_minus_one_means_no_variant_here_not_a_negative_count",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_zero_means_the_variant_exists_but_nobody_is_hom_ref",
      "target": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.arguments",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#HomozygousReferenceTests.test_zero_means_the_variant_exists_but_nobody_is_hom_ref",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests",
      "target": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_a_pair_is_reported_with_its_degree_and_coefficient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests",
      "target": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_an_empty_pair_list_fails_rather_than_reporting_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_a_pair_is_reported_with_its_degree_and_coefficient",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_a_pair_is_reported_with_its_degree_and_coefficient",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_a_pair_is_reported_with_its_degree_and_coefficient",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_an_empty_pair_list_fails_rather_than_reporting_nothing",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#KinshipCommandTests.test_an_empty_pair_list_fails_rather_than_reporting_nothing",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_a_region_label_round_trips_the_parsed_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_a_variant_serialises_to_json_safe_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_an_unfiltered_request_echoes_no_filter_block",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_chromosome_enums_render_as_their_conventional_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_many_regions_are_labelled_as_a_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_the_filter_echo_reports_only_what_was_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests",
      "target": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_the_request_echo_records_alleles_and_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_a_variant_serialises_to_json_safe_keys",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_an_unfiltered_request_echoes_no_filter_block",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_the_filter_echo_reports_only_what_was_set",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#LabelAndEchoTests.test_the_request_echo_records_alleles_and_samples",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#MetaParserTests",
      "target": "tests/onekgpd/test_scripts.py#MetaParserTests.test_a_subcommand_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#MetaParserTests",
      "target": "tests/onekgpd/test_scripts.py#MetaParserTests.test_every_subcommand_binds_a_handler",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#MetaParserTests",
      "target": "tests/onekgpd/test_scripts.py#MetaParserTests.test_repeated_population_flags_accumulate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#Pages",
      "target": "tests/onekgpd/test_scripts.py#Pages.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#Pages",
      "target": "tests/onekgpd/test_scripts.py#Pages.__iter__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#Pages.__init__",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationListingTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_all_populations_are_listed_and_add_up_to_the_cohort",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationListingTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_populations_are_ordered_by_superpopulation_then_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationListingTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_the_five_superpopulations_partition_the_cohort",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_all_populations_are_listed_and_add_up_to_the_cohort",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_populations_are_ordered_by_superpopulation_then_code",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationListingTests.test_the_five_superpopulations_partition_the_cohort",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_an_empty_subset_produces_no_groups",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_an_unrecorded_sex_counts_toward_neither_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_counts_are_aggregated_per_population_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_an_unrecorded_sex_counts_toward_neither_column",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.test_counts_are_aggregated_per_population_key",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsAggregationTests.record",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_a_code_and_its_full_name_select_the_same_population",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_an_unrecognised_population_fails_before_any_aggregation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_an_unrecognised_superpopulation_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_several_populations_are_returned_ordered_by_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_superpopulation_totals_equal_the_sum_of_their_populations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_the_row_matches_an_independent_count_over_the_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_the_sex_split_and_trio_count_are_internally_consistent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_a_code_and_its_full_name_select_the_same_population",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_an_unrecognised_population_fails_before_any_aggregation",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_an_unrecognised_superpopulation_fails",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_several_populations_are_returned_ordered_by_code",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_superpopulation_totals_equal_the_sum_of_their_populations",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_the_row_matches_an_independent_count_over_the_asset",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#PopulationStatsCommandTests.test_the_sex_split_and_trio_count_are_internally_consistent",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RecordingClient",
      "target": "tests/onekgpd/test_scripts.py#RecordingClient.__enter__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RecordingClient",
      "target": "tests/onekgpd/test_scripts.py#RecordingClient.__exit__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RecordingClient",
      "target": "tests/onekgpd/test_scripts.py#RecordingClient.__getattr__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RecordingClient",
      "target": "tests/onekgpd/test_scripts.py#RecordingClient.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RecordingClient.__getattr__",
      "target": "tests/onekgpd/test_scripts.py#RecordingClient.__getattr__.method",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_region_is_mandatory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_region_string_becomes_a_typed_region",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_single_region_carries_the_allele_narrowing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_allele_narrowing_cannot_apply_to_many_regions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_an_incomplete_single_region_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_coordinate_validation_is_left_to_the_library",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_malformed_region_strings_name_the_expected_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_mixing_the_two_region_modes_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests",
      "target": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_multiple_regions_are_parsed_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_region_is_mandatory",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_a_single_region_carries_the_allele_narrowing",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_allele_narrowing_cannot_apply_to_many_regions",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_an_incomplete_single_region_is_refused",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_mixing_the_two_region_modes_is_refused",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RegionParsingTests.test_multiple_regions_are_parsed_in_order",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_call_that_recovers_returns_the_later_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_non_retryable_error_is_raised_without_a_second_attempt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_retryable_error_is_retried_up_to_the_bound_then_raised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_successful_call_is_made_exactly_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests.test_a_call_that_recovers_returns_the_later_result",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_call_that_recovers_returns_the_later_result.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests.test_a_non_retryable_error_is_raised_without_a_second_attempt",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_non_retryable_error_is_raised_without_a_second_attempt.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests.test_a_retryable_error_is_retried_up_to_the_bound_then_raised",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_retryable_error_is_retried_up_to_the_bound_then_raised.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#RetryTests.test_a_successful_call_is_made_exactly_once",
      "target": "tests/onekgpd/test_scripts.py#RetryTests.test_a_successful_call_is_made_exactly_once.fetch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_a_founder_reports_no_parents_rather_than_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_a_trio_child_reports_both_parents_and_its_relationship",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_an_empty_sample_list_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_an_unknown_identifier_fails_and_names_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_sample_identifiers_are_case_sensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_several_samples_come_back_sorted_and_deduplicated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_whitespace_around_identifiers_is_tolerated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_a_founder_reports_no_parents_rather_than_zero",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_a_trio_child_reports_both_parents_and_its_relationship",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_an_empty_sample_list_fails",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_an_unknown_identifier_fails_and_names_it",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_sample_identifiers_are_case_sensitive",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_several_samples_come_back_sorted_and_deduplicated",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SampleMetadataCommandTests.test_whitespace_around_identifiers_is_tolerated",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_negative_skip_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_skip_past_the_end_returns_an_empty_page_not_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_superpopulation_alone_selects_across_its_populations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_an_unrecognised_population_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_neither_selector_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_population_and_superpopulation_are_combined_with_and",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_skip_advances_the_window_without_dropping_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_default_page_is_fifty_rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_limit_bounds_are_enforced_at_both_ends",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_page_is_sorted_and_capped_by_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_negative_skip_is_refused",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_negative_skip_is_refused",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_skip_past_the_end_returns_an_empty_page_not_an_error",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_skip_past_the_end_returns_an_empty_page_not_an_error",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_superpopulation_alone_selects_across_its_populations",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_a_superpopulation_alone_selects_across_its_populations",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_an_unrecognised_population_is_refused",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_an_unrecognised_population_is_refused",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_neither_selector_is_refused",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_neither_selector_is_refused",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_population_and_superpopulation_are_combined_with_and",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_population_and_superpopulation_are_combined_with_and",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_skip_advances_the_window_without_dropping_rows",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_skip_advances_the_window_without_dropping_rows",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_default_page_is_fifty_rows",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_default_page_is_fifty_rows",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_limit_bounds_are_enforced_at_both_ends",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_limit_bounds_are_enforced_at_both_ends",
      "target": "tests/onekgpd/test_scripts.py#failure_message",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_limit_bounds_are_enforced_at_both_ends",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_page_is_sorted_and_capped_by_limit",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.test_the_page_is_sorted_and_capped_by_limit",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesByPopulationTests.defaults",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_paging_arguments_reach_the_service_and_the_echo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_unset_paging_is_omitted_from_the_echo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_paging_arguments_reach_the_service_and_the_echo",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_paging_arguments_reach_the_service_and_the_echo",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_paging_arguments_reach_the_service_and_the_echo",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_paging_arguments_reach_the_service_and_the_echo",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_unset_paging_is_omitted_from_the_echo",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_unset_paging_is_omitted_from_the_echo",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectSamplesCommandTests.test_unset_paging_is_omitted_from_the_echo",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_a_result_below_the_limit_is_not_truncated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_an_empty_result_is_reported_as_zero_not_as_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_hitting_the_limit_marks_the_result_as_truncated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_a_result_below_the_limit_is_not_truncated",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_a_result_below_the_limit_is_not_truncated",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_a_result_below_the_limit_is_not_truncated",
      "target": "tests/onekgpd/test_scripts.py#Stream",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_a_result_below_the_limit_is_not_truncated",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_an_empty_result_is_reported_as_zero_not_as_an_error",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_an_empty_result_is_reported_as_zero_not_as_an_error",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_an_empty_result_is_reported_as_zero_not_as_an_error",
      "target": "tests/onekgpd/test_scripts.py#Stream",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_hitting_the_limit_marks_the_result_as_truncated",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_hitting_the_limit_marks_the_result_as_truncated",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_hitting_the_limit_marks_the_result_as_truncated",
      "target": "tests/onekgpd/test_scripts.py#Stream",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_hitting_the_limit_marks_the_result_as_truncated",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "target": "tests/onekgpd/test_scripts.py#Pages",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_paging_walks_every_page_and_cannot_truncate",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "target": "tests/onekgpd/test_scripts.py#Stream",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_selecting_within_individuals_forwards_the_sample_list",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "target": "tests/onekgpd/test_scripts.py#ApiCommandTestCase.sent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "target": "tests/onekgpd/test_scripts.py#emitted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "target": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.base",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "target": "tests/onekgpd/test_scripts.py#Stream",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SelectVariantsCommandTests.test_variants_are_returned_with_the_default_limit_applied",
      "target": "tests/onekgpd/test_scripts.py#variant",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SharedHelperTests",
      "target": "tests/onekgpd/test_scripts.py#SharedHelperTests.test_csv_splitting_trims_and_drops_empty_tokens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SharedHelperTests",
      "target": "tests/onekgpd/test_scripts.py#SharedHelperTests.test_json_is_written_to_the_requested_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#SharedHelperTests",
      "target": "tests/onekgpd/test_scripts.py#SharedHelperTests.test_without_a_path_a_temp_file_is_used_and_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#Stream",
      "target": "tests/onekgpd/test_scripts.py#Stream.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#Stream",
      "target": "tests/onekgpd/test_scripts.py#Stream.to_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#Stream.__init__",
      "target": "tests/onekgpd/test_scripts.py#metadata",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ZygosityTests",
      "target": "tests/onekgpd/test_scripts.py#ZygosityTests.test_both_zygosities_are_included_by_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ZygosityTests",
      "target": "tests/onekgpd/test_scripts.py#ZygosityTests.test_each_flag_narrows_to_its_own_zygosity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ZygosityTests",
      "target": "tests/onekgpd/test_scripts.py#ZygosityTests.test_the_label_names_what_was_queried",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ZygosityTests.test_both_zygosities_are_included_by_default",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/onekgpd/test_scripts.py#ZygosityTests.test_each_flag_narrows_to_its_own_zygosity",
      "target": "tests/onekgpd/test_scripts.py#region_args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#_load_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_dedupe_keeps_the_defining_ontologys_copy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_dedupe_skips_docs_without_an_identifier",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_exact_matches_outrank_partial_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_label_match_outranks_synonym_match",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_dedupe_keeps_the_defining_ontologys_copy",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_exact_matches_outrank_partial_ones",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CandidateRankingTests.test_label_match_outranks_synonym_match",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_is_curie_accepts_real_prefixes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_is_curie_rejects_non_curies",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_ontology_id_is_the_lowercased_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_ontology_id_of_junk_is_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#CurieHelperTests.test_ontology_id_override_for_orphanet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_bad_branch_curie_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_clean_run_exits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_failure_exits_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_json_output_is_a_list_of_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_no_input_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_strict_makes_warnings_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_tsv_output_has_the_documented_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_warning_alone_exits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_clean_run_exits_zero",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_clean_run_exits_zero",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_failure_exits_one",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_failure_exits_one",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_json_output_is_a_list_of_records",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_json_output_is_a_list_of_records",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_strict_makes_warnings_fail",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_strict_makes_warnings_fail",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_tsv_output_has_the_documented_columns",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_tsv_output_has_the_documented_columns",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_warning_alone_exits_zero",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.result",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.test_warning_alone_exits_zero",
      "target": "tests/ontology-term-resolution/test_scripts.py#ExitCodeTests.run_validate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_alternate_header_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_comment_and_blank_lines_are_skipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_csv_is_detected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_headerless_two_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_id_only_header_without_label_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_positional_terms_merge_with_file_terms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_resolve_deduplicates_queries_preserving_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_single_column_has_no_labels",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_tsv_with_headers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_alternate_header_names",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_comment_and_blank_lines_are_skipped",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_csv_is_detected",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_headerless_two_columns",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_id_only_header_without_label_column",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_positional_terms_merge_with_file_terms",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_single_column_has_no_labels",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.test_tsv_with_headers",
      "target": "tests/ontology-term-resolution/test_scripts.py#InputParsingTests.parse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_candidate_iris_use_the_right_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_efo_namespace_to_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_multi_underscore_prefix_splits_on_the_last_underscore",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_obo_purl_to_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_orphanet_namespace_to_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#IriConversionTests.test_unconvertible_iris_return_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_match_type_distinguishes_label_synonym_and_partial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_normalize_folds_case_and_whitespace_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_synonyms_collected_from_every_field_spelling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LabelMatchingTests.test_match_type_distinguishes_label_synonym_and_partial",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_exact_true_alone_is_not_exact_label_matching",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_iri_fallback_resolves_a_term_missing_from_the_obo_id_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_obsolete_term_carries_its_replacement",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_orphanet_override_resolves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_search_cannot_report_obsolescence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LiveApiTests.test_unknown_id_resolves_to_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_blanks_identifiers_org_when_resolver_rejects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_chebi_keeps_embedded_prefix_in_miriam_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_oba_leaves_identifiers_org_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_orphanet_emits_miriam_url_not_preferred_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_lookup_uses_bioregistry_then_identifiers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_malformed_input_does_not_hit_the_network",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_no_input_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#LookupPrefixCliTests.test_unknown_prefix_from_404",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_missing_ontology_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_no_input_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_safe_only_drops_weak_hits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#MapTermsTests.test_unresolved_row_has_no_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_classify_does_not_template_landing_pages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_identifiers_resolver_url_keeps_the_colon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_invalid_local_id_is_caught_without_a_network_call",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_chebi_keeps_embedded_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_hp_uses_miriam_and_ontobee_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_oba_has_no_identifiers_org",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_landing_pages_orphanet_uses_miriam_namespace_not_preferred",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_local_pattern_is_the_local_id_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_preferred_prefix_is_ok_in_either_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_reference_detail_overrides_for_invalid_local",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_split_query_handles_prefix_and_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_synonym_curie_still_builds_the_preferred_form",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_synonym_prefix_is_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_unknown_prefix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#PrefixHelperTests.test_uri_format_and_ontobee_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_exact_only_never_escalates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_escalates_when_exact_finds_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_stops_at_the_first_strategy_that_hits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_unresolved_query_becomes_a_visible_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_exact_only_never_escalates",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_exact_only_never_escalates.fake_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_escalates_when_exact_finds_nothing",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_escalates_when_exact_finds_nothing.fake_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_escalates_when_exact_finds_nothing.fake_search",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_stops_at_the_first_strategy_that_hits",
      "target": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_stops_at_the_first_strategy_that_hits.fake_search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ResolveStrategyTests.test_ladder_stops_at_the_first_strategy_that_hits.fake_search",
      "target": "tests/ontology-term-resolution/test_scripts.py#doc",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_a_term_is_in_its_own_branch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_branch_membership_passes_and_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_failure_beats_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_imported_only_term_warns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_comparison_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_mismatch_reports_both_labels",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_malformed_curie_is_rejected_without_a_lookup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_missing_term_is_not_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_non_class_terms_warn",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_term_reports_its_replacement_as_a_curie",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_without_replacement_says_so",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_synonym_label_warns_and_names_the_primary_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_valid_term_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_wrong_ontology_is_caught",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_a_term_is_in_its_own_branch",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_a_term_is_in_its_own_branch",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_branch_membership_passes_and_fails",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_branch_membership_passes_and_fails",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_failure_beats_warning",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_failure_beats_warning",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_imported_only_term_warns",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_imported_only_term_warns",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_comparison_is_case_insensitive",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_comparison_is_case_insensitive",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_mismatch_reports_both_labels",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_label_mismatch_reports_both_labels",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_missing_term_is_not_found",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_non_class_terms_warn",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_non_class_terms_warn",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_term_reports_its_replacement_as_a_curie",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_term_reports_its_replacement_as_a_curie",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_without_replacement_says_so",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_obsolete_without_replacement_says_so",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_synonym_label_warns_and_names_the_primary_label",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_synonym_label_warns_and_names_the_primary_label",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_valid_term_passes",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_valid_term_passes",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_wrong_ontology_is_caught",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.test_wrong_ontology_is_caught",
      "target": "tests/ontology-term-resolution/test_scripts.py#ValidateTermTests.live_term",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests.test_filter_requires_an_ontology",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests.test_flatten_hit_converts_obo_iris_and_flags_weak_confidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests",
      "target": "tests/ontology-term-resolution/test_scripts.py#ZoomaHelperTests.test_high_confidence_is_safe",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts._check_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_chat_interaction_script_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_notebook_management_script_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_source_ingestion_script_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_chat_interaction_script_exists",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts._check_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_notebook_management_script_exists",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts._check_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts.test_source_ingestion_script_exists",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestExampleScripts._check_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml.test_pyproject_has_project_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestPyprojectToml.test_pyproject_has_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_api_reference_exists_and_comprehensive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_api_reference_has_http_methods",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_architecture_reference_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_configuration_reference_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_examples_reference_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_api_reference_exists_and_comprehensive",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_api_reference_has_http_methods",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_architecture_reference_exists",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_configuration_reference_exists",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles.test_examples_reference_exists",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestReferenceFiles._read_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_references_directory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_scripts_directory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_skill_directory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillDirectoryStructure.test_skill_md_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_chat_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_credential_management",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_model_management",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_note_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_notebook_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_podcast_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_search_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_source_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdApiEndpointCoverage.test_covers_transformation_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_content_length_sufficient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_api_base_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_api_reference_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_bash_code_examples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_core_features_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_docker_setup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_environment_variable_info",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_installation_instructions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_overview_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_python_code_examples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_quick_start_section",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_has_title_heading",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_mentions_multiple_ai_providers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_mentions_notebooklm_alternative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdContent.test_mentions_self_hosted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_description",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_license",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_metadata_author",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_frontmatter_has_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter",
      "target": "tests/open-notebook/test_open_notebook_skill.py#TestSkillMdFrontmatter.test_has_yaml_frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#BundledExampleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#CliArgumentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#FlagsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#GridSpacingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#particle_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tests/openpiv/test_scripts.py#WindowGeometryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "analyze",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "run_example",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "runner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_supplied_spacing_overrides_the_inferred_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_uniform_flow_has_neither_vorticity_nor_strain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_incompressible_extension_gives_opposite_normal_strains",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_pure_shear_splits_between_vorticity_and_shear_strain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_rotation_carries_no_strain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_solid_body_rotation_has_vorticity_twice_the_rate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_supplied_spacing_overrides_the_inferred_one",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_supplied_spacing_overrides_the_inferred_one",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_uniform_flow_has_neither_vorticity_nor_strain",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_a_uniform_flow_has_neither_vorticity_nor_strain",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_incompressible_extension_gives_opposite_normal_strains",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_incompressible_extension_gives_opposite_normal_strains",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_pure_shear_splits_between_vorticity_and_shear_strain",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_pure_shear_splits_between_vorticity_and_shear_strain",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_rotation_carries_no_strain",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_rotation_carries_no_strain",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_solid_body_rotation_has_vorticity_twice_the_rate",
      "target": "tests/openpiv/test_scripts.py#AnalyticFlowTests.grid",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyticFlowTests.test_solid_body_rotation_has_vorticity_twice_the_rate",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#BundledExampleTests",
      "target": "tests/openpiv/test_scripts.py#BundledExampleTests.test_the_example_pair_ships_inside_the_installed_openpiv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#CliArgumentTests",
      "target": "tests/openpiv/test_scripts.py#CliArgumentTests.test_exactly_two_images_are_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.pair",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_downward_shift_is_recovered_as_a_negative_v",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_larger_search_area_still_recovers_the_shift",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_leftward_shift_is_recovered_as_a_negative_u",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_rightward_shift_is_recovered_as_a_positive_u",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_uniform_translation_has_no_vorticity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_dropping_invalid_vectors_leaves_holes_where_they_were_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_dt_converts_the_displacement_into_a_velocity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_every_documented_output_file_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_identical_frames_recover_no_motion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_the_grid_geometry_follows_the_window_and_overlap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_the_scaling_factor_is_pixels_per_physical_unit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.pair",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.pair",
      "target": "tests/openpiv/test_scripts.py#particle_image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_downward_shift_is_recovered_as_a_negative_v",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_larger_search_area_still_recovers_the_shift",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_leftward_shift_is_recovered_as_a_negative_u",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_rightward_shift_is_recovered_as_a_positive_u",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_a_uniform_translation_has_no_vorticity",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.pair",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_dropping_invalid_vectors_leaves_holes_where_they_were_flagged",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_dt_converts_the_displacement_into_a_velocity",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_every_documented_output_file_is_written",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.pair",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_identical_frames_recover_no_motion",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_the_grid_geometry_follows_the_window_and_overlap",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.test_the_scaling_factor_is_pixels_per_physical_unit",
      "target": "tests/openpiv/test_scripts.py#DisplacementRecoveryTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#FlagsTests",
      "target": "tests/openpiv/test_scripts.py#FlagsTests.test_flags_are_loaded_as_a_boolean_mask",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#FlagsTests",
      "target": "tests/openpiv/test_scripts.py#FlagsTests.test_the_quiver_plot_draws_only_the_valid_vectors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#FlagsTests",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#FlagsTests.test_flags_are_loaded_as_a_boolean_mask",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#FlagsTests.test_the_quiver_plot_draws_only_the_valid_vectors",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests",
      "target": "tests/openpiv/test_scripts.py#GridSpacingTests.test_a_degenerate_axis_falls_back_to_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests",
      "target": "tests/openpiv/test_scripts.py#GridSpacingTests.test_the_spacing_is_positive_even_when_a_coordinate_runs_backwards",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests",
      "target": "tests/openpiv/test_scripts.py#GridSpacingTests.test_the_spacing_is_read_off_the_coordinates_not_assumed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests.test_a_degenerate_axis_falls_back_to_one",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests.test_the_spacing_is_positive_even_when_a_coordinate_runs_backwards",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#GridSpacingTests.test_the_spacing_is_read_off_the_coordinates_not_assumed",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.test_a_uniform_field_has_zero_fluctuation_and_zero_energy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.test_holes_left_by_drop_invalid_are_ignored_not_propagated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.test_subtracting_the_mean_makes_the_rms_offset_invariant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.test_the_rms_is_the_population_standard_deviation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests.test_a_uniform_field_has_zero_fluctuation_and_zero_energy",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests.test_holes_left_by_drop_invalid_are_ignored_not_propagated",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests.test_subtracting_the_mean_makes_the_rms_offset_invariant",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#StatisticsTests.test_the_rms_is_the_population_standard_deviation",
      "target": "tests/openpiv/test_scripts.py#StatisticsTests.field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests",
      "target": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests.test_the_magnitude_is_the_euclidean_norm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#VelocityMagnitudeTests.test_the_magnitude_is_the_euclidean_norm",
      "target": "tests/openpiv/test_scripts.py#AnalyzerFixtureCase.analyzer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#WindowGeometryTests",
      "target": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_a_search_area_smaller_than_the_window_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#WindowGeometryTests",
      "target": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_an_overlap_at_or_above_the_window_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#WindowGeometryTests",
      "target": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_the_guards_fire_before_the_images_are_opened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/openpiv/test_scripts.py#WindowGeometryTests",
      "target": "tests/openpiv/test_scripts.py#WindowGeometryTests.test_the_shipped_defaults_satisfy_their_own_guards",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#BasicTransferTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#call_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#closing_comment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#DeclarationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#load_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#SimulationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#slots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "tests/opentrons-integration/test_scripts.py#TemplateInventoryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "collections",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "opentrons.protocols.api_support.definitions",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "opentrons.simulate",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_no_pipette_is_loaded_so_no_trash_is_needed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_lid_is_closed_before_initialisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_plate_is_moved_onto_the_reader_and_back_to_its_slot",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_read_is_exported_under_a_filename",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests",
      "target": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_reader_is_initialised_at_both_documented_wavelengths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.setUp",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_no_pipette_is_loaded_so_no_trash_is_needed",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_lid_is_closed_before_initialisation",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_read_is_exported_under_a_filename",
      "target": "tests/opentrons-integration/test_scripts.py#call_argument",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#AbsorbanceReaderTests.test_the_reader_is_initialised_at_both_documented_wavelengths",
      "target": "tests/opentrons-integration/test_scripts.py#call_argument",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests",
      "target": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests",
      "target": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_one_tip_is_used_for_the_single_transfer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests",
      "target": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_the_declared_hundred_microlitres_move_from_reservoir_to_plate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests",
      "target": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_the_transfer_stays_within_the_declared_reservoir_volume",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.setUp",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_one_tip_is_used_for_the_single_transfer",
      "target": "tests/opentrons-integration/test_scripts.py#counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#BasicTransferTests.test_the_transfer_stays_within_the_declared_reservoir_volume",
      "target": "tests/opentrons-integration/test_scripts.py#call_argument",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#call_argument",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#closing_comment",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests",
      "target": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_declares_its_robot_and_api_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests",
      "target": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_exposes_a_single_argument_run_entry_point",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests",
      "target": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_names_itself_and_its_purpose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests",
      "target": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_no_template_asks_for_a_newer_api_than_the_installed_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_declares_its_robot_and_api_level",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_exposes_a_single_argument_run_entry_point",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_each_template_names_itself_and_its_purpose",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#DeclarationTests.test_no_template_asks_for_a_newer_api_than_the_installed_package",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#load_names",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_each_reaction_gets_one_template_from_its_own_tube",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_every_thermocycler_step_declares_the_reaction_volume",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_one_tip_for_the_master_mix_and_one_per_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_block_and_lid_temperatures_are_the_documented_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_cycling_profile_runs_thirty_five_repetitions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_declared_master_mix_volume_covers_the_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_lid_is_opened_before_pipetting_and_after_cycling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_master_mix_is_distributed_in_one_aspiration",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests",
      "target": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_reaction_volume_matches_the_advertised_twenty_five",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.setUp",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_every_thermocycler_step_declares_the_reaction_volume",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_one_tip_for_the_master_mix_and_one_per_template",
      "target": "tests/opentrons-integration/test_scripts.py#counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_declared_master_mix_volume_covers_the_run",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#PcrSetupTests.test_the_reaction_volume_matches_the_advertised_twenty_five",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_every_flex_template_with_a_pipette_loads_a_trash_bin",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_pipette_names_match_the_robot_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_flex_templates_use_coordinate_deck_slots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_ot2_template_leaves_the_fixed_trash_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_ot2_template_uses_numbered_deck_slots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests",
      "target": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_tip_racks_match_the_robot_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_every_flex_template_with_a_pipette_loads_a_trash_bin",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_pipette_names_match_the_robot_line",
      "target": "tests/opentrons-integration/test_scripts.py#load_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_flex_templates_use_coordinate_deck_slots",
      "target": "tests/opentrons-integration/test_scripts.py#slots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_ot2_template_leaves_the_fixed_trash_alone",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_the_ot2_template_uses_numbered_deck_slots",
      "target": "tests/opentrons-integration/test_scripts.py#slots",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RobotSpecificApiTests.test_tip_racks_match_the_robot_line",
      "target": "tests/opentrons-integration/test_scripts.py#load_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_distributing_reuses_one_tip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_every_numeric_default_sits_inside_its_own_bounds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_aspirated_total_is_the_eight_doses_plus_disposal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_defaults_fill_eight_wells_with_fifty_microlitres",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_dry_run_default_gives_the_one_second_incubation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_sample_ceiling_fits_the_destination_plate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_three_documented_parameters_are_declared",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_volume_ceiling_fits_the_tips_the_template_loads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder._add",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_bool",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_float",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_int",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_bool",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder._add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_float",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder._add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder.add_int",
      "target": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.Recorder._add",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.setUp",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.setUp",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_distributing_reuses_one_tip",
      "target": "tests/opentrons-integration/test_scripts.py#counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#RuntimeParameterTests.test_the_volume_ceiling_fits_the_tips_the_template_loads",
      "target": "tests/opentrons-integration/test_scripts.py#load_names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_every_hundred_microlitre_draw_is_accounted_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_one_tip_per_dilution_step_plus_the_diluent_and_cleanup_tips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_declared_diluent_covers_every_row_of_every_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_documented_number_of_dilution_steps_is_performed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_final_column_is_equalised_into_the_trash",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests",
      "target": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_stock_column_is_never_diluted_from_the_reservoir",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.setUp",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_every_hundred_microlitre_draw_is_accounted_for",
      "target": "tests/opentrons-integration/test_scripts.py#counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_one_tip_per_dilution_step_plus_the_diluent_and_cleanup_tips",
      "target": "tests/opentrons-integration/test_scripts.py#counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_declared_diluent_covers_every_row_of_every_step",
      "target": "tests/opentrons-integration/test_scripts.py#call_argument",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SerialDilutionTests.test_the_declared_diluent_covers_every_row_of_every_step",
      "target": "tests/opentrons-integration/test_scripts.py#declarations",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SimulationTests",
      "target": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_every_flex_template_simulates_to_its_closing_comment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SimulationTests",
      "target": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_the_flex_package_refuses_the_ot2_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_every_flex_template_simulates_to_its_closing_comment",
      "target": "tests/opentrons-integration/test_scripts.py#closing_comment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_every_flex_template_simulates_to_its_closing_comment",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#SimulationTests.test_the_flex_package_refuses_the_ot2_template",
      "target": "tests/opentrons-integration/test_scripts.py#run_log",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#slots",
      "target": "tests/opentrons-integration/test_scripts.py#calls",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/opentrons-integration/test_scripts.py#TemplateInventoryTests",
      "target": "tests/opentrons-integration/test_scripts.py#TemplateInventoryTests.test_the_shipped_templates_are_the_ones_under_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#_load_module",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_build_generated_params_content_fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_build_generated_params_content_genome",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_build_samplesheet_status_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_extract_job_id_lsf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_extract_job_id_slurm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_normalize_walltime_hhmm",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.test_normalize_walltime_hhmmss",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pacsomatic/test_run_pacsomatic.py#RunPacsomaticUnitTests.setUpClass",
      "target": "tests/pacsomatic/test_run_pacsomatic.py#_load_module",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#ReconciliationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "arxiv_atom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "jats_to_text",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "openalex_abstract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "paginate",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_absent_arxiv_doi_is_none_not_invented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_empty_feed_is_reported_as_a_genuine_no_match",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_entry_is_parsed_with_version_split",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_error_feed_exits_3",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_hard_wrapped_title_and_abstract_are_collapsed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_id_from_url_is_scheme_agnostic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_ids_only_strips_versions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_non_xml_body_reports_what_it_actually_got",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_pdf_link_is_selected_by_rel_not_position",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_query_as_executed_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_rate_limited_plain_text_body_exits_5",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests",
      "target": "tests/paper-lookup/test_scripts.py#ArxivTests.test_split_version_leaves_unversioned_ids_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_absent_arxiv_doi_is_none_not_invented",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_absent_arxiv_doi_is_none_not_invented",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_empty_feed_is_reported_as_a_genuine_no_match",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_empty_feed_is_reported_as_a_genuine_no_match",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_entry_is_parsed_with_version_split",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_entry_is_parsed_with_version_split",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_error_feed_exits_3",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_error_feed_exits_3",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_hard_wrapped_title_and_abstract_are_collapsed",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_hard_wrapped_title_and_abstract_are_collapsed",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_ids_only_strips_versions",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_ids_only_strips_versions",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_non_xml_body_reports_what_it_actually_got",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_non_xml_body_reports_what_it_actually_got",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_pdf_link_is_selected_by_rel_not_position",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_pdf_link_is_selected_by_rel_not_position",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_query_as_executed_is_reported",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_query_as_executed_is_reported",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_rate_limited_plain_text_body_exits_5",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ArxivTests.test_rate_limited_plain_text_body_exits_5",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests.test_collapse_ws_flattens_arxiv_hard_wrapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests.test_collapse_ws_handles_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests.test_load_json_attributes_the_parse_failure_to_the_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests.test_read_input_rejects_missing_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests.test_read_input_rejects_oversized_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests",
      "target": "tests/paper-lookup/test_scripts.py#CommonTests.test_strip_control_keeps_tab_and_newline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests.test_load_json_attributes_the_parse_failure_to_the_source",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#CommonTests.test_read_input_rejects_oversized_file",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_allow_metadata_only_opts_out_of_the_refusal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_europepmc_bare_article_wrapper_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_first_article_id_wins_over_nested_sub_article_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_full_text_article_yields_sections",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_metadata_still_emitted_when_body_is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_missing_body_exits_2_and_surfaces_the_xml_comment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_non_jats_xml_is_rejected_with_a_useful_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_section_filter_matches_case_insensitively",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_unmatched_section_filter_lists_what_is_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests",
      "target": "tests/paper-lookup/test_scripts.py#JatsTests.test_xref_text_is_dropped_but_the_sentence_survives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_allow_metadata_only_opts_out_of_the_refusal",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_allow_metadata_only_opts_out_of_the_refusal",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_europepmc_bare_article_wrapper_is_accepted",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_europepmc_bare_article_wrapper_is_accepted",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_first_article_id_wins_over_nested_sub_article_doi",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_first_article_id_wins_over_nested_sub_article_doi",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_full_text_article_yields_sections",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_full_text_article_yields_sections",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_metadata_still_emitted_when_body_is_missing",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_metadata_still_emitted_when_body_is_missing",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_missing_body_exits_2_and_surfaces_the_xml_comment",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_missing_body_exits_2_and_surfaces_the_xml_comment",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_non_jats_xml_is_rejected_with_a_useful_message",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_non_jats_xml_is_rejected_with_a_useful_message",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_section_filter_matches_case_insensitively",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_section_filter_matches_case_insensitively",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_unmatched_section_filter_lists_what_is_available",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#JatsTests.test_unmatched_section_filter_lists_what_is_available",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_abstract_is_reconstructed_in_position_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_duplicate_positions_keep_both_tokens",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_empty_index_yields_empty_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_gaps_in_the_index_are_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_list_response_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_missing_index_distinguishes_no_abstract_from_select_exclusion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_non_integer_positions_are_reported_not_crashed_on",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_single_work_payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_text_only_fails_loudly_when_nothing_reconstructs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests",
      "target": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_works_from_rejects_a_bare_scalar",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_list_response_payload",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_list_response_payload",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_missing_index_distinguishes_no_abstract_from_select_exclusion",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_missing_index_distinguishes_no_abstract_from_select_exclusion",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_single_work_payload",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_single_work_payload",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_text_only_fails_loudly_when_nothing_reconstructs",
      "target": "tests/paper-lookup/test_scripts.py#fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#OpenAlexAbstractTests.test_text_only_fails_loudly_when_nothing_reconstructs",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_endpoint_without_counts_reports_no_total",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_no_articles_found_is_surfaced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_pubs_steps_by_100",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_reports_the_count_mismatch_it_falls_back_from",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_steps_by_the_reported_count_not_100",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_stops_when_the_next_offset_reaches_total",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_biorxiv_url_selects_details_or_pubs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_crossref_stops_on_an_empty_page",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_dry_run_makes_no_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_continues_on_a_new_cursor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_errcode_in_a_200_body_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_reports_the_query_as_parsed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_europepmc_stops_on_an_echoed_cursor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_every_api_declares_a_delay_and_a_query_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_list_apis_needs_no_other_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_medrxiv_never_uses_the_api_medrxiv_host",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_missing_required_arguments_exit_2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_nonpositive_bounds_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_openalex_stops_on_an_empty_page",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests",
      "target": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_openalex_surfaces_the_reported_cost",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_dry_run_makes_no_request",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_list_apis_needs_no_other_argument",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_missing_required_arguments_exit_2",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#PaginateAdapterTests.test_nonpositive_bounds_are_rejected",
      "target": "tests/paper-lookup/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ReconciliationTests",
      "target": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_absent_total_is_a_documented_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ReconciliationTests",
      "target": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_bound_is_explained_not_a_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ReconciliationTests",
      "target": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_complete_walk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#ReconciliationTests",
      "target": "tests/paper-lookup/test_scripts.py#ReconciliationTests.test_unexplained_shortfall_is_not_ok",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "target": "tests/paper-lookup/test_scripts.py#RedactionTests.test_api_key_value_is_replaced_but_the_parameter_survives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "target": "tests/paper-lookup/test_scripts.py#RedactionTests.test_contact_details_are_redacted_too",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "target": "tests/paper-lookup/test_scripts.py#RedactionTests.test_dry_run_output_carries_no_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "target": "tests/paper-lookup/test_scripts.py#RedactionTests.test_redaction_is_case_insensitive_on_the_parameter_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#RedactionTests",
      "target": "tests/paper-lookup/test_scripts.py#RedactionTests.test_urls_without_a_query_are_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_every_reference_file_is_linked_from_skill_md",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_every_script_is_documented_in_skill_md",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_frontmatter_conforms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_bytecode_shipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_dynamic_execution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_leftover_tool_call_markup",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_no_stray_tests_under_the_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_paginate_covers_every_api_it_advertises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_referenced_paths_exist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_scripts_compile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/paper-lookup/test_scripts.py#StructureTests",
      "target": "tests/paper-lookup/test_scripts.py#StructureTests.test_skill_md_is_within_the_line_budget",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "tests/pathml/test_scripts.py#ManifestTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "tests/pathml/test_scripts.py#PlannerAndImageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "tests/pathml/test_scripts.py#SafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "tests/pathml/test_scripts.py#SpatialSchemaTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "image_qc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "plan_inference",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "plan_pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "slide_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py",
      "target": "validate_spatial_schema",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#ManifestTests",
      "target": "tests/pathml/test_scripts.py#ManifestTests.test_manifest_detects_patient_split_leakage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#ManifestTests",
      "target": "tests/pathml/test_scripts.py#ManifestTests.test_manifest_validation_and_redacted_inspection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#ManifestTests.test_manifest_detects_patient_split_leakage",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#ManifestTests.test_manifest_validation_and_redacted_inspection",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#PlannerAndImageTests",
      "target": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_inference_planner_uses_json_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#PlannerAndImageTests",
      "target": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_pipeline_planner_counts_tiles_and_rejects_unknown_transform",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#PlannerAndImageTests",
      "target": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_synthetic_and_binary_ppm_qc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_inference_planner_uses_json_only",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_pipeline_planner_counts_tiles_and_rejects_unknown_transform",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#PlannerAndImageTests.test_synthetic_and_binary_ppm_qc",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests",
      "target": "tests/pathml/test_scripts.py#SafetyTests.test_build_parsers_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests",
      "target": "tests/pathml/test_scripts.py#SafetyTests.test_every_cli_help_works_without_site_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests",
      "target": "tests/pathml/test_scripts.py#SafetyTests.test_private_atomic_json_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests",
      "target": "tests/pathml/test_scripts.py#SafetyTests.test_scripts_parse_without_dynamic_execution_or_network_imports",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests",
      "target": "tests/pathml/test_scripts.py#SafetyTests.test_skill_version_and_progressive_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests",
      "target": "tests/pathml/test_scripts.py#SafetyTests.test_strict_local_io_rejects_url_symlink_duplicates_and_nan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SafetyTests.test_every_cli_help_works_without_site_packages",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SpatialSchemaTests",
      "target": "tests/pathml/test_scripts.py#SpatialSchemaTests.test_graph_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SpatialSchemaTests",
      "target": "tests/pathml/test_scripts.py#SpatialSchemaTests.test_multiplex_schema_and_patient_split",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SpatialSchemaTests.test_graph_schema",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathml/test_scripts.py#SpatialSchemaTests.test_multiplex_schema_and_patient_split",
      "target": "tests/pathml/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#_load_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#_load_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#_sxx",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests.test_map_inverts_the_definition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ChildrenMapTests.test_prebuilt_map_gives_the_same_answer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_cumulative_fractions_are_monotonic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_empty_cohort_returns_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_submission_before_cohort_end_clamps_to_zero_lag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CohortCurveTests.test_undated_rows_leave_the_denominator_and_are_counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests.test_empty_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests.test_recent_thin_weeks_are_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#CoverageFlagTests.test_steady_series_flags_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_bare_rfc7807_detail_extracted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_base_url_overrides_the_registry",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_non_json_body_does_not_raise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_unknown_instance_lists_the_known_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ErrorSurfacingTests.test_wrapped_envelope_detail_extracted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_collection_date_differs_between_instances",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_missing_date_field_raises_with_the_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_range_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_string_typed_date_is_rejected_not_guessed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_submission_date_differs_between_instances",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_supports_range_follows_declared_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_collection_date_differs_between_instances",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_submission_date_differs_between_instances",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#FieldResolutionTests.test_supports_range_follows_declared_type",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_ha_clade_outranks_na_clade",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_indexed_column_preferred",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_no_lineage_column_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_per_segment_columns_excluded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_qc_columns_are_not_lineage_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_unindexed_instance_reports_no_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_indexed_column_preferred",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFieldTests.test_qc_columns_are_not_lineage_columns",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_bare_name_stays_exact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_exact_query_still_allowed_without_an_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_sublineages_expand_on_an_indexed_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_sublineages_refused_without_an_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageFilterTests.test_trailing_star_refused_without_an_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_header_and_blank_lines_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_parses_status_and_strips_the_marker",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_redesignation_target_is_extracted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageNotesTests.test_withdrawal_without_a_successor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_cycle_does_not_hang",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_descendants_are_transitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_leaf_has_no_descendants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_parent_chain_walks_to_the_root",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LineageTreeTests.test_root_has_no_parents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_alias_key_carries_recombinant_parents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_every_registered_instance_answers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_lapis_roots_recombinants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_sars_date_filter_is_a_400_on_h5n1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_schemas_declare_different_date_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_sublineage_wildcard_expands_on_an_indexed_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_unknown_lineage_rejected_on_an_indexed_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LiveApiTests.test_wildcard_matches_nothing_without_an_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_all_zero_observations_returns_no_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_dispersion_never_shrinks_the_interval_below_binomial",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_empty_weeks_are_dropped_not_counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_falling_series_has_negative_slope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_flat_series_slope_near_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_overdispersion_widens_the_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_rising_series_has_positive_slope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_too_few_nonzero_weeks_returns_no_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_too_few_points_returns_no_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_too_few_successes_returns_no_fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#LogitSlopeTests.test_dispersion_never_shrinks_the_interval_below_binomial",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#_sxx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_december_end_computed_correctly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_leap_february",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_previous_month",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MonthWindowTests.test_year_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests.test_gene_filter_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#MutationProfileTests.test_no_gene_filter_keeps_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_empty_rows_still_emit_a_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_json_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_table_columns_align",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#OutputFormatTests.test_tsv_has_a_header_and_blank_for_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_ordinary_lineage_has_no_recombinant_parents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_recombinant_parents_deduplicated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_expands_one_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_full_walks_to_a_fixed_point",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_leaves_root_lineages_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unalias_stops_at_a_recombinant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoHelperTests.test_unknown_prefix_is_returned_unchanged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests.test_blob_hashes_reported_per_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PangoProvenanceTests.test_no_fetch_yields_empty_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_aligned_window_is_not_reported_as_widened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_discovery_mode_picks_the_commonest_lineages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_empty_window_in_discovery_mode_exits_nonzero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_named_lineages_survive_alongside_top",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_no_names_defaults_to_discovery",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_real_descendants_still_produce_the_note",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_top_below_one_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_undated_sequences_do_not_fake_a_descendant_note",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_window_snaps_to_whole_iso_weeks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run.fake_aggregated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run.fake_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_aligned_window_is_not_reported_as_widened",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_discovery_mode_picks_the_commonest_lineages",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_empty_window_in_discovery_mode_exits_nonzero",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_named_lineages_survive_alongside_top",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_no_names_defaults_to_discovery",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_real_descendants_still_produce_the_note",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_top_below_one_is_rejected",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_undated_sequences_do_not_fake_a_descendant_note",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests.test_window_snaps_to_whole_iso_weeks",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#PrevalenceCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests.test_empty_string_preserved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests.test_list_values_repeat_the_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#QueryEncodingTests.test_none_values_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_current_name_exits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_lowercase_input_is_normalised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_withdrawn_name_exits_nonzero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_current_name_exits_zero",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_current_name_exits_zero",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_withdrawn_name_exits_nonzero",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#ResolveLineageCliTests.test_withdrawn_name_exits_nonzero",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_control_characters_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_error_detail_is_flattened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_json_output_stays_faithful",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_long_values_truncated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_newline_cannot_forge_a_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_none_becomes_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_ordinary_values_unchanged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#SanitizeTests.test_tab_in_a_label_cannot_break_tsv_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_empty_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_limit_respected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_null_and_empty_calls_excluded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#TopValuesTests.test_ranked_by_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_iso_week_start_is_monday",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_partial_and_null_dates_are_unparseable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_undated_rows_are_counted_separately",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WeekBinningTests.test_week_range_is_inclusive_and_gapless",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_missing_equals_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_range_suffix_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_unknown_field_suggests_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_valid_field_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_missing_equals_rejected",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_range_suffix_accepted",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WhereParsingTests.test_valid_field_accepted",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#schema",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_empty_denominator_is_maximally_uncertain",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_interval_brackets_the_estimate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_interval_narrows_with_n",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_interval_stays_inside_the_unit_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests",
      "target": "tests/pathogen-variant-surveillance/test_scripts.py#WilsonIntervalTests.test_zero_successes_has_nonzero_upper_bound",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "tests/pathway-enrichment/test_scripts.py#LibraryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "run_enrichment",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.test_a_csv_uses_its_first_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.test_a_plain_text_list_is_read_one_gene_per_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#GeneListReadingTests.test_a_tsv_is_split_on_tabs_not_commas",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#LibraryTests",
      "target": "tests/pathway-enrichment/test_scripts.py#LibraryTests.test_the_default_libraries_are_named_and_versioned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#LibraryTests",
      "target": "tests/pathway-enrichment/test_scripts.py#LibraryTests.test_the_default_set_is_free_of_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_header_row_is_detected_and_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_headerless_two_column_file_is_read_directly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_single_column_file_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_rows_with_unparseable_scores_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_symbols_are_normalised_for_the_organism",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_the_result_is_sorted_descending",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_header_row_is_detected_and_dropped",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_headerless_two_column_file_is_read_directly",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_a_single_column_file_is_refused",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_rows_with_unparseable_scores_are_dropped",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_symbols_are_normalised_for_the_organism",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankedFileTests.test_the_result_is_sorted_descending",
      "target": "tests/pathway-enrichment/test_scripts.py#RankedFileTests._rnk",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_a_table_with_neither_metric_exits_naming_its_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_a_zero_pvalue_is_clipped_rather_than_becoming_infinite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_column_names_are_matched_case_insensitively",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_duplicate_symbols_keep_their_first_occurrence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_rows_with_missing_statistics_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_fallback_metric_keeps_the_direction_of_the_fold_change",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_ranking_is_returned_in_descending_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_wald_statistic_is_preferred_when_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_a_table_with_neither_metric_exits_naming_its_columns",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_a_zero_pvalue_is_clipped_rather_than_becoming_infinite",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_column_names_are_matched_case_insensitively",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_duplicate_symbols_keep_their_first_occurrence",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_rows_with_missing_statistics_are_dropped",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_fallback_metric_keeps_the_direction_of_the_fold_change",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_ranking_is_returned_in_descending_order",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#RankingTests.test_the_wald_statistic_is_preferred_when_present",
      "target": "tests/pathway-enrichment/test_scripts.py#RankingTests._deseq2",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_an_unknown_organism_leaves_case_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_blank_and_placeholder_entries_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_duplicates_are_removed_after_normalisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_human_symbols_are_upper_cased",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_input_order_is_preserved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_mouse_symbols_are_title_cased",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests",
      "target": "tests/pathway-enrichment/test_scripts.py#SymbolCleaningTests.test_surrounding_whitespace_is_stripped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#PdfCoordinateTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "check_bounding_boxes",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "extract_form_field_info",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "fill_fillable_fields",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "fill_pdf_form_with_annotations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._messages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_clean_layout_reports_only_the_field_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_label_overlapping_its_own_entry_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_an_empty_form_reports_zero_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_on_different_pages_never_collide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_that_merely_touch_do_not_count_as_intersecting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_the_report_stops_after_twenty_messages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_two_fields_overlapping_each_other_are_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._messages",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_clean_layout_reports_only_the_field_count",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._messages",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_clean_layout_reports_only_the_field_count",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_label_overlapping_its_own_entry_is_reported",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_a_label_overlapping_its_own_entry_is_reported",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_an_empty_form_reports_zero_fields",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._messages",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_on_different_pages_never_collide",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_on_different_pages_never_collide",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_that_merely_touch_do_not_count_as_intersecting",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_boxes_that_merely_touch_do_not_count_as_intersecting",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_the_report_stops_after_twenty_messages",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._messages",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_the_report_stops_after_twenty_messages",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_two_fields_overlapping_each_other_are_reported",
      "target": "tests/pdf/test_scripts.py#BoundingBoxCheckTests._failures",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#BoundingBoxCheckTests.test_two_fields_overlapping_each_other_are_reported",
      "target": "tests/pdf/test_scripts.py#field",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_checkbox_learns_its_checked_and_unchecked_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_choice_field_carries_its_options",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_text_field_is_typed_as_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_an_unrecognised_field_type_is_labelled_rather_than_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_the_state_order_does_not_decide_which_value_means_checked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_checkbox_learns_its_checked_and_unchecked_values",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_choice_field_carries_its_options",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_a_text_field_is_typed_as_text",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_an_unrecognised_field_type_is_labelled_rather_than_dropped",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#FieldDescriptorTests.test_the_state_order_does_not_decide_which_value_means_checked",
      "target": "tests/pdf/test_scripts.py#FieldDescriptorTests._descriptor",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "target": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_a_box_at_the_image_bottom_lands_at_the_pdf_origin",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "target": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_a_box_at_the_image_origin_lands_at_the_pdf_top",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "target": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_identity_scaling_only_flips_the_y_axis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "target": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_the_box_keeps_its_size_under_a_pure_flip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests",
      "target": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_the_transform_is_invertible_within_rounding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_a_box_at_the_image_bottom_lands_at_the_pdf_origin",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_a_box_at_the_image_origin_lands_at_the_pdf_top",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_identity_scaling_only_flips_the_y_axis",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_the_box_keeps_its_size_under_a_pure_flip",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ImageToPdfTransformTests.test_the_transform_is_invertible_within_rounding",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#PdfCoordinateTests",
      "target": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_a_box_spanning_the_full_page_is_unchanged_vertically",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#PdfCoordinateTests",
      "target": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_flipping_twice_returns_the_original",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#PdfCoordinateTests",
      "target": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_the_y_axis_is_flipped_about_the_page_height",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_a_box_spanning_the_full_page_is_unchanged_vertically",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_flipping_twice_returns_the_original",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#PdfCoordinateTests.test_the_y_axis_is_flipped_about_the_page_height",
      "target": "tests/pdf/test_scripts.py#coords",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests._error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_checkbox_accepts_only_its_two_declared_states",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_choice_field_accepts_only_its_option_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_radio_group_accepts_only_its_option_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_text_field_accepts_any_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_checkbox_accepts_only_its_two_declared_states",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests._error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_choice_field_accepts_only_its_option_values",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests._error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_radio_group_accepts_only_its_option_values",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests._error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pdf/test_scripts.py#ValueValidationTests.test_a_text_field_accepts_any_string",
      "target": "tests/pdf/test_scripts.py#ValueValidationTests._error",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#CitationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#ClaimEvidenceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#IntakeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#ready_intake",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#ReportingGuidelineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "audit_citations",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "audit_statistics_reproducibility",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "generate_review_scaffold",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "lint_review",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "select_reporting_guidelines",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "validate_claim_evidence",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py",
      "target": "validate_review_intake",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests",
      "target": "tests/peer-review/test_scripts.py#CitationTests._write_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests",
      "target": "tests/peer-review/test_scripts.py#CitationTests.test_matching_citation_is_valid_without_prose_echo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests",
      "target": "tests/peer-review/test_scripts.py#CitationTests.test_missing_reference_reports_only_identifier_and_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests.test_matching_citation_is_valid_without_prose_echo",
      "target": "skills/peer-review/scripts/audit_citations.py#load_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests.test_matching_citation_is_valid_without_prose_echo",
      "target": "tests/peer-review/test_scripts.py#CitationTests._write_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests.test_missing_reference_reports_only_identifier_and_line",
      "target": "skills/peer-review/scripts/audit_citations.py#load_references",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#CitationTests.test_missing_reference_reports_only_identifier_and_line",
      "target": "tests/peer-review/test_scripts.py#CitationTests._write_references",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ClaimEvidenceTests",
      "target": "tests/peer-review/test_scripts.py#ClaimEvidenceTests.test_supported_claim_without_evidence_is_invalid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ClaimEvidenceTests",
      "target": "tests/peer-review/test_scripts.py#ClaimEvidenceTests.test_template_matrix_is_structurally_valid_with_gaps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_assets_parse_and_source_ledger_is_dated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_no_bytecode_or_removed_schematic_scripts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_oversized_json_is_rejected_before_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_private_output_refuses_implicit_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_scripts_have_no_network_dynamic_execution_or_secret_access",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_skill_frontmatter_and_progressive_disclosure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests",
      "target": "tests/peer-review/test_scripts.py#FileSafetyAndStaticTests.test_symlink_input_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests",
      "target": "tests/peer-review/test_scripts.py#IntakeTests.test_completed_local_intake_is_ready",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests",
      "target": "tests/peer-review/test_scripts.py#IntakeTests.test_external_service_and_reuse_are_blocked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests",
      "target": "tests/peer-review/test_scripts.py#IntakeTests.test_template_is_safely_blocked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests.test_completed_local_intake_is_ready",
      "target": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests.test_completed_local_intake_is_ready",
      "target": "tests/peer-review/test_scripts.py#ready_intake",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests.test_external_service_and_reuse_are_blocked",
      "target": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests.test_external_service_and_reuse_are_blocked",
      "target": "tests/peer-review/test_scripts.py#ready_intake",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests.test_template_is_safely_blocked",
      "target": "skills/peer-review/scripts/validate_review_intake.py#validate_intake",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#IntakeTests.test_template_is_safely_blocked",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ready_intake",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests",
      "target": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_ai_rct_adds_extension",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests",
      "target": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_coverage_is_complete_record_but_not_quality_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests",
      "target": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_rct_profile_selects_current_consort",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests",
      "target": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_reported_item_without_location_is_invalid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_ai_rct_adds_extension",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_ai_rct_adds_extension",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_ai_rct_adds_extension",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_coverage_is_complete_record_but_not_quality_score",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_coverage_is_complete_record_but_not_quality_score",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_coverage",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_coverage_is_complete_record_but_not_quality_score",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_coverage_is_complete_record_but_not_quality_score",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_rct_profile_selects_current_consort",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_rct_profile_selects_current_consort",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_rct_profile_selects_current_consort",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_reported_item_without_location_is_invalid",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_catalog",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_reported_item_without_location_is_invalid",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_coverage",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_reported_item_without_location_is_invalid",
      "target": "skills/peer-review/scripts/select_reporting_guidelines.py#load_profile",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ReportingGuidelineTests.test_reported_item_without_location_is_invalid",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests",
      "target": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_abuse_decision_and_missing_action_are_flagged_without_echo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests",
      "target": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_complete_structured_review_passes_lint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests",
      "target": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_has_separate_channels_and_no_manuscript_prose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests",
      "target": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_requires_ready_intake",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_has_separate_channels_and_no_manuscript_prose",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_has_separate_channels_and_no_manuscript_prose",
      "target": "tests/peer-review/test_scripts.py#ready_intake",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_requires_ready_intake",
      "target": "skills/scholar-evaluation/scripts/generate_report_scaffold.py#generate_scaffold",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/peer-review/test_scripts.py#ScaffoldAndLintTests.test_scaffold_requires_ready_intake",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests",
      "target": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_missing_core_item_is_invalid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests",
      "target": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_template_is_valid_without_becoming_a_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests",
      "target": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_verified_item_requires_evidence_location",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_missing_core_item_is_invalid",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_template_is_valid_without_becoming_a_score",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/peer-review/test_scripts.py#StatisticsReproducibilityTests.test_verified_item_requires_evidence_location",
      "target": "tests/peer-review/test_scripts.py#load_asset_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#DependencyCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tests/phylogenetics/test_scripts.py#VisualisationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests",
      "target": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_complete_toolchain_reports_success_and_returns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests",
      "target": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_missing_tool_exits_with_its_install_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests",
      "target": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_every_tool_is_probed_by_name_on_the_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_complete_toolchain_reports_success_and_returns",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_complete_toolchain_reports_success_and_returns",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_missing_tool_exits_with_its_install_command",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_a_missing_tool_exits_with_its_install_command",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_every_tool_is_probed_by_name_on_the_path",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#DependencyCheckTests.test_every_tool_is_probed_by_name_on_the_path",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_a_fasttree_failure_is_raised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_amino_acids_get_a_protein_model_and_no_nucleotide_flag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_nucleotides_get_the_nucleotide_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_alignment_is_the_final_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_tree_path_is_returned_and_created",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_a_fasttree_failure_is_raised",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_a_fasttree_failure_is_raised",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_amino_acids_get_a_protein_model_and_no_nucleotide_flag",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_nucleotides_get_the_nucleotide_model",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_alignment_is_the_final_argument",
      "target": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_tree_path_is_returned_and_created",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#FastTreeCommandTests.test_the_tree_path_is_returned_and_created",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_a_missing_log_is_not_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_iqtree_failure_is_raised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_outgroup_is_passed_only_when_one_is_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_bootstrap_and_thread_counts_are_not_hardcoded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_command_carries_the_documented_flags",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_returned_path_is_iqtrees_treefile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_selected_model_is_echoed_from_the_log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_a_missing_log_is_not_an_error",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_iqtree_failure_is_raised",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_iqtree_failure_is_raised",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_an_outgroup_is_passed_only_when_one_is_given",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_bootstrap_and_thread_counts_are_not_hardcoded",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_command_carries_the_documented_flags",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_returned_path_is_iqtrees_treefile",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.test_the_selected_model_is_echoed_from_the_log",
      "target": "tests/phylogenetics/test_scripts.py#IqTreeCommandTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_a_mafft_failure_is_raised_not_swallowed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_an_explicit_method_overrides_the_size_bands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_small_datasets_get_the_accurate_pairwise_strategy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_alignment_is_written_to_the_requested_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_input_order_is_preserved_and_the_file_comes_last",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_thousand_sequence_boundary_is_inclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_thread_count_reaches_mafft_as_a_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_two_hundred_sequence_boundary_is_inclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_a_mafft_failure_is_raised_not_swallowed",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_a_mafft_failure_is_raised_not_swallowed",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_a_mafft_failure_is_raised_not_swallowed",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_an_explicit_method_overrides_the_size_bands",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_small_datasets_get_the_accurate_pairwise_strategy",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_alignment_is_written_to_the_requested_path",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_alignment_is_written_to_the_requested_path",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_alignment_is_written_to_the_requested_path",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_input_order_is_preserved_and_the_file_comes_last",
      "target": "tests/phylogenetics/test_scripts.py#recorded",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_input_order_is_preserved_and_the_file_comes_last",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_input_order_is_preserved_and_the_file_comes_last",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_thousand_sequence_boundary_is_inclusive",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_thread_count_reaches_mafft_as_a_string",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#MafftCommandTests.test_the_two_hundred_sequence_boundary_is_inclusive",
      "target": "tests/phylogenetics/test_scripts.py#MafftCommandTests.align",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_mafft_method_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_sequence_type_is_refused_before_any_tool_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_fasttree_replaces_iqtree_rather_than_running_alongside_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_default_run_is_align_then_iqtree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_outgroup_reaches_both_iqtree_and_the_visualisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_sequence_type_reaches_fasttrees_model_choice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_mafft_method_is_refused",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_mafft_method_is_refused",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_sequence_type_is_refused_before_any_tool_runs",
      "target": "tests/phylogenetics/test_scripts.py#Recorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_an_unsupported_sequence_type_is_refused_before_any_tool_runs",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_fasttree_replaces_iqtree_rather_than_running_alongside_it",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_default_run_is_align_then_iqtree",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_outgroup_reaches_both_iqtree_and_the_visualisation",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.test_the_sequence_type_reaches_fasttrees_model_choice",
      "target": "tests/phylogenetics/test_scripts.py#PipelineWiringTests.run_pipeline",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#Recorder",
      "target": "tests/phylogenetics/test_scripts.py#Recorder.__call__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#Recorder",
      "target": "tests/phylogenetics/test_scripts.py#Recorder.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#Recorder",
      "target": "tests/phylogenetics/test_scripts.py#Recorder.assert_called",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#Recorder",
      "target": "tests/phylogenetics/test_scripts.py#Recorder.command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#Recorder.command",
      "target": "tests/phylogenetics/test_scripts.py#Recorder.assert_called",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.newick",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "target": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_a_missing_file_raises_rather_than_reporting_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "target": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_a_wrapped_sequence_counts_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "target": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_an_angle_bracket_that_does_not_start_a_line_is_not_a_header",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "target": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_an_empty_file_has_no_sequences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "target": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_headers_are_counted_not_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_an_empty_file_has_no_sequences",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#SequenceCountTests.test_headers_are_counted_not_lines",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.fasta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "target": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_an_unreadable_tree_returns_an_empty_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "target": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_malformed_newick_returns_an_empty_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "target": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_the_mean_is_consistent_with_the_total",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "target": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_the_summary_matches_the_newick_string",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_the_mean_is_consistent_with_the_total",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#TreeSummaryTests.test_the_summary_matches_the_newick_string",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#VisualisationTests",
      "target": "tests/phylogenetics/test_scripts.py#VisualisationTests.test_a_missing_qt_backend_names_the_package_it_needs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#VisualisationTests",
      "target": "tests/phylogenetics/test_scripts.py#VisualisationTests.test_the_rooting_choice_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#VisualisationTests",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#VisualisationTests.test_a_missing_qt_backend_names_the_package_it_needs",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/phylogenetics/test_scripts.py#VisualisationTests.test_the_rooting_choice_is_reported",
      "target": "tests/phylogenetics/test_scripts.py#ScratchCase.newick",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#analytical_oral_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "_models",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "allometry_and_fih",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "bioequivalence",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "ddi_static",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "exposure_response",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "nca",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#analytical_oral_profile",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_allometric_scaling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_exponent_regression_recovers_a_known_slope",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_fda_conversion_factors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_maturation_is_monotone_and_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_mrsd_uses_the_most_sensitive_species",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_neonate_without_maturation_raises_a_finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_rule_of_exponents_bands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH",
      "target": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_unknown_species_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_mrsd_uses_the_most_sensitive_species",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestAllometryAndFIH.test_neonate_without_maturation_raises_a_finding",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_abel_cap_is_exact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_abel_does_not_widen_below_30_percent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_crossover_removes_the_period_effect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_cv_roundtrip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_nti_limits_applied",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_power_is_monotone_in_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_reference_variability_needs_replicated_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_rsabe_bound_passes_when_difference_is_small_and_cvwr_high",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_sample_size_matches_published_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence",
      "target": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_scaling_refused_without_a_replicate_design",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_nti_limits_applied",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_nti_limits_applied",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_scaling_refused_without_a_replicate_design",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestBioequivalence.test_scaling_refused_without_a_replicate_design",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_column_names_are_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_comment_lines_and_blank_lines_skipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_duplicate_columns_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_json_output_is_parseable_and_self_contained",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_missing_input_file_exits_two",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_report_exit_codes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_tsv_is_detected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_tsv_output_has_no_notes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_json_output_is_parseable_and_self_contained",
      "target": "tests/pkpd-modeling/test_scripts.py#analytical_oral_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_json_output_is_parseable_and_self_contained",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_missing_input_file_exits_two",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_tsv_output_has_no_notes",
      "target": "tests/pkpd-modeling/test_scripts.py#analytical_oral_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCLIContract.test_tsv_output_has_no_notes",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_f_test_rejects_the_third_compartment_and_accepts_the_second",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_structural_misspecification_via_runs_test",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_unidentifiable_third_compartment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_recovers_two_compartment_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_f_test_rejects_the_third_compartment_and_accepts_the_second",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_f_test_rejects_the_third_compartment_and_accepts_the_second",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_structural_misspecification_via_runs_test",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_structural_misspecification_via_runs_test",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_unidentifiable_third_compartment",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_flags_unidentifiable_third_compartment",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_recovers_two_compartment_parameters",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.test_recovers_two_compartment_parameters",
      "target": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestCompartmentalFitting.two_compartment_data",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_auc_ratio_cannot_exceed_the_fm_ceiling",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_basic_reversible_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_classification_bands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_induction_ratio_below_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_mechanistic_static_model_matches_hand_calculation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_no_perpetrator_gives_unity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDDIStatic.test_tdi_ratio_reduces_to_one_without_inactivation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_absorption_singularity_uses_the_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_auc_equals_dose_over_clearance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_disposition_rejects_mismatched_peripherals",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_effect_compartment_equilibrates_to_constant_input",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_effect_compartment_matches_analytical_solution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_indirect_response_starts_at_baseline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_infusion_reaches_rate_over_clearance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_initial_concentration_is_dose_over_v1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_michaelis_menten_is_not_dose_proportional",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_michaelis_menten_reduces_to_linear_at_high_km",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_one_compartment_matches_closed_form",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_oral_matches_bateman",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_steady_state_metrics_match_brute_force_superposition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_tmdd_target_is_suppressed_by_drug_and_recovers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_tmdd_without_drug_sits_at_the_target_baseline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_vss_and_mrt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_indirect_response_starts_at_baseline",
      "target": "tests/pkpd-modeling/test_scripts.py#TestDispositionIdentities.test_indirect_response_starts_at_baseline.conc",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_cqtc_flags_extrapolation_and_the_10ms_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_cqtc_matches_ordinary_least_squares",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_emax_recovers_known_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_flags_a_plateau_outside_the_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_logistic_rejects_non_binary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_logistic_slope_sign",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_quartile_summary_is_ordered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse",
      "target": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_sigmoid_emax_recovers_the_hill_coefficient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_flags_a_plateau_outside_the_data",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestExposureResponse.test_flags_a_plateau_outside_the_data",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_aumc_log_down_matches_the_analytical_integral",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_blq_rules_change_the_result_as_documented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_flags_excessive_extrapolation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_lambda_z_excludes_tmax",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_lambda_z_refuses_with_too_few_points",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_log_down_trapezoid_is_below_linear_on_a_declining_curve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_partial_auc_matches_full_auc_over_the_whole_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_recovers_known_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_rejects_missing_dose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA",
      "target": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_steady_state_parameters",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_blq_rules_change_the_result_as_documented",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_blq_rules_change_the_result_as_documented",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_flags_excessive_extrapolation",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_flags_excessive_extrapolation",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_recovers_known_parameters",
      "target": "tests/pkpd-modeling/test_scripts.py#analytical_oral_profile",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_recovers_known_parameters",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_rejects_missing_dose",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_rejects_missing_dose",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_steady_state_parameters",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestNCA.test_steady_state_parameters",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck",
      "target": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_addl_without_ii_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck",
      "target": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_catches_planted_defects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck",
      "target": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_clean_dataset_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck",
      "target": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_strict_mode_fails_on_warnings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_addl_without_ii_is_an_error",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_addl_without_ii_is_an_error",
      "target": "tests/pkpd-modeling/test_scripts.py#write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_catches_planted_defects",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_clean_dataset_passes",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestPopPKDatasetCheck.test_strict_mode_fails_on_warnings",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_every_referenced_file_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_every_script_is_documented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_frontmatter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_internal_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_no_bytecode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_no_stray_tests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure",
      "target": "tests/pkpd-modeling/test_scripts.py#TestSkillStructure.test_scripts_compile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_accumulation_ratio_is_consistent_across_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_level_beyond_the_interval_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_map_recovers_a_known_individual",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_mismatched_peripheral_arguments_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_monte_carlo_attainment_is_a_fraction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_regimen_comparison_preserves_cavg_for_equal_daily_dose",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_simulate_regimen_matches_closed_form_steady_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation",
      "target": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_single_level_raises_a_finding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_accumulation_ratio_is_consistent_across_metrics",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_level_beyond_the_interval_rejected",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_map_recovers_a_known_individual",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_mismatched_peripheral_arguments_rejected",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_monte_carlo_attainment_is_a_fraction",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_regimen_comparison_preserves_cavg_for_equal_daily_dose",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_simulate_regimen_matches_closed_form_steady_state",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pkpd-modeling/test_scripts.py#TestTDMAndSimulation.test_single_level_raises_a_finding",
      "target": "tests/pkpd-modeling/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/synthetic_posters.py",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/synthetic_posters.py",
      "target": "typing",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "tests/pptx-posters/test_generation_smoke.py#exact_dependencies_available",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "tests/pptx-posters/test_generation_smoke.py#exact_dependencies_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "_pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "check_layout",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "generate_poster",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "importlib.metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "inventory_images",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "synthetic_posters",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests",
      "target": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests",
      "target": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_hidden_image_metadata_is_a_release_blocker",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "skills/pptx-posters/scripts/_manifest.py#load_and_validate_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "skills/pptx-posters/scripts/_pptx.py#analyze_layout",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "skills/pptx-posters/scripts/check_layout.py#apply_manifest_checks",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "skills/pptx-posters/scripts/generate_poster.py#generate_poster",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_generate_inspect_layout_inventory_alt_text_and_no_overwrite",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_hidden_image_metadata_is_a_release_blocker",
      "target": "skills/pptx-posters/scripts/inventory_images.py#build_inventory",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_generation_smoke.py#GenerationSmokeTests.test_hidden_image_metadata_is_a_release_blocker",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "tests/pptx-posters/test_scripts.py#OutputSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "_pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "check_palette",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "plan_export",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "synthetic_posters",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_asset_requires_explicit_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_contrast_can_be_reported_by_palette_audit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_declared_contrast_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_complete_synthetic_manifest_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_content_change_invalidates_author_approval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_control_characters_are_rejected_before_generation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_duplicate_json_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_long_description_is_source_bound_and_follows_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_nonuniform_physical_scaling_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_palette_cli_uses_finding_exit_code",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_placeholder_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_qr_requires_exact_visible_fallback_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_remote_asset_path_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_template_is_not_valid_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_title_must_be_first_in_reading_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_uniform_physical_scaling_is_explicit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests",
      "target": "tests/pptx-posters/test_scripts.py#ManifestTests.test_unknown_exact_source_id_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_asset_requires_explicit_provenance",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_asset_requires_explicit_provenance",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_contrast_can_be_reported_by_palette_audit",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_contrast_can_be_reported_by_palette_audit",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_contrast_can_be_reported_by_palette_audit",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_declared_contrast_is_rejected",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_bad_declared_contrast_is_rejected",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_complete_synthetic_manifest_passes",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_complete_synthetic_manifest_passes",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_content_change_invalidates_author_approval",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_content_change_invalidates_author_approval",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_control_characters_are_rejected_before_generation",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_control_characters_are_rejected_before_generation",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_duplicate_json_key_is_rejected",
      "target": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_long_description_is_source_bound_and_follows_image",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_long_description_is_source_bound_and_follows_image",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_long_description_is_source_bound_and_follows_image",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_nonuniform_physical_scaling_is_rejected",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_nonuniform_physical_scaling_is_rejected",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_nonuniform_physical_scaling_is_rejected",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_palette_cli_uses_finding_exit_code",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_palette_cli_uses_finding_exit_code",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_placeholder_fails_closed",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_placeholder_fails_closed",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_qr_requires_exact_visible_fallback_url",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_qr_requires_exact_visible_fallback_url",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_qr_requires_exact_visible_fallback_url",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_remote_asset_path_is_rejected",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_remote_asset_path_is_rejected",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_template_is_not_valid_content",
      "target": "skills/pptx-posters/scripts/_common.py#load_json_file",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_template_is_not_valid_content",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_title_must_be_first_in_reading_order",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_title_must_be_first_in_reading_order",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_title_must_be_first_in_reading_order",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_uniform_physical_scaling_is_explicit",
      "target": "skills/pptx-posters/scripts/_manifest.py#manifest_content_hash",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_uniform_physical_scaling_is_explicit",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_uniform_physical_scaling_is_explicit",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_unknown_exact_source_id_is_rejected",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#ManifestTests.test_unknown_exact_source_id_is_rejected",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#OutputSafetyTests",
      "target": "tests/pptx-posters/test_scripts.py#OutputSafetyTests.test_output_never_overwrites",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests",
      "target": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_cmyk_requirement_blocks_readiness",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests",
      "target": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_palette_reports_reference_contrast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_cmyk_requirement_blocks_readiness",
      "target": "skills/pptx-posters/scripts/_manifest.py#validate_manifest_document",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_cmyk_requirement_blocks_readiness",
      "target": "skills/pptx-posters/scripts/plan_export.py#build_export_plan",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_cmyk_requirement_blocks_readiness",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PaletteAndPlanTests.test_palette_reports_reference_contrast",
      "target": "tests/pptx-posters/synthetic_posters.py#build_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_declared_member_count_is_bounded_before_materialization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_embedded_binary_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_excessive_compression_ratio_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_external_relationship_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_image_signature_must_match_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_invalid_relationship_target_mode_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_macro_content_hidden_in_pptx_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_minimal_macro_free_package_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_non_utf8_entity_bearing_xml_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_ole_markup_without_payload_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_pptm_extension_is_rejected_without_opening",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_remote_linked_image_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_strict_profile_requires_exactly_one_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_traversal_member_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests",
      "target": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_unknown_package_part_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_declared_member_count_is_bounded_before_materialization",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_declared_member_count_is_bounded_before_materialization",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_embedded_binary_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_embedded_binary_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_excessive_compression_ratio_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_excessive_compression_ratio_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_external_relationship_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_external_relationship_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_image_signature_must_match_suffix",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_image_signature_must_match_suffix",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_invalid_relationship_target_mode_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_invalid_relationship_target_mode_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_macro_content_hidden_in_pptx_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_macro_content_hidden_in_pptx_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_minimal_macro_free_package_passes",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_minimal_macro_free_package_passes",
      "target": "skills/pptx-posters/scripts/_pptx.py#require_safe_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_minimal_macro_free_package_passes",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_non_utf8_entity_bearing_xml_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_non_utf8_entity_bearing_xml_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_ole_markup_without_payload_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_ole_markup_without_payload_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_pptm_extension_is_rejected_without_opening",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_pptm_extension_is_rejected_without_opening",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_remote_linked_image_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_remote_linked_image_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_strict_profile_requires_exactly_one_slide",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_strict_profile_requires_exactly_one_slide",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_traversal_member_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_traversal_member_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_unknown_package_part_is_rejected",
      "target": "skills/pptx-posters/scripts/_pptx.py#inspect_pptx",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pptx-posters/test_scripts.py#PptxSecurityTests.test_unknown_package_part_is_rejected",
      "target": "tests/pptx-posters/test_scripts.py#write_minimal_pptx",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "tests/pptx-posters/test_static.py#DocumentationPolicyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#DocumentationPolicyTests",
      "target": "tests/pptx-posters/test_static.py#DocumentationPolicyTests.test_no_retired_service_or_script_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#DocumentationPolicyTests",
      "target": "tests/pptx-posters/test_static.py#DocumentationPolicyTests.test_source_ledger_is_dated_and_covers_required_authorities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "target": "tests/pptx-posters/test_static.py#FrontmatterTests.test_exact_generation_pins",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "target": "tests/pptx-posters/test_static.py#FrontmatterTests.test_expected_files_and_deletions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "target": "tests/pptx-posters/test_static.py#FrontmatterTests.test_skill_version_license_compatibility_and_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "target": "tests/pptx-posters/test_static.py#FrontmatterTests.test_template_is_deliberately_fail_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#FrontmatterTests",
      "target": "tests/pptx-posters/test_static.py#FrontmatterTests.test_text_files_have_clean_line_endings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#PythonPolicyTests",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests._trees",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#PythonPolicyTests",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_cli_help_is_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#PythonPolicyTests",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_optional_generation_imports_are_lazy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#PythonPolicyTests",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_scripts_parse_and_avoid_network_shell_dynamic_code_and_objects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_optional_generation_imports_are_lazy",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests._trees",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx-posters/test_static.py#PythonPolicyTests.test_scripts_parse_and_avoid_network_shell_dynamic_code_and_objects",
      "target": "tests/pptx-posters/test_static.py#PythonPolicyTests._trees",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#DeckTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#SlideIdTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#SlideNumberingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#SourceParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#ThumbnailConstantTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tests/pptx/test_scripts.py#TrashRemovalTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "add_slide",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "clean",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "thumbnail",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#Deck",
      "target": "tests/pptx/test_scripts.py#Deck.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#DeckTestCase",
      "target": "tests/pptx/test_scripts.py#DeckTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_a_deck_with_no_orphans_loses_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_a_package_with_no_slides_directory_is_a_no_op",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_an_unreadable_presentation_refuses_rather_than_deleting_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_an_unregistered_slide_is_not_reported_as_referenced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_only_the_orphan_is_removed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_registered_slides_are_reported_as_referenced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_the_rels_file_goes_with_its_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests",
      "target": "tests/pptx/test_scripts.py#DeckTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_a_deck_with_no_orphans_loses_nothing",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_an_unreadable_presentation_refuses_rather_than_deleting_everything",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_an_unregistered_slide_is_not_reported_as_referenced",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_only_the_orphan_is_removed",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_registered_slides_are_reported_as_referenced",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#OrphanDetectionTests.test_the_rels_file_goes_with_its_slide",
      "target": "tests/pptx/test_scripts.py#Deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideIdTests",
      "target": "tests/pptx/test_scripts.py#SlideIdTests.test_shared_part_types_are_the_documented_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideIdTests",
      "target": "tests/pptx/test_scripts.py#SlideIdTests.test_the_id_range_matches_the_ooxml_specification",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideIdTests",
      "target": "tests/pptx/test_scripts.py#SlideIdTests.test_the_minimal_slide_xml_is_well_formed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideIdTests",
      "target": "tests/pptx/test_scripts.py#SlideIdTests.test_the_relationship_pattern_matches_both_element_forms",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideNumberingTests",
      "target": "tests/pptx/test_scripts.py#SlideNumberingTests.test_files_that_are_not_slides_are_ignored",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideNumberingTests",
      "target": "tests/pptx/test_scripts.py#SlideNumberingTests.test_the_first_slide_in_an_empty_deck_is_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideNumberingTests",
      "target": "tests/pptx/test_scripts.py#SlideNumberingTests.test_the_next_number_follows_the_highest_existing_slide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SlideNumberingTests",
      "target": "tests/pptx/test_scripts.py#DeckTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SourceParsingTests",
      "target": "tests/pptx/test_scripts.py#SourceParsingTests.test_a_layout_filename_is_recognised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#SourceParsingTests",
      "target": "tests/pptx/test_scripts.py#SourceParsingTests.test_anything_else_is_treated_as_a_slide_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#ThumbnailConstantTests",
      "target": "tests/pptx/test_scripts.py#ThumbnailConstantTests.test_the_grid_constants_are_sane",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#TrashRemovalTests",
      "target": "tests/pptx/test_scripts.py#TrashRemovalTests.test_a_package_without_one_is_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#TrashRemovalTests",
      "target": "tests/pptx/test_scripts.py#TrashRemovalTests.test_a_trash_directory_is_removed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pptx/test_scripts.py#TrashRemovalTests",
      "target": "tests/pptx/test_scripts.py#DeckTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tests/primekg/test_scripts.py#DataPathTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tests/primekg/test_scripts.py#NeighborTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tests/primekg/test_scripts.py#PathTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tests/primekg/test_scripts.py#SearchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "query_primekg",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DataPathTests",
      "target": "tests/primekg/test_scripts.py#DataPathTests.test_a_missing_file_explains_where_to_get_the_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DataPathTests",
      "target": "tests/primekg/test_scripts.py#DataPathTests.test_the_default_path_is_relative_and_env_overridable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "target": "tests/primekg/test_scripts.py#DiseaseContextTests.test_a_disease_with_no_drug_edges_reports_an_empty_bucket",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "target": "tests/primekg/test_scripts.py#DiseaseContextTests.test_a_gene_name_is_not_mistaken_for_a_disease",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "target": "tests/primekg/test_scripts.py#DiseaseContextTests.test_an_unknown_disease_reports_an_error_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "target": "tests/primekg/test_scripts.py#DiseaseContextTests.test_the_context_is_bucketed_by_neighbour_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#DiseaseContextTests",
      "target": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#NeighborTests",
      "target": "tests/primekg/test_scripts.py#NeighborTests.test_a_node_id_is_matched_as_a_string_or_a_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#NeighborTests",
      "target": "tests/primekg/test_scripts.py#NeighborTests.test_a_relation_filter_restricts_the_edge_type",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#NeighborTests",
      "target": "tests/primekg/test_scripts.py#NeighborTests.test_an_unknown_node_has_no_neighbors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#NeighborTests",
      "target": "tests/primekg/test_scripts.py#NeighborTests.test_neighbors_are_collected_from_both_directions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#NeighborTests",
      "target": "tests/primekg/test_scripts.py#NeighborTests.test_the_display_relation_is_carried_through",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#NeighborTests",
      "target": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#PathTests",
      "target": "tests/primekg/test_scripts.py#PathTests.test_a_direct_edge_is_returned_as_a_one_hop_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#PathTests",
      "target": "tests/primekg/test_scripts.py#PathTests.test_direction_does_not_matter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#PathTests",
      "target": "tests/primekg/test_scripts.py#PathTests.test_two_hop_search_is_documented_as_unimplemented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#PathTests",
      "target": "tests/primekg/test_scripts.py#PathTests.test_unconnected_nodes_yield_no_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#PathTests",
      "target": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "target": "tests/primekg/test_scripts.py#PrimeKgTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#SearchTests",
      "target": "tests/primekg/test_scripts.py#SearchTests.test_a_type_filter_narrows_the_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#SearchTests",
      "target": "tests/primekg/test_scripts.py#SearchTests.test_no_match_returns_an_empty_list",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#SearchTests",
      "target": "tests/primekg/test_scripts.py#SearchTests.test_nodes_are_found_on_either_side_of_an_edge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#SearchTests",
      "target": "tests/primekg/test_scripts.py#SearchTests.test_results_carry_the_source_database",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#SearchTests",
      "target": "tests/primekg/test_scripts.py#SearchTests.test_search_is_case_insensitive_and_substring_based",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/primekg/test_scripts.py#SearchTests",
      "target": "tests/primekg/test_scripts.py#PrimeKgTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "scripts",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "scripts._common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py",
      "target": "urllib.error",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse.__enter__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse.__exit__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse.getcode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse.read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.tearDown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_all_help_paths_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_auth_validator_reports_presence_without_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_duplicate_json_keys_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_get_uses_named_token_without_emitting_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_list_follows_only_validated_bounded_page",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_pdf_export_writes_private_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_offline_protocol_summary_preserves_version_and_attribution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_origin_allowlist_is_https_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_pagination_rejects_untrusted_next_host_and_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_publish_plan_requires_protocol_uri_not_doi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_read_plan_does_not_touch_network_or_credentials",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_redirect_handler_refuses_redirects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_response_size_cap_is_enforced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_retry_after_is_capped_and_attempts_are_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_sanitizer_redacts_remote_credential_fields",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_upload_plan_hashes_bounded_local_file_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_write_planner_redacts_and_never_executes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests",
      "target": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_write_planner_requires_exact_confirmation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_duplicate_json_keys_are_rejected",
      "target": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_get_uses_named_token_without_emitting_it",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_get_uses_named_token_without_emitting_it",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_list_follows_only_validated_bounded_page",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_list_follows_only_validated_bounded_page",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_pdf_export_writes_private_file",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_mocked_pdf_export_writes_private_file",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_offline_protocol_summary_preserves_version_and_attribution",
      "target": "skills/protocolsio-integration/scripts/_common.py#load_local_json",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_origin_allowlist_is_https_only",
      "target": "skills/protocolsio-integration/scripts/_common.py#validate_origin",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_redirect_handler_refuses_redirects",
      "target": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_redirect_handler_refuses_redirects",
      "target": "skills/protocolsio-integration/scripts/_common.py#NoRedirectHandler.redirect_request",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_response_size_cap_is_enforced",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_response_size_cap_is_enforced",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_retry_after_is_capped_and_attempts_are_bounded",
      "target": "tests/protocolsio-integration/test_scripts.py#FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_retry_after_is_capped_and_attempts_are_bounded",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#ScriptTests.test_sanitizer_redacts_remote_credential_fields",
      "target": "skills/protocolsio-integration/scripts/_common.py#sanitize_untrusted",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/protocolsio-integration/test_scripts.py#SequenceOpener",
      "target": "tests/protocolsio-integration/test_scripts.py#SequenceOpener.open",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "tests/pufferlib/test_scripts.py#CheckpointInspectorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "tests/pufferlib/test_scripts.py#CliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "tests/pufferlib/test_scripts.py#PlanValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "env_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py",
      "target": "validate_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CheckpointInspectorTests",
      "target": "tests/pufferlib/test_scripts.py#CheckpointInspectorTests.test_inspector_hashes_without_deserialization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CheckpointInspectorTests.test_inspector_hashes_without_deserialization",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_all_help_commands_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_external_logger_never_reads_credential_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_external_logger_requires_two_opt_ins",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_repro_plan_separates_seeds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_serial_benchmark_is_bounded_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_source_profile_rejects_neptune",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_source_profile_uses_torch_dry_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests",
      "target": "tests/pufferlib/test_scripts.py#CliTests.test_train_template_defaults_to_dry_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_all_help_commands_are_dependency_free",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_external_logger_never_reads_credential_value",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_external_logger_requires_two_opt_ins",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_repro_plan_separates_seeds",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_serial_benchmark_is_bounded_json",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_source_profile_rejects_neptune",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_source_profile_uses_torch_dry_run",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#CliTests.test_train_template_defaults_to_dry_run",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#PlanValidationTests",
      "target": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_default_plans_validate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#PlanValidationTests",
      "target": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_duplicate_json_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#PlanValidationTests",
      "target": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_external_environment_requires_attested_provenance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#PlanValidationTests",
      "target": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_secret_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_duplicate_json_key_is_rejected",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#PlanValidationTests.test_external_environment_requires_attested_provenance",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests",
      "target": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests.test_contract_validator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests",
      "target": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests.test_seeded_trace_is_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pufferlib/test_scripts.py#SyntheticEnvironmentTests.test_contract_validator",
      "target": "tests/pufferlib/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#FakeDataSet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#PlotTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#results_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "target": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "target": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_every_tested_gene_gets_a_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "target": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_the_inferred_coefficient_matches_the_real_design_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "target": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_the_planted_eight_fold_change_is_recovered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#EndToEndFitTests",
      "target": "tests/pydeseq2/test_scripts.py#EndToEndFitTests.test_the_planted_gene_is_the_only_significant_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FakeDataSet",
      "target": "tests/pydeseq2/test_scripts.py#FakeDataSet.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FakeDataSet",
      "target": "tests/pydeseq2/test_scripts.py#FakeDataSet.to_picklable_anndata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FakeStats",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_a_zero_threshold_keeps_every_gene",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_gene_filtering_does_not_disturb_the_sample_axis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_genes_below_the_total_count_threshold_are_removed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_no_samples_are_dropped_when_the_column_is_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_samples_with_no_condition_are_dropped_from_both_frames",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#FilterDataTests",
      "target": "tests/pydeseq2/test_scripts.py#FilterDataTests.test_the_threshold_is_inclusive_at_the_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_a_matching_pair_survives_untouched",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_a_reordered_metadata_index_is_realigned_not_left_shuffled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_an_already_oriented_matrix_is_left_alone",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_extra_count_samples_are_dropped_to_the_intersection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_extra_metadata_samples_are_dropped_to_the_intersection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_negative_counts_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_the_counts_matrix_is_transposed_by_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_zero_counts_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.setUp",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_a_reordered_metadata_index_is_realigned_not_left_shuffled",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_an_already_oriented_matrix_is_left_alone",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_extra_count_samples_are_dropped_to_the_intersection",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_extra_metadata_samples_are_dropped_to_the_intersection",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_negative_counts_are_rejected",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#LoadAndValidateTests.test_zero_counts_are_accepted",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests",
      "target": "tests/pydeseq2/test_scripts.py#PlotTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests",
      "target": "tests/pydeseq2/test_scripts.py#PlotTests.test_both_plots_are_written_as_non_empty_files",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests",
      "target": "tests/pydeseq2/test_scripts.py#PlotTests.test_genes_filtered_out_by_deseq2_do_not_break_the_plots",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests",
      "target": "tests/pydeseq2/test_scripts.py#PlotTests.test_plotting_does_not_mutate_the_results_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests.setUp",
      "target": "tests/pydeseq2/test_scripts.py#results_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests.test_both_plots_are_written_as_non_empty_files",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests.test_genes_filtered_out_by_deseq2_do_not_break_the_plots",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests.test_plotting_does_not_mutate_the_results_table",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#PlotTests.test_plotting_does_not_mutate_the_results_table",
      "target": "tests/pydeseq2/test_scripts.py#results_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_a_missing_output_directory_is_created",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_every_gene_is_kept_in_the_full_table",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_no_significant_genes_still_writes_every_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_only_genes_strictly_below_the_fdr_cutoff_are_significant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_the_dataset_is_exported_as_readable_h5ad_not_a_pickle",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_the_four_documented_artefacts_are_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_the_sorted_table_puts_the_strongest_evidence_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests.setUp",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests.setUp",
      "target": "tests/pydeseq2/test_scripts.py#results_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_a_missing_output_directory_is_created",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#SaveResultsTests.test_no_significant_genes_still_writes_every_file",
      "target": "tests/pydeseq2/test_scripts.py#FakeStats",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests",
      "target": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.FakeDataSet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests",
      "target": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.test_a_multi_factor_design_resolves_the_requested_variable_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests",
      "target": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.test_an_absent_coefficient_raises_and_names_the_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests",
      "target": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.test_the_coefficient_name_follows_the_design_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.FakeDataSet",
      "target": "tests/pydeseq2/test_scripts.py#ShrinkageCoefficientTests.FakeDataSet.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/pydeseq2/test_scripts.py#TemporaryDirectoryTestCase.write_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#DependencyFreeHelpTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#PixelRenderingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#PseudonymizationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#require_test_stack",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#SyntheticInventoryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "numpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "pydicom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "pydicom.dataset",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "pydicom.sequence",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "pydicom.uid",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests",
      "target": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_deidentification_audit_never_claims_compliance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests",
      "target": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_transfer_syntax_capability_inspector",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_deidentification_audit_never_claims_compliance",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_deidentification_audit_never_claims_compliance",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_transfer_syntax_capability_inspector",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#AuditAndCapabilityTests.test_transfer_syntax_capability_inspector",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#DependencyFreeHelpTests",
      "target": "tests/pydicom/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed_without_importing_optional_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#DependencyFreeHelpTests.test_all_cli_helps_succeed_without_importing_optional_packages",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PixelRenderingTests",
      "target": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_frame_specific_non_diagnostic_render",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PixelRenderingTests",
      "target": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_render_requires_phi_acknowledgement",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_frame_specific_non_diagnostic_render",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_frame_specific_non_diagnostic_render",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_render_requires_phi_acknowledgement",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PixelRenderingTests.test_render_requires_phi_acknowledgement",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests",
      "target": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests",
      "target": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_in_place_output_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests",
      "target": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_permissive_uid_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests",
      "target": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_scoped_uid_consistency_and_sensitive_map_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time",
      "target": "tests/pydicom/test_scripts.py#require_test_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_fixed_date_shift_preserves_dt_suffix_and_empties_standalone_time",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_in_place_output_is_rejected",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_in_place_output_is_rejected",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_permissive_uid_key_is_rejected",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_permissive_uid_key_is_rejected",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_scoped_uid_consistency_and_sensitive_map_validation",
      "target": "tests/pydicom/test_scripts.py#require_test_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_scoped_uid_consistency_and_sensitive_map_validation",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#PseudonymizationTests.test_scoped_uid_consistency_and_sensitive_map_validation",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#SyntheticInventoryTests",
      "target": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_metadata_only_limits_fail_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#SyntheticInventoryTests",
      "target": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_redacted_extract_inventory_and_frame_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_metadata_only_limits_fail_closed",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_metadata_only_limits_fail_closed",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_redacted_extract_inventory_and_frame_plan",
      "target": "tests/pydicom/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#SyntheticInventoryTests.test_redacted_extract_inventory_and_frame_plan",
      "target": "tests/pydicom/test_scripts.py#write_fixture",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_scripts.py#write_fixture",
      "target": "tests/pydicom/test_scripts.py#require_test_stack",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py",
      "target": "tests/pydicom/test_static.py#ScriptSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py",
      "target": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#ScriptSafetyTests",
      "target": "tests/pydicom/test_static.py#ScriptSafetyTests.test_no_generated_or_research_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#ScriptSafetyTests",
      "target": "tests/pydicom/test_static.py#ScriptSafetyTests.test_scripts_do_not_import_pydicom_at_module_top_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#ScriptSafetyTests",
      "target": "tests/pydicom/test_static.py#ScriptSafetyTests.test_scripts_parse_and_avoid_network_or_dynamic_execution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "target": "tests/pydicom/test_static.py#SkillDocumentationTests.test_both_references_are_dated_and_officially_sourced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "target": "tests/pydicom/test_static.py#SkillDocumentationTests.test_documented_cli_inventory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "target": "tests/pydicom/test_static.py#SkillDocumentationTests.test_frontmatter_version_license_compatibility_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "target": "tests/pydicom/test_static.py#SkillDocumentationTests.test_relative_markdown_links_exist",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pydicom/test_static.py#SkillDocumentationTests",
      "target": "tests/pydicom/test_static.py#SkillDocumentationTests.test_stable_pinned_and_medical_safety_guidance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "tests/pylabrobot/test_clis.py#CliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "scripts",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.tearDown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_all_help_paths_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_backend_inspector_never_connects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_collision_fixture_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_duplicate_json_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_generated_plan_cannot_enable_live_hardware",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_manifest_and_geometry_pass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_parent_directory_traversal_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests",
      "target": "tests/pylabrobot/test_clis.py#CliTests.test_transfer_ledger_and_tip_plan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_backend_inspector_never_connects",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_collision_fixture_is_rejected",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_duplicate_json_key_is_rejected",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_generated_plan_cannot_enable_live_hardware",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_manifest_and_geometry_pass",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_parent_directory_traversal_is_rejected",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pylabrobot/test_clis.py#CliTests.test_transfer_ledger_and_tip_plan",
      "target": "tests/pylabrobot/test_clis.py#CliTests.run_main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "tests/pymatgen/test_scripts.py#CliResult",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "tests/pymatgen/test_scripts.py#DependencyFreeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "artifact_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "composition_structure_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "io_conversion_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "mp_query",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "phase_diagram_generator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "pymatgen.core",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "pymatgen.io.cif",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "structure_analyzer",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "structure_converter",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "symmetry_sensitivity_report",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#CliResult",
      "target": "tests/pymatgen/test_scripts.py#CliResult.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests",
      "target": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_all_helps_work_without_importing_optional_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests",
      "target": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_execute_without_named_key_fails_before_output_or_network",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests",
      "target": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_io_plan_is_nonexecuting_and_discloses_loss",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests",
      "target": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_mp_query_defaults_to_plan_and_never_reads_key",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_all_helps_work_without_importing_optional_packages",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_execute_without_named_key_fails_before_output_or_network",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_execute_without_named_key_fails_before_output_or_network",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_io_plan_is_nonexecuting_and_discloses_loss",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_io_plan_is_nonexecuting_and_discloses_loss",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_mp_query_defaults_to_plan_and_never_reads_key",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#DependencyFreeTests.test_mp_query_defaults_to_plan_and_never_reads_key",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_composition_conversion_phase_diagram_and_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_strict_phase_json_rejects_duplicates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_structure_tools_on_synthetic_crystal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.write_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_composition_conversion_phase_diagram_and_manifest",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_composition_conversion_phase_diagram_and_manifest",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.write_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_composition_conversion_phase_diagram_and_manifest",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeSummary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials.__init__",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeSummary",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__enter__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__exit__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMPRester.__init__",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeMaterials",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeSummary",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_mocked_mp_execute_is_bounded_redacted_and_records_db.FakeSummary.search",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_strict_phase_json_rejects_duplicates",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_strict_phase_json_rejects_duplicates",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_structure_tools_on_synthetic_crystal",
      "target": "tests/pymatgen/test_scripts.py#payload",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_structure_tools_on_synthetic_crystal",
      "target": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.write_structure",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#PinnedRuntimeTests.test_structure_tools_on_synthetic_crystal",
      "target": "tests/pymatgen/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_scripts.py#run_script",
      "target": "tests/pymatgen/test_scripts.py#CliResult",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "tests/pymatgen/test_static.py#SkillStructureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "tests/pymatgen/test_static.py#StalenessTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "target": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_documented_cli_inventory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "target": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_environment_access_is_one_named_secret_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "target": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_no_bytecode_or_generated_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "target": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_scripts_omit_unsafe_execution_and_serialization_primitives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#ScriptSafetyTests",
      "target": "tests/pymatgen/test_static.py#ScriptSafetyTests.test_scripts_parse_and_keep_optional_imports_lazy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#SkillStructureTests",
      "target": "tests/pymatgen/test_static.py#SkillStructureTests.test_exactly_five_dated_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#SkillStructureTests",
      "target": "tests/pymatgen/test_static.py#SkillStructureTests.test_frontmatter_version_license_compatibility_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#SkillStructureTests",
      "target": "tests/pymatgen/test_static.py#SkillStructureTests.test_relative_markdown_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymatgen/test_static.py#StalenessTests",
      "target": "tests/pymatgen/test_static.py#StalenessTests.test_no_stale_install_or_api_patterns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#ComparisonPlotTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#CrossValidationGuidanceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#ModelAveragingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#SummaryNumericTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "functools",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "model_comparison",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "model_diagnostics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ComparisonPlotTests",
      "target": "tests/pymc/test_scripts.py#ComparisonPlotTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ComparisonPlotTests",
      "target": "tests/pymc/test_scripts.py#ComparisonPlotTests.test_the_comparison_plot_is_saved_and_is_not_blank",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ComparisonPlotTests.test_the_comparison_plot_is_saved_and_is_not_blank",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#CrossValidationGuidanceTests",
      "target": "tests/pymc/test_scripts.py#CrossValidationGuidanceTests.test_the_guidance_names_the_fold_count_it_was_asked_about",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_healthy_posterior_raises_no_issues",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_posterior_without_energy_statistics_is_still_checked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_stricter_ess_threshold_flags_a_posterior_that_otherwise_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_disagreeing_chains_are_flagged_as_a_convergence_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_every_divergent_transition_is_counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_hitting_the_maximum_tree_depth_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_var_names_restricts_the_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_healthy_posterior_raises_no_issues",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_posterior_without_energy_statistics_is_still_checked",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_a_stricter_ess_threshold_flags_a_posterior_that_otherwise_passes",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_disagreeing_chains_are_flagged_as_a_convergence_failure",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_every_divergent_transition_is_counted",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_hitting_the_maximum_tree_depth_is_reported",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticBranchTests.test_var_names_restricts_the_summary",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticReportTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_output_directory_is_created_if_it_is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_prior_and_posterior_are_overlaid_in_one_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_report_leaves_no_open_figures",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests",
      "target": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_report_writes_every_documented_artefact",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_output_directory_is_created_if_it_is_missing",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_prior_and_posterior_are_overlaid_in_one_figure",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_report_leaves_no_open_figures",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#DiagnosticReportTests.test_the_report_writes_every_documented_artefact",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#fitted_models",
      "target": "tests/pymc/test_scripts.py#fitted_models.fit",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#fitted_models",
      "target": "tests/pymc/test_scripts.py#fitted_models.fit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "target": "tests/pymc/test_scripts.py#LooReliabilityTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "target": "tests/pymc/test_scripts.py#LooReliabilityTests.test_a_well_specified_model_has_no_problem_observations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "target": "tests/pymc/test_scripts.py#LooReliabilityTests.test_lowering_the_threshold_flags_more_observations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "target": "tests/pymc/test_scripts.py#LooReliabilityTests.test_one_pareto_k_is_reported_per_observation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests",
      "target": "tests/pymc/test_scripts.py#LooReliabilityTests.test_the_counts_agree_with_the_threshold_they_were_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests.setUpClass",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#LooReliabilityTests.test_lowering_the_threshold_flags_more_observations",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelAveragingTests",
      "target": "tests/pymc/test_scripts.py#ModelAveragingTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelAveragingTests",
      "target": "tests/pymc/test_scripts.py#ModelAveragingTests.test_a_variable_no_model_predicts_is_skipped_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelAveragingTests",
      "target": "tests/pymc/test_scripts.py#ModelAveragingTests.test_derived_weights_come_from_the_comparison_and_sum_to_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelAveragingTests",
      "target": "tests/pymc/test_scripts.py#ModelAveragingTests.test_explicit_weights_are_normalised_and_applied_exactly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelAveragingTests.setUpClass",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_an_unsupported_criterion_is_refused_with_a_way_forward",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_loo_is_accepted_under_either_spelling_and_any_case",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_comparison_columns_are_numeric",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_difference_is_large_relative_to_its_own_standard_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_model_that_matches_the_data_generating_process_wins",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_stacking_weights_form_a_distribution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests",
      "target": "tests/pymc/test_scripts.py#ModelComparisonTests.test_the_verbose_report_names_the_winner",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#ModelComparisonTests.setUpClass",
      "target": "tests/pymc/test_scripts.py#fitted_models",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#SummaryNumericTests",
      "target": "tests/pymc/test_scripts.py#SummaryNumericTests.test_the_summary_columns_are_numeric_not_formatted_strings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#SummaryNumericTests",
      "target": "tests/pymc/test_scripts.py#SummaryNumericTests.test_the_summary_describes_the_draws_it_was_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#SummaryNumericTests.test_the_summary_columns_are_numeric_not_formatted_strings",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymc/test_scripts.py#SummaryNumericTests.test_the_summary_describes_the_draws_it_was_given",
      "target": "tests/pymc/test_scripts.py#synthetic_posterior",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#is_non_dominated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "custom_problem_example",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "decision_making_example",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "many_objective_example",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "multi_objective_example",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.algorithms.moo.nsga2",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.algorithms.moo.nsga3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.algorithms.soo.nonconvex.ga",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.mcdm.pseudo_weights",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.optimize",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.problems",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.util.nds.non_dominated_sorting",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pymoo.util.ref_dirs",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "single_objective_example",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.test_the_declared_shape_matches_the_docstring",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.test_the_objectives_are_the_two_squared_distances",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#BiObjectiveProblemDefinitionTests.test_the_two_objectives_genuinely_conflict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_a_feasible_point_evaluates_to_non_positive_constraints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_a_point_violating_both_constraints_is_reported_infeasible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_the_search_returns_only_feasible_solutions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests",
      "target": "tests/pymoo/test_scripts.py#ConstrainedProblemDefinitionTests.test_two_inequality_constraints_are_declared_over_the_stated_box",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests",
      "target": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests",
      "target": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.test_shifting_the_weights_moves_the_choice_along_the_front",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests",
      "target": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.test_the_extreme_solutions_are_the_per_objective_minima",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests",
      "target": "tests/pymoo/test_scripts.py#DecisionMakingExampleTests.test_the_selection_indexes_into_both_result_arrays_consistently",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_das_dennis_directions_take_the_dimension_positionally",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_every_feasible_dtlz2_point_lies_on_or_outside_the_unit_sphere",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_more_partitions_give_more_directions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_nsga3_optimises_a_three_objective_problem_towards_the_sphere",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#ManyObjectiveExampleTests.test_nsga3_optimises_a_three_objective_problem_towards_the_sphere",
      "target": "tests/pymoo/test_scripts.py#is_non_dominated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_an_nsga2_run_returns_a_mutually_non_dominated_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_no_solution_can_beat_the_analytic_front",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_the_analytic_front_satisfies_f2_equals_one_minus_root_f1",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_zdt1_is_the_thirty_variable_bi_objective_benchmark",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#MultiObjectiveExampleTests.test_an_nsga2_run_returns_a_mutually_non_dominated_set",
      "target": "tests/pymoo/test_scripts.py#is_non_dominated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests",
      "target": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests",
      "target": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests.test_equal_weights_select_the_balanced_compromise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests",
      "target": "tests/pymoo/test_scripts.py#PseudoWeightDecisionTests.test_weighting_one_objective_selects_the_best_point_in_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_a_short_genetic_algorithm_run_approaches_the_known_optimum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_pymoos_sphere_has_its_optimum_at_one_half",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_the_example_reports_the_evaluation_budget_it_used",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests",
      "target": "tests/pymoo/test_scripts.py#SingleObjectiveExampleTests.test_the_same_seed_gives_the_same_answer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#CollectMs1Tests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#PlotTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#ProtonMassTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#spectrum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "align_link_quantify",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "convert_format",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "detect_adducts",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "detect_features_metabo",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "digest_protein",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "extract_chromatograms",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "inspect_ms_data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "mass_calculator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "plot_ms_data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "statistics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.entries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_every_element_string_parses_as_an_empirical_formula",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_every_entry_has_elements_a_charge_and_a_probability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_protonation_is_the_most_likely_form_in_each_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_charge_signs_match_the_ionisation_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_negative_defaults_include_a_chloride_adduct",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_water_loss_adduct_has_the_mass_of_a_lost_water",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_every_element_string_parses_as_an_empirical_formula",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_every_entry_has_elements_a_charge_and_a_probability",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_protonation_is_the_most_likely_form_in_each_mode",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AdductDefaultTests.test_the_charge_signs_match_the_ionisation_mode",
      "target": "tests/pyopenms/test_scripts.py#AdductDefaultTests.entries",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_a_featurexml_input_is_loaded_rather_than_re_detected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_co_eluting_features_are_linked_across_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_features_outside_the_retention_time_tolerance_stay_separate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_column_headers_record_each_sample_and_its_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_metabolomics_detector_is_shared_rather_than_reimplemented",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_reference_map_is_the_one_with_the_most_features",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_a_featurexml_input_is_loaded_rather_than_re_detected",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_co_eluting_features_are_linked_across_samples",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_features_outside_the_retention_time_tolerance_stay_separate",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_column_headers_record_each_sample_and_its_size",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#AlignAndLinkTests.test_the_reference_map_is_the_one_with_the_most_features",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests",
      "target": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_an_ms2_only_experiment_yields_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests",
      "target": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_only_ms1_scans_contribute_a_chromatogram_point",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests",
      "target": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_the_three_returned_lists_stay_index_aligned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_an_ms2_only_experiment_yields_nothing",
      "target": "tests/pyopenms/test_scripts.py#spectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_only_ms1_scans_contribute_a_chromatogram_point",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#CollectMs1Tests.test_the_three_returned_lists_stay_index_aligned",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.sample_medians",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_a_missing_input_file_exits_rather_than_writing_an_empty_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_median_normalization_equalises_the_per_sample_medians",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_the_long_table_has_one_row_per_feature_and_sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_the_wide_matrix_has_one_row_per_feature_and_one_column_per_sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.setUp",
      "target": "tests/pyopenms/test_scripts.py#feature_map",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_a_missing_input_file_exits_rather_than_writing_an_empty_matrix",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_median_normalization_equalises_the_per_sample_medians",
      "target": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.sample_medians",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_median_normalization_equalises_the_per_sample_medians",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_the_long_table_has_one_row_per_feature_and_sample",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ConsensusMatrixTests.test_the_wide_matrix_has_one_row_per_feature_and_one_column_per_sample",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_a_fasta_entry_keeps_its_accession_and_sequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_allowing_a_missed_cleavage_adds_the_joined_peptide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_lysc_ignores_the_arginine_site_trypsin_uses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_the_length_window_excludes_at_both_ends",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_the_peptide_table_reports_published_masses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_trypsin_cleaves_after_lysine_and_arginine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.test_trypsin_does_not_cleave_before_proline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests.test_allowing_a_missed_cleavage_adds_the_joined_peptide",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests.test_lysc_ignores_the_arginine_site_trypsin_uses",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests.test_the_length_window_excludes_at_both_ends",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests.test_the_peptide_table_reports_published_masses",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests.test_trypsin_cleaves_after_lysine_and_arginine",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#DigestionTests.test_trypsin_does_not_cleave_before_proline",
      "target": "tests/pyopenms/test_scripts.py#DigestionTests.peptides",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "target": "tests/pyopenms/test_scripts.py#spectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_intensity_threshold_prunes_peaks_and_keeps_the_scan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_ms_level_filter_keeps_only_that_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_unused_ms_level_yields_an_empty_experiment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_chromatograms_survive_only_when_no_ms_level_is_selected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_filtering_does_not_mutate_the_experiment_it_reads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_the_retention_time_window_includes_its_endpoints",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_the_threshold_is_inclusive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_intensity_threshold_prunes_peaks_and_keeps_the_scan",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_ms_level_filter_keeps_only_that_level",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_an_unused_ms_level_yields_an_empty_experiment",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_chromatograms_survive_only_when_no_ms_level_is_selected",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_filtering_does_not_mutate_the_experiment_it_reads",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_the_retention_time_window_includes_its_endpoints",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#FilterExperimentTests.test_the_threshold_is_inclusive",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_a_single_requested_peak_is_the_monoisotopic_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_consecutive_peaks_are_one_neutron_apart",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_no_csv_is_written_when_none_is_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_the_abundances_fall_away_from_the_monoisotopic_peak",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_the_first_peak_is_the_monoisotopic_mass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_a_single_requested_peak_is_the_monoisotopic_one",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_consecutive_peaks_are_one_neutron_apart",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_the_abundances_fall_away_from_the_monoisotopic_peak",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#IsotopePatternTests.test_the_first_peak_is_the_monoisotopic_mass",
      "target": "tests/pyopenms/test_scripts.py#IsotopePatternTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "target": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_a_formula_reports_the_neutral_and_the_protonated_mass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "target": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_negative_mode_subtracts_the_proton_instead_of_adding_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "target": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_neither_a_peptide_nor_a_formula_is_a_usage_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "target": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_the_reference_peptide_masses_are_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_a_formula_reports_the_neutral_and_the_protonated_mass",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_negative_mode_subtracts_the_proton_instead_of_adding_it",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_neither_a_peptide_nor_a_formula_is_a_usage_error",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#MassCalculatorCliTests.test_the_reference_peptide_masses_are_reported",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_a_plot_can_be_saved_through_the_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_a_requested_retention_time_selects_the_nearest_scan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_a_retention_time_beyond_the_run_clamps_to_the_last_scan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_a_spectrum_is_selected_by_index",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_every_advertised_plot_kind_has_a_function",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_the_signal_map_plots_one_point_per_ms1_peak",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.test_the_tic_plot_sums_ms1_scans_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.setUp",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.test_a_plot_can_be_saved_through_the_cli",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.test_a_requested_retention_time_selects_the_nearest_scan",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.test_a_retention_time_beyond_the_run_clamps_to_the_last_scan",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.test_a_spectrum_is_selected_by_index",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.test_the_signal_map_plots_one_point_per_ms1_peak",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#PlotTests.test_the_tic_plot_sums_ms1_scans_only",
      "target": "tests/pyopenms/test_scripts.py#PlotTests.args",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ProtonMassTests",
      "target": "tests/pyopenms/test_scripts.py#ProtonMassTests.test_both_scripts_that_convert_to_mz_use_the_same_constant",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ProtonMassTests",
      "target": "tests/pyopenms/test_scripts.py#ProtonMassTests.test_the_proton_is_lighter_than_a_hydrogen_atom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#ProtonMassTests",
      "target": "tests/pyopenms/test_scripts.py#ProtonMassTests.test_the_proton_mass_matches_codata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_an_empty_scan_reports_zero_rather_than_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_every_scan_is_summarised_once_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_precursor_columns_are_filled_only_for_msn_scans",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_base_peak_is_the_most_intense_peak_not_the_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_experiment_summary_reads_a_stored_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_tic_is_the_sum_of_the_scan_intensities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_an_empty_scan_reports_zero_rather_than_failing",
      "target": "tests/pyopenms/test_scripts.py#spectrum",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_an_empty_scan_reports_zero_rather_than_failing",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_every_scan_is_summarised_once_in_order",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_every_scan_is_summarised_once_in_order",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_precursor_columns_are_filled_only_for_msn_scans",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_precursor_columns_are_filled_only_for_msn_scans",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_base_peak_is_the_most_intense_peak_not_the_first",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_base_peak_is_the_most_intense_peak_not_the_first",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_experiment_summary_reads_a_stored_file",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_tic_is_the_sum_of_the_scan_intensities",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#SpectrumTableTests.test_the_tic_is_the_sum_of_the_scan_intensities",
      "target": "tests/pyopenms/test_scripts.py#SpectrumTableTests.rows",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_an_mzml_round_trip_preserves_every_scan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_an_unknown_extension_names_the_supported_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_mgf_is_accepted_as_an_output_format",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_the_extension_test_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_an_mzml_round_trip_preserves_every_scan",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_an_unknown_extension_names_the_supported_ones",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_mgf_is_accepted_as_an_output_format",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#StoreExperimentTests.test_the_extension_test_is_case_insensitive",
      "target": "tests/pyopenms/test_scripts.py#ExampleExperimentMixin.experiment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests",
      "target": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_restricting_the_series_reduces_the_peak_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests",
      "target": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_the_default_series_omits_b1_as_openms_does",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests",
      "target": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_the_y_ion_series_of_the_reference_peptide",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests",
      "target": "tests/pyopenms/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_restricting_the_series_reduces_the_peak_count",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_the_default_series_omits_b1_as_openms_does",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pyopenms/test_scripts.py#TheoreticalSpectrumTests.test_the_y_ion_series_of_the_reference_peptide",
      "target": "tests/pyopenms/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#ArgumentValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#DestinationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#ExclusionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#FileModeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#KindDetectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#LocalFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tests/pysam/test_scripts.py#RatioTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "alignment_qc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "filter_alignments",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "inspect_hts",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_non_numeric_input_raises",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_nonnegative_int_admits_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_positive_int_accepts_only_values_above_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ArgumentValidatorTests",
      "target": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_the_validators_are_shared_across_the_scripts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ArgumentValidatorTests.test_non_numeric_input_raises",
      "target": "skills/pydicom/scripts/anonymize_dicom.py#process_file.validator",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/pysam/test_scripts.py#DestinationTests",
      "target": "tests/pysam/test_scripts.py#DestinationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#DestinationTests",
      "target": "tests/pysam/test_scripts.py#DestinationTests.test_a_differently_spelled_path_to_the_input_is_also_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#DestinationTests",
      "target": "tests/pysam/test_scripts.py#DestinationTests.test_a_fresh_destination_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#DestinationTests",
      "target": "tests/pysam/test_scripts.py#DestinationTests.test_a_missing_output_directory_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#DestinationTests",
      "target": "tests/pysam/test_scripts.py#DestinationTests.test_an_existing_output_is_never_overwritten",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#DestinationTests",
      "target": "tests/pysam/test_scripts.py#DestinationTests.test_writing_over_the_input_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.test_a_clean_read_has_no_exclusion_reasons",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.test_a_read_below_the_mapq_threshold_is_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.test_each_flag_excludes_only_its_own_category",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.test_every_applicable_reason_is_reported_not_just_the_first",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.test_improper_pairs_are_dropped_only_when_asked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read.Read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read.Read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_a_clean_read_has_no_exclusion_reasons",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_a_clean_read_has_no_exclusion_reasons",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_a_read_below_the_mapq_threshold_is_dropped",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_a_read_below_the_mapq_threshold_is_dropped",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_each_flag_excludes_only_its_own_category",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_each_flag_excludes_only_its_own_category",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_every_applicable_reason_is_reported_not_just_the_first",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_every_applicable_reason_is_reported_not_just_the_first",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_improper_pairs_are_dropped_only_when_asked",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.flags",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#ExclusionTests.test_improper_pairs_are_dropped_only_when_asked",
      "target": "tests/pysam/test_scripts.py#ExclusionTests.read",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#FileModeTests",
      "target": "tests/pysam/test_scripts.py#FileModeTests.test_an_unrecognised_suffix_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#FileModeTests",
      "target": "tests/pysam/test_scripts.py#FileModeTests.test_the_htslib_mode_follows_the_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#FileModeTests",
      "target": "tests/pysam/test_scripts.py#FileModeTests.test_the_suffix_check_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#FileModeTests",
      "target": "tests/pysam/test_scripts.py#FileModeTests.test_the_writing_mode_differs_from_the_reading_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#KindDetectionTests",
      "target": "tests/pysam/test_scripts.py#KindDetectionTests.test_alignment_suffixes_are_detected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#KindDetectionTests",
      "target": "tests/pysam/test_scripts.py#KindDetectionTests.test_detection_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#KindDetectionTests",
      "target": "tests/pysam/test_scripts.py#KindDetectionTests.test_every_detected_kind_is_one_the_script_handles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#KindDetectionTests",
      "target": "tests/pysam/test_scripts.py#KindDetectionTests.test_the_documented_kinds_are_the_advertised_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#KindDetectionTests",
      "target": "tests/pysam/test_scripts.py#KindDetectionTests.test_variant_suffixes_are_detected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#LocalFileTests",
      "target": "tests/pysam/test_scripts.py#LocalFileTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#LocalFileTests",
      "target": "tests/pysam/test_scripts.py#LocalFileTests.test_a_directory_is_not_a_regular_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#LocalFileTests",
      "target": "tests/pysam/test_scripts.py#LocalFileTests.test_a_missing_path_is_reported_with_its_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#LocalFileTests",
      "target": "tests/pysam/test_scripts.py#LocalFileTests.test_an_existing_file_is_returned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#RatioTests",
      "target": "tests/pysam/test_scripts.py#RatioTests.test_a_ratio_over_zero_is_none_rather_than_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#RatioTests",
      "target": "tests/pysam/test_scripts.py#RatioTests.test_a_zero_numerator_is_zero_not_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pysam/test_scripts.py#RatioTests",
      "target": "tests/pysam/test_scripts.py#RatioTests.test_ordinary_ratios_and_averages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#BenchmarkTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#CacheAuditTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#CommonTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#DiscoveryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#LoaderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#MolecularTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "cache_audit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#BenchmarkTests",
      "target": "tests/pytdc/test_scripts.py#BenchmarkTests.test_many_run_prediction_schema",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#BenchmarkTests",
      "target": "tests/pytdc/test_scripts.py#BenchmarkTests.test_many_run_requires_five_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#BenchmarkTests",
      "target": "tests/pytdc/test_scripts.py#BenchmarkTests.test_non_finite_predictions_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#CacheAuditTests",
      "target": "tests/pytdc/test_scripts.py#CacheAuditTests.test_manifest_is_bounded_and_skips_symlinks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#CacheAuditTests",
      "target": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#CommonTests",
      "target": "tests/pytdc/test_scripts.py#CommonTests.test_emit_json_writes_atomically_and_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#CommonTests",
      "target": "tests/pytdc/test_scripts.py#CommonTests.test_fraction_validation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#CommonTests",
      "target": "tests/pytdc/test_scripts.py#CommonTests.test_safe_paths_reject_escape_and_absolute_paths",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#CommonTests",
      "target": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#DiscoveryTests",
      "target": "tests/pytdc/test_scripts.py#DiscoveryTests.test_dataset_registry_is_bounded_without_loader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#LoaderTests",
      "target": "tests/pytdc/test_scripts.py#LoaderTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#LoaderTests",
      "target": "tests/pytdc/test_scripts.py#LoaderTests.test_cold_split_requires_columns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#LoaderTests",
      "target": "tests/pytdc/test_scripts.py#LoaderTests.test_scaffold_request_uses_exact_registry_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#LoaderTests",
      "target": "tests/pytdc/test_scripts.py#LoaderTests.test_verified_time_split",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#MolecularTests",
      "target": "tests/pytdc/test_scripts.py#MolecularTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#MolecularTests",
      "target": "tests/pytdc/test_scripts.py#MolecularTests.test_oracle_classification_is_explicit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#MolecularTests",
      "target": "tests/pytdc/test_scripts.py#MolecularTests.test_smiles_input_is_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#MolecularTests",
      "target": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "target": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase",
      "target": "tests/pytdc/test_scripts.py#WorkingDirectoryTestCase.tearDown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tests/pytorch-lightning/test_scripts.py#build_or_skip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "lightning.pytorch.accelerators",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "lightning.pytorch.callbacks",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "lightning.pytorch.strategies",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "quick_trainer_setup",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "template_datamodule",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "template_lightning_module",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "torch.utils.data",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_a_batch_has_the_declared_shape_and_dtypes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_a_different_ratio_moves_the_boundary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_a_transform_is_applied_to_every_sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_teardown_releases_only_the_stage_it_was_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_checkpointed_state_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_split_honours_the_requested_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_split_is_seeded_so_two_runs_agree",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_test_and_predict_stages_build_their_own_datasets",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_training_loader_shuffles_and_drops_the_short_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#DataModuleTests",
      "target": "tests/pytorch-lightning/test_scripts.py#DataModuleTests.test_the_validation_loader_keeps_order_and_every_sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests",
      "target": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_dropout_is_active_in_training_and_disabled_in_eval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests",
      "target": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_the_hyperparameters_are_saved_and_reachable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests",
      "target": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_the_network_maps_784_inputs_to_10_logits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests",
      "target": "tests/pytorch-lightning/test_scripts.py#ModuleArchitectureTests.test_the_parameter_count_is_the_two_dense_layers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_it_returns_an_adam_optimiser_at_the_requested_learning_rate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_optimiser_owns_every_model_parameter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_plateau_scheduler_actually_reduces_the_rate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_scheduler_halves_the_rate_on_a_five_epoch_plateau",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#OptimiserConfigurationTests.test_the_scheduler_watches_a_metric_the_module_logs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_basic_trainer_runs_ten_epochs_on_whatever_is_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_ddp_trainer_shards_across_the_requested_gpus",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_debug_trainer_pins_itself_to_the_cpu",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_deepspeed_trainer_selects_the_requested_stage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_fsdp_trainer_uses_bfloat16_and_accumulates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_overfit_trainer_restricts_itself_to_the_requested_batches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_production_trainer_checkpoints_stops_early_and_tracks_the_rate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_reproducible_trainer_seeds_and_pins_full_precision",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_time_limited_trainer_is_a_valid_checkpoint_configuration",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_tuning_trainer_writes_nothing_and_halves_the_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_production_trainer_checkpoints_stops_early_and_tracks_the_rate",
      "target": "tests/pytorch-lightning/test_scripts.py#build_or_skip",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_reproducible_trainer_seeds_and_pins_full_precision",
      "target": "tests/pytorch-lightning/test_scripts.py#build_or_skip",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainerConfigurationTests.test_the_time_limited_trainer_is_a_valid_checkpoint_configuration",
      "target": "tests/pytorch-lightning/test_scripts.py#build_or_skip",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.tearDownClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_a_test_pass_reports_its_own_metrics",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_prediction_returns_one_class_index_per_sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_the_fit_logs_the_metrics_the_template_documents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_the_logged_learning_rate_is_the_configured_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_the_losses_are_finite_and_the_accuracies_are_proportions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests",
      "target": "tests/pytorch-lightning/test_scripts.py#TrainingLoopTests.test_training_moved_the_weights",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#BackendSelectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#ImportProbeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#installed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#QubitCountValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#RecordingService",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "check_environment",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "importlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "inspect_runtime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "run_local_primitives",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_a_five_qubit_line_has_eight_directed_coupling_edges",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_control_flow_support_is_reported_from_the_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_fractional_gates_are_not_claimed_on_a_backend_without_them",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_inspecting_a_backend_submits_no_jobs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_the_backend_identity_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_the_report_survives_json_serialisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendInspectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendInspectionTests.test_the_reported_basis_gates_are_the_targets_own",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendSelectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_a_named_backend_is_fetched_by_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendSelectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_the_fractional_gate_flag_is_forwarded_only_when_it_is_set",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendSelectionTests",
      "target": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_without_a_name_the_least_busy_real_device_is_selected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_a_named_backend_is_fetched_by_name",
      "target": "tests/qiskit/test_scripts.py#RecordingService",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_the_fractional_gate_flag_is_forwarded_only_when_it_is_set",
      "target": "tests/qiskit/test_scripts.py#RecordingService",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#BackendSelectionTests.test_without_a_name_the_least_busy_real_device_is_selected",
      "target": "tests/qiskit/test_scripts.py#RecordingService",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_a_clean_namespace_reports_no_legacy_terra",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_a_healthy_environment_reports_no_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_installed_versions_are_read_from_the_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_ok_is_exactly_the_absence_of_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_qiskit_alone_is_required_by_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_the_core_api_smoke_check_passes_on_a_working_install",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_the_optional_extras_become_required_on_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_the_report_survives_json_serialisation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests",
      "target": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_version_drift_is_a_warning_but_an_error_under_strict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_a_clean_namespace_reports_no_legacy_terra",
      "target": "tests/qiskit/test_scripts.py#installed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_installed_versions_are_read_from_the_metadata",
      "target": "tests/qiskit/test_scripts.py#installed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#EnvironmentReportTests.test_version_drift_is_a_warning_but_an_error_under_strict",
      "target": "tests/qiskit/test_scripts.py#installed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ImportProbeTests",
      "target": "tests/qiskit/test_scripts.py#ImportProbeTests.test_a_distribution_that_is_not_installed_has_no_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ImportProbeTests",
      "target": "tests/qiskit/test_scripts.py#ImportProbeTests.test_a_missing_module_is_reported_with_the_import_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ImportProbeTests",
      "target": "tests/qiskit/test_scripts.py#ImportProbeTests.test_an_importable_module_reports_where_it_came_from",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ImportProbeTests",
      "target": "tests/qiskit/test_scripts.py#ImportProbeTests.test_an_installed_distribution_reports_its_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ImportProbeTests.test_an_installed_distribution_reports_its_version",
      "target": "tests/qiskit/test_scripts.py#installed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_a_pi_angle_flips_both_qubits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_a_zero_angle_leaves_both_qubits_in_the_ground_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_at_theta_pi_over_two_the_circuit_is_a_bell_state",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_every_requested_shot_is_accounted_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_estimator_reproduces_the_analytic_expectation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_reported_parameter_order_is_the_circuit_binding_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_same_seed_reproduces_the_same_counts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests",
      "target": "tests/qiskit/test_scripts.py#LocalPrimitiveWorkflowTests.test_the_sampled_frequencies_match_the_analytic_probabilities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#QubitCountValidationTests",
      "target": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_a_plausible_qubit_floor_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#QubitCountValidationTests",
      "target": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_an_absent_distribution_reports_no_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#QubitCountValidationTests",
      "target": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_an_implausible_qubit_floor_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#QubitCountValidationTests.test_an_absent_distribution_reports_no_version",
      "target": "tests/qiskit/test_scripts.py#installed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#RecordingService",
      "target": "tests/qiskit/test_scripts.py#RecordingService.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#RecordingService",
      "target": "tests/qiskit/test_scripts.py#RecordingService.backend",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#RecordingService",
      "target": "tests/qiskit/test_scripts.py#RecordingService.least_busy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests",
      "target": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests.test_a_finite_angle_is_accepted_and_an_infinite_one_is_not",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests",
      "target": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests.test_a_shot_count_inside_the_documented_range_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests",
      "target": "tests/qiskit/test_scripts.py#ShotAndAngleValidationTests.test_shot_counts_outside_the_range_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py",
      "target": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py",
      "target": "qutip",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests",
      "target": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests.tearDown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests",
      "target": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests.test_phase_space_and_matrix_plotting_apis",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests",
      "target": "tests/qutip/test_qutip_graphics.py#GraphicsApiTests.test_result_plot_expect_current_method",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "tests/qutip/test_qutip_synthetic.py#BundledModelTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "convergence_sweep",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "inspect",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "qobj_model_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "qutip",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "qutip.solver.heom",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "result_audit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "two_level_simulation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#BundledModelTests",
      "target": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_deterministic_convergence_sweep",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#BundledModelTests",
      "target": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_mcsolve_is_seed_reproducible_and_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#BundledModelTests",
      "target": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_mesolve_matches_amplitude_decay_and_audits_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#BundledModelTests",
      "target": "tests/qutip/test_qutip_synthetic.py#BundledModelTests.test_qobj_model_validator_accepts_physical_two_level_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests",
      "target": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_brmesolve_and_stochastic_solver_synthetic_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests",
      "target": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_floquet_heom_and_piqs_current_namespaces",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests",
      "target": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_steady_state_correlation_and_spectrum_are_finite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_brmesolve_and_stochastic_solver_synthetic_runs",
      "target": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_brmesolve_and_stochastic_solver_synthetic_runs.spectrum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_floquet_heom_and_piqs_current_namespaces",
      "target": "tests/qutip/test_qutip_synthetic.py#PhysicsApiTests.test_floquet_heom_and_piqs_current_namespaces.drive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests",
      "target": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_exact_version_and_current_solver_boundaries",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests",
      "target": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qfunc_is_called_with_state_and_axis_order_is_y_x",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests",
      "target": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qobj_dims_tensor_order_and_qobjevo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qobj_dims_tensor_order_and_qobjevo",
      "target": "tests/qutip/test_qutip_synthetic.py#VersionAndApiTests.test_qobj_dims_tensor_order_and_qobjevo.coefficient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "tests/qutip/test_scripts.py#CommonSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "tests/qutip/test_scripts.py#HelpTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "tests/qutip/test_scripts.py#PlannerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "tests/qutip/test_scripts.py#PortableAuditTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "convergence_sweep",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "qobj_model_validator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "result_audit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "solver_config_planner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "steady_state_spectrum_planner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "two_level_simulation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#CommonSafetyTests",
      "target": "tests/qutip/test_scripts.py#CommonSafetyTests.test_limits_and_nonfinite_values_are_enforced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#CommonSafetyTests",
      "target": "tests/qutip/test_scripts.py#CommonSafetyTests.test_private_output_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#CommonSafetyTests",
      "target": "tests/qutip/test_scripts.py#CommonSafetyTests.test_strict_json_rejects_urls_duplicates_nan_and_symlinks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#HelpTests",
      "target": "tests/qutip/test_scripts.py#HelpTests.test_every_cli_has_dependency_free_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#PlannerTests",
      "target": "tests/qutip/test_scripts.py#PlannerTests.test_lindblad_and_stochastic_solver_selection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#PlannerTests",
      "target": "tests/qutip/test_scripts.py#PlannerTests.test_planners_reject_unbounded_requests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#PlannerTests",
      "target": "tests/qutip/test_scripts.py#PlannerTests.test_specialized_plans_surface_missing_assumptions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#PlannerTests",
      "target": "tests/qutip/test_scripts.py#PlannerTests.test_steady_spectrum_plan_computes_bounded_fft_grid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#PortableAuditTests",
      "target": "tests/qutip/test_scripts.py#PortableAuditTests.test_audit_rejects_out_of_range_population",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_scripts.py#PortableAuditTests",
      "target": "tests/qutip/test_scripts.py#PortableAuditTests.test_simulation_report_audit_passes_without_qutip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "tests/qutip/test_static.py#DocumentationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "tests/qutip/test_static.py#ScriptSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py",
      "target": "urllib.parse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#DocumentationTests",
      "target": "tests/qutip/test_static.py#DocumentationTests.test_documented_cli_inventory_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#DocumentationTests",
      "target": "tests/qutip/test_static.py#DocumentationTests.test_frontmatter_version_license_compatibility_and_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#DocumentationTests",
      "target": "tests/qutip/test_static.py#DocumentationTests.test_quitp4_patterns_are_removed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#DocumentationTests",
      "target": "tests/qutip/test_static.py#DocumentationTests.test_reference_inventory_and_dates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#DocumentationTests",
      "target": "tests/qutip/test_static.py#DocumentationTests.test_relative_links_exist_and_web_sources_are_official",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#DocumentationTests",
      "target": "tests/qutip/test_static.py#DocumentationTests.test_snapshot_and_extension_boundaries_are_pinned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#ScriptSafetyTests",
      "target": "tests/qutip/test_static.py#ScriptSafetyTests.test_no_generated_or_research_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#ScriptSafetyTests",
      "target": "tests/qutip/test_static.py#ScriptSafetyTests.test_qutip_and_numpy_imports_are_lazy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/qutip/test_static.py#ScriptSafetyTests",
      "target": "tests/qutip/test_static.py#ScriptSafetyTests.test_scripts_parse_without_network_or_dynamic_execution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tests/rdkit/test_scripts.py#FilterTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tests/rdkit/test_scripts.py#MoleculeLoadingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tests/rdkit/test_scripts.py#PatternLibraryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tests/rdkit/test_scripts.py#PropertyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tests/rdkit/test_scripts.py#QueryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "molecular_properties",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "rdkit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "similarity_search",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "substructure_filter",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests._names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_an_exclude_pattern_removes_matching_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_an_include_pattern_keeps_only_matching_molecules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_exclusion_wins_over_inclusion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_match_all_include_requires_every_pattern",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_no_patterns_keeps_everything",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_the_report_records_a_status_for_every_molecule",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests",
      "target": "tests/rdkit/test_scripts.py#FilterTests.test_unparseable_molecules_are_skipped_rather_than_crashing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_an_exclude_pattern_removes_matching_molecules",
      "target": "tests/rdkit/test_scripts.py#FilterTests._names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_an_exclude_pattern_removes_matching_molecules",
      "target": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_an_include_pattern_keeps_only_matching_molecules",
      "target": "tests/rdkit/test_scripts.py#FilterTests._names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_an_include_pattern_keeps_only_matching_molecules",
      "target": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_exclusion_wins_over_inclusion",
      "target": "tests/rdkit/test_scripts.py#FilterTests._names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_exclusion_wins_over_inclusion",
      "target": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_match_all_include_requires_every_pattern",
      "target": "tests/rdkit/test_scripts.py#FilterTests._names",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_match_all_include_requires_every_pattern",
      "target": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FilterTests.test_the_report_records_a_status_for_every_molecule",
      "target": "tests/rdkit/test_scripts.py#FilterTests.pattern",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_a_molecule_is_maximally_similar_to_itself",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_a_null_molecule_yields_no_fingerprint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_an_unknown_method_is_refused_by_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_different_molecules_are_less_similar_than_identical_ones",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_every_advertised_method_produces_a_fingerprint",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_the_bit_size_is_honoured",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#FingerprintTests",
      "target": "tests/rdkit/test_scripts.py#FingerprintTests.test_the_method_name_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#MoleculeLoadingTests",
      "target": "tests/rdkit/test_scripts.py#MoleculeLoadingTests.test_a_smiles_file_is_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#MoleculeLoadingTests",
      "target": "tests/rdkit/test_scripts.py#MoleculeLoadingTests.test_an_unreadable_line_does_not_abort_the_whole_file",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PatternLibraryTests",
      "target": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_a_pattern_does_not_match_a_molecule_that_lacks_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PatternLibraryTests",
      "target": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_every_shipped_smarts_pattern_compiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PatternLibraryTests",
      "target": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_representative_patterns_match_the_chemistry_they_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PatternLibraryTests",
      "target": "tests/rdkit/test_scripts.py#PatternLibraryTests.test_the_documented_libraries_are_all_present_and_non_empty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PropertyTests",
      "target": "tests/rdkit/test_scripts.py#PropertyTests.test_an_unparseable_smiles_is_reported_rather_than_crashing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PropertyTests",
      "target": "tests/rdkit/test_scripts.py#PropertyTests.test_aspirin_reports_its_formula_and_hydrogen_bonding",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PropertyTests",
      "target": "tests/rdkit/test_scripts.py#PropertyTests.test_benzene_has_one_aromatic_ring_and_no_rotatable_bonds",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#PropertyTests",
      "target": "tests/rdkit/test_scripts.py#PropertyTests.test_heavier_molecules_have_larger_molecular_weight",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#QueryTests",
      "target": "tests/rdkit/test_scripts.py#QueryTests.test_a_plain_smiles_string_is_accepted_as_a_fallback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#QueryTests",
      "target": "tests/rdkit/test_scripts.py#QueryTests.test_a_smarts_string_is_compiled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/rdkit/test_scripts.py#QueryTests",
      "target": "tests/rdkit/test_scripts.py#QueryTests.test_an_uninterpretable_pattern_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_normalized_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_reference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "forecast_relsa",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "kde_thresholds",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "relsa_score",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_baseline_window_averages_several_time_points",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_changing_variable_composition_warns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_duplicate_id_time_rows_are_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_normalization_is_per_animal_and_lands_on_100",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_handles_a_lower_is_worse_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_honours_a_nonzero_healthy_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_maps_the_scale_not_the_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_score_to_percent_rejects_a_zero_width_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_time_column_alias_is_detected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DataPreparationTests.test_zero_baseline_yields_nan_and_warns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests._frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_all_rising_variable_left_unturned_is_rejected_outright",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_recovery_below_baseline_is_floored_at_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_rising_variable_left_unturned_scores_zero_throughout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_turned_variable_registers_an_increase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_variable_that_only_ever_rises_and_is_not_turned_warns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_all_rising_variable_left_unturned_is_rejected_outright",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests._frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests.test_turned_variable_registers_an_increase",
      "target": "tests/relsa-severity-assessment/test_scripts.py#DirectionalityTests._frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.test_documented_pipeline_runs_end_to_end",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.test_score_scale_is_required_for_a_zero_baseline_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests.test_documented_pipeline_runs_end_to_end",
      "target": "tests/relsa-severity-assessment/test_scripts.py#EndToEndCliTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_auto_arima_selects_differencing_for_a_trending_series",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_forecast_of_a_linear_ramp_continues_the_ramp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_interpolation_hits_the_observed_points",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_interpolation_note_is_recorded_when_interpolating",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_predict_endpoint_scores_against_the_actual_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_relsa_forecast_and_interval_are_non_negative",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_rolling_forecast_produces_one_row_per_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_short_series_records_a_warning_note",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_summarize_reports_per_animal_rows_and_an_overall_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ForecastTests.test_target_before_the_last_observation_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests.test_metrics_match_hand_computed_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests.test_metrics_without_an_interval_report_nan_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#MetricsTests.test_picp_counts_values_outside_the_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_flat_variable_in_reference_set_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_reference_extrema_use_min_or_max_by_direction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_reference_model_round_trips_through_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_test_set_missing_a_reference_variable_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_reference_model_round_trips_through_json",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ReferenceModelTests.test_test_set_missing_a_reference_variable_errors",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_baseline_row_scores_zero_rather_than_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_full_precision_stays_close_to_the_rounded_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_missing_variable_is_dropped_from_the_mean_not_zeroed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_relsa_scores_match_the_published_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_root_mean_square_not_arithmetic_mean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_weights_match_the_published_matrix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.setUp",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_normalized_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.setUp",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_full_precision_stays_close_to_the_rounded_score",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_normalized_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#RParityTests.test_full_precision_stays_close_to_the_rounded_score",
      "target": "tests/relsa-severity-assessment/test_scripts.py#r_reference",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_bimodal_scores_yield_a_threshold_between_the_modes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_bw_nrd0_matches_the_r_formula",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_thresholds_are_bandwidth_dependent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_unimodal_scores_yield_no_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests",
      "target": "tests/relsa-severity-assessment/test_scripts.py#ThresholdTests.test_zone_assignment_and_names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "tests/research-lookup/test_research_lookup.py#source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "manuscript_packet",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "research_lookup",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py",
      "target": "unittest.mock",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "target": "tests/research-lookup/test_research_lookup.py#PacketTests.test_deduplication_merges_doi_url_and_title_records",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "target": "tests/research-lookup/test_research_lookup.py#PacketTests.test_existing_citation_extraction_remains_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "target": "tests/research-lookup/test_research_lookup.py#PacketTests.test_packet_has_manuscript_artifacts_and_never_pads_shortfall",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "target": "tests/research-lookup/test_research_lookup.py#PacketTests.test_retracted_reference_is_marked_for_exclusion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests",
      "target": "tests/research-lookup/test_research_lookup.py#PacketTests.test_save_packet_writes_all_expected_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_deduplication_merges_doi_url_and_title_records",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#deduplicate_sources",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_packet_has_manuscript_artifacts_and_never_pads_shortfall",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_packet_has_manuscript_artifacts_and_never_pads_shortfall",
      "target": "tests/research-lookup/test_research_lookup.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_retracted_reference_is_marked_for_exclusion",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_retracted_reference_is_marked_for_exclusion",
      "target": "tests/research-lookup/test_research_lookup.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_save_packet_writes_all_expected_artifacts",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#build_manuscript_packet",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_save_packet_writes_all_expected_artifacts",
      "target": "skills/research-lookup/scripts/manuscript_packet.py#save_packet",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#PacketTests.test_save_packet_writes_all_expected_artifacts",
      "target": "tests/research-lookup/test_research_lookup.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_chat_is_available_but_never_selected_by_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_default_backend_is_search_and_parallel_alias_is_research",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_parser_and_class_default_to_sixty_references",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_perplexity_failure_fallback_is_opt_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract.fake_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_academic_lookup_runs_facets_and_batched_extract.fake_cli",
      "target": "tests/research-lookup/test_research_lookup.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_chat_is_available_but_never_selected_by_default",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_chat_is_available_but_never_selected_by_default",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._select_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_default_backend_is_search_and_parallel_alias_is_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_default_backend_is_search_and_parallel_alias_is_research",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup._select_backend",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse.json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_explicit_chat_preserves_content_basis_and_citations.FakeResponse.raise_for_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract",
      "target": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract.fake_cli",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_nonacademic_lookup_uses_one_search_without_extract.fake_cli",
      "target": "tests/research-lookup/test_research_lookup.py#source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_parser_and_class_default_to_sixty_references",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_perplexity_failure_fallback_is_opt_in",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/research-lookup/test_research_lookup.py#RoutingTests.test_perplexity_failure_fallback_is_opt_in",
      "target": "skills/research-lookup/scripts/research_lookup.py#ResearchLookup.lookup",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/run_all.py",
      "target": "tests/run_all.py#main",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "tests/run_all.py#discover",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "tests/run_all.py#isolated_command",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "tests/run_all.py#load_requirements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "tests/run_all.py#main",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "tests/run_all.py#run_meta",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py",
      "target": "tomllib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py#main",
      "target": "tests/run_all.py#discover",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py#main",
      "target": "tests/run_all.py#isolated_command",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py#main",
      "target": "tests/run_all.py#load_requirements",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/run_all.py#main",
      "target": "tests/run_all.py#run_meta",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#ArgumentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#ConfigurationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#PipelineCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#SharedIoTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#SummaryTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#ArgumentTests",
      "target": "tests/scanpy/test_scripts.py#ArgumentTests.test_a_default_output_is_advertised_in_the_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#ArgumentTests",
      "target": "tests/scanpy/test_scripts.py#ArgumentTests.test_the_output_flag_overrides_the_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#ArgumentTests",
      "target": "tests/scanpy/test_scripts.py#ArgumentTests.test_the_shared_io_arguments_are_attached",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#ConfigurationTests",
      "target": "tests/scanpy/test_scripts.py#ConfigurationTests.test_configuring_scanpy_creates_the_figure_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#ConfigurationTests",
      "target": "tests/scanpy/test_scripts.py#ConfigurationTests.test_the_dpi_and_verbosity_reach_scanpy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#PipelineCliTests",
      "target": "tests/scanpy/test_scripts.py#PipelineCliTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#PipelineCliTests",
      "target": "tests/scanpy/test_scripts.py#PipelineCliTests.test_each_cli_reports_a_missing_input_cleanly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests.test_a_csv_is_dispatched_to_the_csv_reader",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests.test_a_missing_input_exits_with_a_message",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests.test_an_h5ad_round_trips_through_save_and_load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests.test_an_unrecognised_extension_exits_rather_than_guessing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests.test_saving_creates_the_parent_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#RoundTripTests.test_the_extension_check_is_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests",
      "target": "tests/scanpy/test_scripts.py#SharedIoTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests.test_an_h5ad_round_trips_through_save_and_load",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests.test_saving_creates_the_parent_directory",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#RoundTripTests.test_the_extension_check_is_case_insensitive",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SharedIoTestCase",
      "target": "tests/scanpy/test_scripts.py#SharedIoTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests",
      "target": "tests/scanpy/test_scripts.py#SummaryTests.test_a_bare_matrix_summarises_to_one_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests",
      "target": "tests/scanpy/test_scripts.py#SummaryTests.test_annotations_and_embeddings_are_listed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests",
      "target": "tests/scanpy/test_scripts.py#SummaryTests.test_the_obs_listing_is_capped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests",
      "target": "tests/scanpy/test_scripts.py#SummaryTests.test_the_summary_leads_with_the_matrix_shape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests",
      "target": "tests/scanpy/test_scripts.py#SummaryTests.test_the_unnamed_x_layer_is_never_listed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests.test_a_bare_matrix_summarises_to_one_line",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests.test_annotations_and_embeddings_are_listed",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests.test_the_obs_listing_is_capped",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests.test_the_summary_leads_with_the_matrix_shape",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scanpy/test_scripts.py#SummaryTests.test_the_unnamed_x_layer_is_never_listed",
      "target": "tests/scanpy/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#completed_process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#FileOutputTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "calculate_scores",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "check_process",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "check_traceability",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "generate_report_scaffold",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "summarize_agreement",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "validate_rubric",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py",
      "target": "weight_sensitivity",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#completed_process",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#FileOutputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#FileOutputTests.test_output_refuses_overwrite_without_force",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#FileOutputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#FileOutputTests.test_validate_file_returns_minimized_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_duplicate_json_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_excessive_depth_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_private_application_field_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_template_rubric_is_structurally_valid_with_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_unrated_template_is_valid",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_fails_closed_on_malformed_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_rejects_proxy_criterion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests",
      "target": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_rejects_unknown_field",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_template_rubric_is_structurally_valid_with_warning",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_unrated_template_is_valid",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_fails_closed_on_malformed_scale",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_rejects_proxy_criterion",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#RubricAndInputTests.test_validator_rejects_unknown_field",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_missing_and_not_applicable_are_reported_not_zeroed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_traceability_passes_and_never_copies_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_uncertainty_is_clamped_to_scale",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_unresolved_evidence_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests",
      "target": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_weighted_math_is_bounded_and_has_no_recommendation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.setUp",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_missing_and_not_applicable_are_reported_not_zeroed",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_traceability_passes_and_never_copies_content",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_traceability_passes_and_never_copies_content",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_uncertainty_is_clamped_to_scale",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_unresolved_evidence_fails",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_unresolved_evidence_fails",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#ScoringAndTraceabilityTests.test_weighted_math_is_bounded_and_has_no_recommendation",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_agreement_rejects_extra_csv_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_agreement_summary_is_pseudonymous_and_descriptive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_completed_low_stakes_process_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_high_impact_process_is_blocked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_report_scaffold_contains_only_safe_placeholders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_unconfirmed_process_is_blocked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests",
      "target": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_weight_sensitivity_detects_order_instability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.setUp",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_completed_low_stakes_process_passes",
      "target": "tests/scholar-evaluation/test_scripts.py#completed_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_high_impact_process_is_blocked",
      "target": "tests/scholar-evaluation/test_scripts.py#completed_process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_report_scaffold_contains_only_safe_placeholders",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_unconfirmed_process_is_blocked",
      "target": "tests/scholar-evaluation/test_scripts.py#load_json_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#SensitivityAgreementAndProcessTests.test_weight_sensitivity_detects_order_instability",
      "target": "tests/scholar-evaluation/test_scripts.py#rated_evaluation",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "target": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_all_script_help_is_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "target": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_expected_assets_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "target": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_external_schematic_scripts_are_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "target": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_scripts_have_no_network_dynamic_process_or_executable_serialization",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests",
      "target": "tests/scholar-evaluation/test_scripts.py#StaticSafetyTests.test_skill_is_versioned_and_under_500_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tests/scientific-brainstorming/test_scripts.py#populated_register",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "evaluate_matrix",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "session_scaffold",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py",
      "target": "validate_register",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests._write_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_discloses_formula_context_and_no_decision",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_preserves_input_uncertainty_interval",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_rejects_out_of_range_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_discloses_formula_context_and_no_decision",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests._write_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_preserves_input_uncertainty_interval",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests._write_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#MatrixTests.test_matrix_rejects_out_of_range_score",
      "target": "tests/scientific-brainstorming/test_scripts.py#MatrixTests._write_inputs",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_duplicate_warning_disclaims_semantic_equivalence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_missing_ai_provenance_and_assumption_are_errors",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_valid_register_passes_without_warnings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_duplicate_warning_disclaims_semantic_equivalence",
      "target": "tests/scientific-brainstorming/test_scripts.py#populated_register",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_missing_ai_provenance_and_assumption_are_errors",
      "target": "tests/scientific-brainstorming/test_scripts.py#populated_register",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#RegisterValidationTests.test_valid_register_passes_without_warnings",
      "target": "tests/scientific-brainstorming/test_scripts.py#populated_register",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests.test_json_input_symlink_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#SafeInputTests.test_oversized_input_is_rejected_before_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests.test_output_symlink_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#SafeOutputTests.test_private_json_output_refuses_implicit_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests.test_scaffold_is_deterministic_and_has_required_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests",
      "target": "tests/scientific-brainstorming/test_scripts.py#ScaffoldTests.test_scaffold_rejects_duplicate_participant_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests",
      "target": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests.test_every_advertised_document_type_is_an_accepted_choice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests",
      "target": "tests/scientific-schematics/test_scripts.py#DocumentTypeTests.test_the_output_flag_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests",
      "target": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests.test_the_bundled_example_is_executable_shell",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests",
      "target": "tests/scientific-schematics/test_scripts.py#ExampleScriptTests.test_the_example_only_invokes_scripts_the_skill_ships",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ApiKeyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#child_environment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "base64",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "generate_schematic",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "generate_slide_image",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "generate_slide_image_ai",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "pdf_to_images",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "pptx",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "pptx.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "slides_to_pdf",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py",
      "target": "validate_presentation",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_a_missing_attachment_is_named_before_any_request",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_a_missing_credential_is_reported_without_a_traceback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_more_iterations_than_allowed_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_zero_iterations_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "target": "tests/scientific-slides/test_scripts.py#child_environment",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_a_missing_attachment_is_named_before_any_request",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_a_missing_credential_is_reported_without_a_traceback",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_more_iterations_than_allowed_is_refused",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.test_zero_iterations_is_refused",
      "target": "tests/scientific-slides/test_scripts.py#AiCliValidationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ApiKeyTests",
      "target": "tests/scientific-slides/test_scripts.py#ApiKeyTests.test_a_generator_without_a_credential_refuses_to_start",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ApiKeyTests",
      "target": "tests/scientific-slides/test_scripts.py#ApiKeyTests.test_the_environment_variable_is_accepted_in_place_of_an_argument",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ApiKeyTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests",
      "target": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests.test_an_unknown_extension_falls_back_to_png",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests",
      "target": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests.test_the_encoded_payload_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests",
      "target": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests.test_the_mime_type_follows_the_file_extension",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#AttachmentEncodingTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "target": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_a_full_slide_prompt_asks_for_slide_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "target": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_a_visual_only_prompt_does_not_ask_for_slide_furniture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "target": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_the_improved_prompt_carries_the_critique_and_the_right_guidelines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "target": "tests/scientific-slides/test_scripts.py#GuidelineTests.test_the_presentation_threshold_is_lower_than_a_paper_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#GuidelineTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_directory_yields_every_supported_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_glob_pattern_is_expanded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_non_image_file_is_skipped_with_a_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_path_that_matches_nothing_yields_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_files_are_ordered_by_name_so_numbering_decides_the_deck",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_the_same_file_named_twice_appears_once",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_directory_yields_every_supported_image",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_glob_pattern_is_expanded",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_a_non_image_file_is_skipped_with_a_warning",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_files_are_ordered_by_name_so_numbering_decides_the_deck",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageCollectionTests.test_the_same_file_named_twice_appears_once",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_refusal_with_no_choices_yields_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_response_with_no_image_yields_none",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_truncated_data_url_yields_none_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_embedded_in_the_content_string_is_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_a_content_block_is_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_the_images_field_is_decoded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_wrapped_base64_is_reassembled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_response_with_no_image_yields_none",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_a_truncated_data_url_yields_none_rather_than_raising",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_embedded_in_the_content_string_is_found",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_embedded_in_the_content_string_is_found",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.data_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_a_content_block_is_found",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_a_content_block_is_found",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.data_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_the_images_field_is_decoded",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_an_image_in_the_images_field_is_decoded",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.data_url",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.test_wrapped_base64_is_reassembled",
      "target": "tests/scientific-slides/test_scripts.py#ImageExtractionTests.response",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_a_missing_pdf_is_refused_before_any_conversion",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_a_page_range_converts_only_those_slides",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_every_page_becomes_one_zero_padded_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_only_jpeg_and_png_are_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_format_decides_the_encoding_not_just_the_suffix",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_output_directory_is_created_on_demand",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_requested_dpi_sets_the_pixel_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_a_page_range_converts_only_those_slides",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_every_page_becomes_one_zero_padded_image",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_format_decides_the_encoding_not_just_the_suffix",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_output_directory_is_created_on_demand",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.test_the_requested_dpi_sets_the_pixel_size",
      "target": "tests/scientific-slides/test_scripts.py#PdfToImagesTests.convert",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.reviewed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_failed_generation_writes_no_file_and_reports_failure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_good_first_image_stops_early_and_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_weak_image_is_regenerated_from_an_improved_prompt",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_iteration_ceiling_still_keeps_the_last_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_mode_and_threshold_are_recorded_in_the_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_failed_generation_writes_no_file_and_reports_failure",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_good_first_image_stops_early_and_is_written",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_good_first_image_stops_early_and_is_written",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.reviewed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_weak_image_is_regenerated_from_an_improved_prompt",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_a_weak_image_is_regenerated_from_an_improved_prompt",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.reviewed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_iteration_ceiling_still_keeps_the_last_image",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_iteration_ceiling_still_keeps_the_last_image",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.reviewed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_mode_and_threshold_are_recorded_in_the_results",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.generate",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.test_the_mode_and_threshold_are_recorded_in_the_results",
      "target": "tests/scientific-slides/test_scripts.py#RefinementLoopTests.reviewed",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_failed_review_is_not_treated_as_a_bad_image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_loosely_worded_score_is_still_read",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_reasoning_only_reply_is_used_as_the_critique",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_review_returned_as_content_blocks_is_flattened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_score_at_the_threshold_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_score_below_the_threshold_asks_for_another_round",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_an_explicit_verdict_overrides_a_high_score",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_an_unscored_review_does_not_block_the_pipeline",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_loosely_worded_score_is_still_read",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_reasoning_only_reply_is_used_as_the_critique",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_review_returned_as_content_blocks_is_flattened",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_score_at_the_threshold_is_accepted",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_a_score_below_the_threshold_asks_for_another_round",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_an_explicit_verdict_overrides_a_high_score",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.test_an_unscored_review_does_not_block_the_pipeline",
      "target": "tests/scientific-slides/test_scripts.py#ReviewDecisionTests.review",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_a_deck_inside_the_range_is_reported_as_fine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_an_untabulated_duration_borrows_the_nearest_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_every_duration_brackets_its_recommendation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_boundaries_themselves_are_acceptable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_budget_grows_with_the_talk_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_ranges_overlap_the_shipped_timing_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_recommendations_track_one_slide_per_minute",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_too_few_slides_warns_about_the_empty_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_too_many_slides_warns_about_running_over",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_a_deck_inside_the_range_is_reported_as_fine",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_an_untabulated_duration_borrows_the_nearest_one",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_the_boundaries_themselves_are_acceptable",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_too_few_slides_warns_about_the_empty_time",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.test_too_many_slides_warns_about_running_over",
      "target": "tests/scientific-slides/test_scripts.py#SlideBudgetTests.counted",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.data_url",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "target": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideGeneratorTestCase",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_no_key_means_no_key_variable_rather_than_an_empty_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_only_allowlisted_variables_reach_the_subprocess",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_the_allowlist_carries_no_credential_variables",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_the_allowlist_matches_the_schematic_wrapper_in_this_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageEnvironmentTests.test_the_api_key_is_injected_under_the_expected_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_each_attachment_is_forwarded_in_order",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_credential_never_appears_on_the_command_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_generator_script_beside_it_is_what_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_iteration_ceiling_is_enforced_by_the_wrapper",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_visual_only_mode_is_forwarded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_without_a_key_nothing_is_spawned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_each_attachment_is_forwarded_in_order",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_credential_never_appears_on_the_command_line",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_generator_script_beside_it_is_what_runs",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_iteration_ceiling_is_enforced_by_the_wrapper",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.test_the_visual_only_mode_is_forwarded",
      "target": "tests/scientific-slides/test_scripts.py#SlideImageInvocationTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.page_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_greyscale_slide_is_converted_rather_than_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_transparent_slide_is_flattened_onto_white",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_an_unreadable_slide_aborts_instead_of_producing_a_short_deck",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_no_images_is_refused_rather_than_writing_an_empty_pdf",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_output_directory_is_created",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_slides_become_pages_in_the_order_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_greyscale_slide_is_converted_rather_than_rejected",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_greyscale_slide_is_converted_rather_than_rejected",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_transparent_slide_is_flattened_onto_white",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_transparent_slide_is_flattened_onto_white",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.page_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_a_transparent_slide_is_flattened_onto_white",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_an_unreadable_slide_aborts_instead_of_producing_a_short_deck",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_an_unreadable_slide_aborts_instead_of_producing_a_short_deck",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_no_images_is_refused_rather_than_writing_an_empty_pdf",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_output_directory_is_created",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_output_directory_is_created",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_slides_become_pages_in_the_order_given",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.combine",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_slides_become_pages_in_the_order_given",
      "target": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.page_count",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#SlidesToPdfTests.test_the_slides_become_pages_in_the_order_given",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.image",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.sized",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_a_large_deck_warns_about_sharing_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_a_missing_file_is_the_only_thing_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_enormous_deck_is_an_issue_not_a_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_ordinary_deck_size_is_only_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_unsupported_extension_warns_but_does_not_fail",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_the_file_type_is_recognised_case_insensitively",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_a_large_deck_warns_about_sharing_it",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.sized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_a_missing_file_is_the_only_thing_reported",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_enormous_deck_is_an_issue_not_a_warning",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.sized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_ordinary_deck_size_is_only_reported",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.sized",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorFileTests.test_an_unsupported_extension_warns_but_does_not_fail",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_failed_compile_is_an_issue_pointing_at_the_log",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_successful_compile_folds_in_the_pdf_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_the_compile_never_enables_shell_escape",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_failed_compile_is_an_issue_pointing_at_the_log",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_failed_compile_is_an_issue_pointing_at_the_log",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_successful_compile_folds_in_the_pdf_report",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_successful_compile_folds_in_the_pdf_report",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_a_successful_compile_folds_in_the_pdf_report",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_the_compile_never_enables_shell_escape",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.test_the_compile_never_enables_shell_escape",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorLatexTests.source",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_corrupt_pdf_is_an_issue_rather_than_a_traceback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_four_by_three_deck_is_recognised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_widescreen_deck_reports_its_page_count_and_ratio",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_an_unusual_aspect_ratio_is_flagged_for_the_venue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_page_count_is_measured_against_the_duration",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_slide_dimensions_are_reported_in_inches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_corrupt_pdf_is_an_issue_rather_than_a_traceback",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_four_by_three_deck_is_recognised",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_four_by_three_deck_is_recognised",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_widescreen_deck_reports_its_page_count_and_ratio",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_a_widescreen_deck_reports_its_page_count_and_ratio",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_an_unusual_aspect_ratio_is_flagged_for_the_venue",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_an_unusual_aspect_ratio_is_flagged_for_the_venue",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_page_count_is_measured_against_the_duration",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_page_count_is_measured_against_the_duration",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_slide_dimensions_are_reported_in_inches",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase.deck",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPdfTests.test_the_slide_dimensions_are_reported_in_inches",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_a_readable_uncluttered_slide_raises_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_eighteen_point_itself_is_acceptable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_more_than_six_bullets_is_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_six_bullets_is_still_acceptable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_text_below_eighteen_point_is_flagged_with_the_slide_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_the_slide_geometry_is_reported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests",
      "target": "tests/scientific-slides/test_scripts.py#TemporaryDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_a_readable_uncluttered_slide_raises_nothing",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_a_readable_uncluttered_slide_raises_nothing",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_eighteen_point_itself_is_acceptable",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_eighteen_point_itself_is_acceptable",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_more_than_six_bullets_is_flagged",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_more_than_six_bullets_is_flagged",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_six_bullets_is_still_acceptable",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_six_bullets_is_still_acceptable",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_text_below_eighteen_point_is_flagged_with_the_slide_number",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_text_below_eighteen_point_is_flagged_with_the_slide_number",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_the_slide_geometry_is_reported",
      "target": "tests/scientific-slides/test_scripts.py#validated",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.test_the_slide_geometry_is_reported",
      "target": "tests/scientific-slides/test_scripts.py#ValidatorPptxTests.build",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tests/scientific-visualization/test_scripts.py#ExportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tests/scientific-visualization/test_scripts.py#PaletteTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tests/scientific-visualization/test_scripts.py#StyleTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "color_palettes",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "export_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "figure_export",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "image_metadata",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "importlib.util",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "palette_audit",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "PIL",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "style_presets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests",
      "target": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests.test_input_and_output_symlinks_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests",
      "target": "tests/scientific-visualization/test_scripts.py#CommonSafetyTests.test_json_output_is_private_and_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#ExportTests",
      "target": "tests/scientific-visualization/test_scripts.py#ExportTests.test_atomic_export_and_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#ExportTests",
      "target": "tests/scientific-visualization/test_scripts.py#ExportTests.test_profile_export_requires_explicit_confirmation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "target": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_effective_dpi_tolerates_binary_float_roundoff",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "target": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_eps_bounding_box",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "target": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_raster_dimensions_dpi_mode_and_screen",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "target": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_svg_dimensions_and_external_resource_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#MetadataTests",
      "target": "tests/scientific-visualization/test_scripts.py#MetadataTests.test_svg_dtd_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PaletteTests",
      "target": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_grayscale_screen_is_explicitly_heuristic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PaletteTests",
      "target": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_on_white_subset_meets_graphical_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PaletteTests",
      "target": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_tol_palettes_match_current_issue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PaletteTests",
      "target": "tests/scientific-visualization/test_scripts.py#PaletteTests.test_wcag_contrast_reference_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests",
      "target": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_acs_profile_does_not_invent_formats_or_dpi",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests",
      "target": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_phase_mismatch_is_not_silenced",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests",
      "target": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_plos_synthetic_tiff_matches_recorded_properties",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests",
      "target": "tests/scientific-visualization/test_scripts.py#PublisherProfileTests.test_profiles_capture_phase_and_current_dimensions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#StyleTests",
      "target": "tests/scientific-visualization/test_scripts.py#StyleTests.test_all_mplstyle_assets_parse_when_matplotlib_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#StyleTests",
      "target": "tests/scientific-visualization/test_scripts.py#StyleTests.test_generated_style_parses_when_matplotlib_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-visualization/test_scripts.py#StyleTests",
      "target": "tests/scientific-visualization/test_scripts.py#StyleTests.test_plain_style_has_dimension_preserving_export_default",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/synthetic_manuscript.py",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_authorship_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/synthetic_manuscript.py",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_claim_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/synthetic_manuscript.py",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_consistency_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/synthetic_manuscript.py",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_manuscript_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/synthetic_manuscript.py",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_source_manifest",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/synthetic_manuscript.py",
      "target": "hashlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "audit_claims",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "check_consistency",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "check_references",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "lint_manuscript",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "scaffold_manuscript",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "select_reporting_guidelines",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "synthetic_manuscript",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "validate_authorship",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py",
      "target": "validate_manifest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_authorship_validator_requires_human_accountability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_accepts_verified_mappings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_flags_untagged_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_consistency_checks_methods_results_and_numbers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_json_reader_rejects_nonfinite_values",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_lint_flags_placeholders_without_echoing_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_reference_checker_is_offline_and_detects_duplicate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_reporting_selector_and_non_scoring_coverage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_scaffold_is_local_and_not_submission_ready",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_source_template_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.test_valid_manuscript_and_source_manifests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.write_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_authorship_validator_requires_human_accountability",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_authorship_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_accepts_verified_mappings",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_claim_csv",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_accepts_verified_mappings",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_source_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_claim_audit_accepts_verified_mappings",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_consistency_checks_methods_results_and_numbers",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_consistency_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_lint_flags_placeholders_without_echoing_text",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_manuscript_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_reference_checker_is_offline_and_detects_duplicate",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_source_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_reporting_selector_and_non_scoring_coverage",
      "target": "tests/scientific-writing/test_scripts.py#ScriptTests.write_json",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_valid_manuscript_and_source_manifests",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_manuscript_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_scripts.py#ScriptTests.test_valid_manuscript_and_source_manifests",
      "target": "tests/scientific-writing/synthetic_manuscript.py#valid_source_manifest",
      "relation": "calls",
      "confidence": "inferred"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "tests/scientific-writing/test_static.py#StaticTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_all_python_is_parseable",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_changes_remain_scoped_to_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_json_and_csv_assets_are_well_formed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_no_bytecode_or_cache_artifacts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_no_cross_skill_calls_or_external_image_workflows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_registry_sources_exist_in_dated_ledger",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_relative_markdown_links_resolve",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_removed_external_generation_files_stay_removed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_runtime_scripts_do_not_read_environment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_runtime_scripts_have_no_network_dynamic_eval_or_process_imports",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_skill_frontmatter_and_length",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scientific-writing/test_static.py#StaticTests",
      "target": "tests/scientific-writing/test_static.py#StaticTests.test_templates_are_explicitly_incomplete",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#EndToEndTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#mixed_frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#OptimalKTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "classification_pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "clustering_analysis",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sklearn.compose",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sklearn.datasets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sklearn.exceptions",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sklearn.linear_model",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sklearn.metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sklearn.pipeline",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests",
      "target": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests",
      "target": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests.test_kmeans_recovers_the_planted_structure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests",
      "target": "tests/scikit-learn/test_scripts.py#AlgorithmComparisonTests.test_several_algorithms_are_compared",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "target": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "target": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_pca_reduces_to_the_requested_number_of_components",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "target": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_scaling_can_be_turned_off",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "target": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_scaling_standardises_every_feature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests",
      "target": "tests/scikit-learn/test_scripts.py#ClusteringPreprocessTests.test_the_input_matrix_is_not_mutated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#EndToEndTests",
      "target": "tests/scikit-learn/test_scripts.py#EndToEndTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#EndToEndTests",
      "target": "tests/scikit-learn/test_scripts.py#EndToEndTests.test_the_classification_pipeline_trains_and_scores",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#EndToEndTests",
      "target": "tests/scikit-learn/test_scripts.py#EndToEndTests.test_the_full_clustering_analysis_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#EndToEndTests",
      "target": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#EndToEndTests.test_the_classification_pipeline_trains_and_scores",
      "target": "tests/scikit-learn/test_scripts.py#mixed_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#OptimalKTests",
      "target": "tests/scikit-learn/test_scripts.py#OptimalKTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#OptimalKTests",
      "target": "tests/scikit-learn/test_scripts.py#OptimalKTests.test_the_search_covers_every_k_it_was_given",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#OptimalKTests",
      "target": "tests/scikit-learn/test_scripts.py#OptimalKTests.test_three_well_separated_blobs_are_found",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#OptimalKTests",
      "target": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_a_missing_categorical_value_is_filled_rather_than_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_an_unseen_category_does_not_raise_at_transform_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_categorical_columns_become_one_hot_indicators",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_columns_outside_the_two_lists_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_it_can_be_composed_into_a_single_estimator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_it_returns_an_unfitted_column_transformer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests",
      "target": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.test_numeric_columns_are_imputed_and_standardised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#PreprocessingPipelineTests.setUp",
      "target": "tests/scikit-learn/test_scripts.py#mixed_frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase",
      "target": "tests/scikit-learn/test_scripts.py#ScratchDirectoryTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tests/scikit-survival/test_scripts.py#CommonSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tests/scikit-survival/test_scripts.py#CompetingRiskTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tests/scikit-survival/test_scripts.py#MetricTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tests/scikit-survival/test_scripts.py#ReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tests/scikit-survival/test_scripts.py#TrainingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tests/scikit-survival/test_scripts.py#ValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "competing_risk_cif",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "evaluate_survival_metrics",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "model_report",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "train_survival_model",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py",
      "target": "validate_survival_csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#CommonSafetyTests",
      "target": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_help_is_available_without_running_workflows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#CommonSafetyTests",
      "target": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_json_output_is_private_and_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#CommonSafetyTests",
      "target": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_local_paths_reject_urls_and_symlinks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#CommonSafetyTests",
      "target": "tests/scikit-survival/test_scripts.py#CommonSafetyTests.test_no_shadow_modules_network_or_environment_reads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#CompetingRiskTests",
      "target": "tests/scikit-survival/test_scripts.py#CompetingRiskTests.test_cif_shapes_and_sum_identity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#CompetingRiskTests",
      "target": "tests/scikit-survival/test_scripts.py#CompetingRiskTests.test_noncontiguous_cause_codes_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#MetricTests",
      "target": "tests/scikit-survival/test_scripts.py#MetricTests.test_risk_and_survival_shapes_are_distinct",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#MetricTests",
      "target": "tests/scikit-survival/test_scripts.py#MetricTests.test_synthetic_metrics_cover_risk_and_probability_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#MetricTests",
      "target": "tests/scikit-survival/test_scripts.py#MetricTests.test_time_grid_outside_training_support_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#ReportTests",
      "target": "tests/scikit-survival/test_scripts.py#ReportTests.test_report_distinguishes_metrics_and_disclaims_utility",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#TrainingTests",
      "target": "tests/scikit-survival/test_scripts.py#TrainingTests.test_cox_pipeline_splits_before_learned_preprocessing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#TrainingTests",
      "target": "tests/scikit-survival/test_scripts.py#TrainingTests.test_explicit_schema_is_required",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#TrainingTests",
      "target": "tests/scikit-survival/test_scripts.py#TrainingTests.test_nested_tuning_runs_inside_training_data",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#ValidationTests",
      "target": "tests/scikit-survival/test_scripts.py#ValidationTests.test_outcome_feature_leakage_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#ValidationTests",
      "target": "tests/scikit-survival/test_scripts.py#ValidationTests.test_structured_output_disables_pickle",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scikit-survival/test_scripts.py#ValidationTests",
      "target": "tests/scikit-survival/test_scripts.py#ValidationTests.test_synthetic_csv_schema_converts_to_structured_array",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tests/scvelo/test_scripts.py#ModeValidationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.install",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.kwargs_for",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.names",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.saved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.stub",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder.install",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.stub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#FigureRecorder.stub",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.stub.record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.run_on",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_spliced_layer_is_refused_before_any_work",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_unspliced_layer_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_the_message_names_the_tool_that_produces_the_layers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_spliced_layer_is_refused_before_any_work",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.run_on",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_spliced_layer_is_refused_before_any_work",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_unspliced_layer_is_refused",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.run_on",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_a_missing_unspliced_layer_is_refused",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_the_message_names_the_tool_that_produces_the_layers",
      "target": "tests/scvelo/test_scripts.py#LayerRequirementTests.run_on",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#LayerRequirementTests.test_the_message_names_the_tool_that_produces_the_layers",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#ModeValidationTests",
      "target": "tests/scvelo/test_scripts.py#ModeValidationTests.test_an_unknown_mode_is_rejected_by_scvelo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#ModeValidationTests.test_an_unknown_mode_is_rejected_by_scvelo",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_a_stochastic_run_skips_the_dynamical_only_steps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_an_absent_grouping_column_skips_ranking_instead_of_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_gene_ranking_needs_the_grouping_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_dynamical_model_adds_latent_time_and_the_driver_heatmap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_dynamical_model_recovers_dynamics_before_estimating",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_output_directory_is_created_before_anything_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_summary_statistics_are_computed_over_the_confidences",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.install",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_confidence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_fits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_latent_time",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_pseudotime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.add_velocity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.record",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.record",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.setUp.record.stub",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_a_stochastic_run_skips_the_dynamical_only_steps",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_an_absent_grouping_column_skips_ranking_instead_of_failing",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_gene_ranking_needs_the_grouping_column",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_dynamical_model_adds_latent_time_and_the_driver_heatmap",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_dynamical_model_recovers_dynamics_before_estimating",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_output_directory_is_created_before_anything_is_written",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#StepOrderTests.test_the_summary_statistics_are_computed_over_the_confidences",
      "target": "tests/scvelo/test_scripts.py#StepOrderTests.analyse",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_a_non_dynamical_run_skips_the_dynamical_only_results",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_at_least_one_gene_has_a_usable_velocity",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_driver_genes_are_ranked_because_the_grouping_column_exists",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_every_figure_is_written_inside_the_output_directory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_annotated_object_round_trips_through_the_saved_h5ad",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_confidences_stay_inside_their_definition",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_downstream_per_cell_annotations_are_present",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_embedding_figures_use_the_umap_basis_and_the_grouping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_four_always_on_figures_are_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_gene_set_is_narrowed_to_the_requested_top_genes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_input_object_is_annotated_in_place",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_moments_and_velocity_layers_are_added",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests",
      "target": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_summary_reports_the_cell_and_gene_counts_it_finished_with",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests.setUpClass",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests.setUpClass",
      "target": "tests/scvelo/test_scripts.py#synthetic",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/scvelo/test_scripts.py#VelocityRunTests.test_the_embedding_figures_use_the_umap_basis_and_the_grouping",
      "target": "tests/scvelo/test_scripts.py#FigureRecorder.kwargs_for",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#ArgumentBoundTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#ExplanationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#FigureExportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#ReportFailureTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#ReportRunTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tests/shap/test_scripts.py#SingleOutputStub",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "argparse",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "sklearn.datasets",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "sklearn.ensemble",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tabular_report",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ArgumentBoundTests",
      "target": "tests/shap/test_scripts.py#ArgumentBoundTests.test_a_positive_integer_is_accepted_and_zero_is_not",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ArgumentBoundTests",
      "target": "tests/shap/test_scripts.py#ArgumentBoundTests.test_tolerances_must_be_strictly_positive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ArgumentBoundTests",
      "target": "tests/shap/test_scripts.py#ArgumentBoundTests.test_zero_is_a_valid_class_index_but_a_negative_one_is_not",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ExplanationTests",
      "target": "tests/shap/test_scripts.py#ExplanationTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ExplanationTests",
      "target": "tests/shap/test_scripts.py#ExplanationTests.test_selecting_a_class_takes_that_slice_and_no_other",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ExplanationTests",
      "target": "tests/shap/test_scripts.py#ExplanationTests.test_shap_values_reconstruct_the_predicted_probability",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ExplanationTests",
      "target": "tests/shap/test_scripts.py#ExplanationTests.test_the_base_value_is_the_background_mean_prediction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ExplanationTests",
      "target": "tests/shap/test_scripts.py#ExplanationTests.test_the_explainer_produces_one_slice_per_class",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ExplanationTests",
      "target": "tests/shap/test_scripts.py#ExplanationTests.test_the_two_class_slices_are_mirror_images",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#FigureExportTests",
      "target": "tests/shap/test_scripts.py#FigureExportTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#FigureExportTests",
      "target": "tests/shap/test_scripts.py#FigureExportTests.test_a_missing_axis_falls_back_to_the_current_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#FigureExportTests",
      "target": "tests/shap/test_scripts.py#FigureExportTests.test_saving_an_axis_writes_a_file_and_leaves_no_open_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_class_index_past_the_last_output_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_named_output_keeps_its_name",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_two_dimensional_explanation_is_returned_unchanged_for_class_zero",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_two_dimensional_explanation_rejects_any_other_class",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests.test_an_unexpected_rank_names_the_shape_it_got",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests",
      "target": "tests/shap/test_scripts.py#OutputSelectionTests.test_output_names_fall_back_to_a_positional_label",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_class_index_past_the_last_output_is_rejected",
      "target": "tests/shap/test_scripts.py#SingleOutputStub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_two_dimensional_explanation_is_returned_unchanged_for_class_zero",
      "target": "tests/shap/test_scripts.py#SingleOutputStub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests.test_a_two_dimensional_explanation_rejects_any_other_class",
      "target": "tests/shap/test_scripts.py#SingleOutputStub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#OutputSelectionTests.test_an_unexpected_rank_names_the_shape_it_got",
      "target": "tests/shap/test_scripts.py#SingleOutputStub",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportFailureTests",
      "target": "tests/shap/test_scripts.py#ReportFailureTests.test_a_class_index_outside_the_model_is_rejected_before_any_work",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportFailureTests",
      "target": "tests/shap/test_scripts.py#ReportFailureTests.test_a_negative_background_size_is_refused_by_the_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.tearDownClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_every_documented_artefact_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_the_additivity_error_is_inside_the_tolerance_it_reports",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_the_first_row_breakdown_is_ordered_by_contribution_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_the_importance_table_is_ranked_by_mean_absolute_shap",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_the_metadata_records_the_run_it_actually_did",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_the_reconstruction_csv_adds_up_row_by_row",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#ReportRunTests",
      "target": "tests/shap/test_scripts.py#ReportRunTests.test_the_run_prints_its_metadata_and_where_it_wrote",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/shap/test_scripts.py#SingleOutputStub",
      "target": "tests/shap/test_scripts.py#SingleOutputStub.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tests/simpy/test_scripts.py#MonitoringTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tests/simpy/test_scripts.py#ReplicationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tests/simpy/test_scripts.py#SafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tests/simpy/test_scripts.py#ScenarioTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tests/simpy/test_scripts.py#ValidatorTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "basic_simulation_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "bounded_queue_scenario",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "event_trace_summary",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "replication_runner",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "resource_monitor",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "simpy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py",
      "target": "validate_simulation_config",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_numeric_until_excludes_boundary_and_event_until_returns_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_priority_resource_orders_queued_requests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants.exercise",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_container_and_store_variants.exercise",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage.high_priority",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage.low_priority",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage.high_priority",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_preemption_interrupt_cause_identifies_request_and_usage.low_priority",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_priority_resource_orders_queued_requests",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_priority_resource_orders_queued_requests.user",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping.coordinator",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping.worker",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping.coordinator",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_process_return_and_condition_mapping.worker",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic.process",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic",
      "target": "tests/simpy/test_scripts.py#CoreSemanticsTests.test_same_time_events_are_fifo_deterministic.process",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_resource_monitor_uses_time_weighting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_trace_round_trip_and_order_summary",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded.holder",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded.impatient",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded.holder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_pending_request_cancellation_is_recorded.impatient",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#MonitoringTests.test_resource_monitor_uses_time_weighting",
      "target": "tests/simpy/test_scripts.py#MonitoringTests.test_resource_monitor_uses_time_weighting.user",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ReplicationTests",
      "target": "tests/simpy/test_scripts.py#ReplicationTests.test_replication_config_requires_multiple_bounded_runs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ReplicationTests",
      "target": "tests/simpy/test_scripts.py#ReplicationTests.test_small_replication_experiment_has_replication_level_ci",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ReplicationTests",
      "target": "tests/simpy/test_scripts.py#ReplicationTests.test_student_t_interval_and_quantile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#SafetyTests",
      "target": "tests/simpy/test_scripts.py#SafetyTests.test_every_cli_has_side_effect_free_help",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#SafetyTests",
      "target": "tests/simpy/test_scripts.py#SafetyTests.test_every_script_help_succeeds_without_site_packages",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#SafetyTests",
      "target": "tests/simpy/test_scripts.py#SafetyTests.test_local_json_rejects_urls_symlinks_duplicates_and_nan",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#SafetyTests",
      "target": "tests/simpy/test_scripts.py#SafetyTests.test_private_output_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#SafetyTests",
      "target": "tests/simpy/test_scripts.py#SafetyTests.test_scripts_parse_and_do_not_use_dangerous_features",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#SafetyTests",
      "target": "tests/simpy/test_scripts.py#SafetyTests.test_simulation_clis_report_missing_dependency_without_traceback",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ScenarioTests",
      "target": "tests/simpy/test_scripts.py#ScenarioTests.test_event_limit_stops_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ScenarioTests",
      "target": "tests/simpy/test_scripts.py#ScenarioTests.test_queue_run_is_reproducible_and_bounded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ScenarioTests",
      "target": "tests/simpy/test_scripts.py#ScenarioTests.test_unknown_config_and_invalid_modes_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/simpy/test_scripts.py#ValidatorTests",
      "target": "tests/simpy/test_scripts.py#ValidatorTests.test_validator_normalizes_both_schemas_without_running",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#RegistrationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#RenderTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#train_tiny_agent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tests/stable-baselines3/test_scripts.py#TrainingPipelineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "custom_env_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "evaluate_agent",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "stable_baselines3",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "stable_baselines3.common.env_checker",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "textwrap",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "train_rl_agent",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py",
      "target": "warnings",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_template_passes_sb3s_checker_without_warnings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_validate_helper_runs_the_checker_on_the_template",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space.WrongDtypeEnv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space.WrongDtypeEnv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space.WrongDtypeEnv",
      "target": "tests/stable-baselines3/test_scripts.py#EnvCheckerTests.test_the_checker_rejects_an_observation_outside_the_declared_space.WrongDtypeEnv._get_obs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.setUpClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.tearDownClass",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_a_missing_normalisation_file_is_ignored_rather_than_fatal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_a_single_episode_has_no_spread",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_comparing_models_reports_one_row_per_path",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_evaluation_returns_a_mean_and_a_non_negative_spread",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_loading_a_model_that_does_not_exist_fails_loudly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests",
      "target": "tests/stable-baselines3/test_scripts.py#EvaluationTests.test_the_score_is_an_average_of_whole_cartpole_episodes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#EvaluationTests.setUpClass",
      "target": "tests/stable-baselines3/test_scripts.py#train_tiny_agent",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RegistrationTests",
      "target": "tests/stable-baselines3/test_scripts.py#RegistrationTests.test_an_episode_that_never_reaches_the_goal_truncates_at_one_hundred",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RegistrationTests",
      "target": "tests/stable-baselines3/test_scripts.py#RegistrationTests.test_gym_make_applies_the_hundred_step_time_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RegistrationTests",
      "target": "tests/stable-baselines3/test_scripts.py#RegistrationTests.test_the_environment_is_registered_under_its_documented_id",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RenderTests",
      "target": "tests/stable-baselines3/test_scripts.py#RenderTests.test_human_rendering_draws_the_agent_and_the_goal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RenderTests",
      "target": "tests/stable-baselines3/test_scripts.py#RenderTests.test_rendering_is_a_no_op_when_no_mode_was_requested",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RenderTests",
      "target": "tests/stable-baselines3/test_scripts.py#RenderTests.test_rgb_rendering_returns_a_fifty_pixel_cell_canvas",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RenderTests.test_human_rendering_draws_the_agent_and_the_goal",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RenderTests.test_rendering_is_a_no_op_when_no_mode_was_requested",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#RenderTests.test_rgb_rendering_returns_a_fifty_pixel_cell_canvas",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "target": "tests/stable-baselines3/test_scripts.py#ResetTests.test_different_seeds_give_different_layouts",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "target": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_goal_never_starts_on_the_agent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "target": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_info_distance_is_the_euclidean_distance_to_the_goal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "target": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_observation_is_the_agent_position_and_lies_in_the_space",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#ResetTests",
      "target": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_same_seed_gives_the_same_starting_layout",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#ResetTests.test_the_info_distance_is_the_euclidean_distance_to_the_goal",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests",
      "target": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests.test_the_action_space_is_the_four_documented_moves",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests",
      "target": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests.test_the_metadata_declares_the_render_modes_it_implements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests",
      "target": "tests/stable-baselines3/test_scripts.py#SpaceDefinitionTests.test_the_observation_box_spans_the_grid_and_is_float32",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests.test_each_action_moves_one_cell_in_its_documented_direction",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests.test_moves_are_clipped_at_every_edge",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests.test_not_reaching_the_goal_costs_a_tenth_of_the_distance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests.test_reaching_the_goal_pays_one_and_terminates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests.test_the_raw_environment_never_truncates_on_its_own",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests",
      "target": "tests/stable-baselines3/test_scripts.py#StepTests.test_the_step_penalty_shrinks_as_the_agent_closes_in",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests.test_each_action_moves_one_cell_in_its_documented_direction",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests.test_moves_are_clipped_at_every_edge",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests.test_not_reaching_the_goal_costs_a_tenth_of_the_distance",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests.test_reaching_the_goal_pays_one_and_terminates",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests.test_the_raw_environment_never_truncates_on_its_own",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#StepTests.test_the_step_penalty_shrinks_as_the_agent_closes_in",
      "target": "tests/stable-baselines3/test_scripts.py#placed_env",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/stable-baselines3/test_scripts.py#TrainingPipelineTests",
      "target": "tests/stable-baselines3/test_scripts.py#TrainingPipelineTests.test_the_template_trains_and_saves_a_loadable_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "tests/statistical-analysis/test_scripts.py#ComprehensiveCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "tests/statistical-analysis/test_scripts.py#LinearityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "assumption_checks",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#ComprehensiveCheckTests",
      "target": "tests/statistical-analysis/test_scripts.py#ComprehensiveCheckTests.test_the_combined_check_reports_on_every_assumption",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#LinearityTests",
      "target": "tests/statistical-analysis/test_scripts.py#LinearityTests.test_a_quadratic_relationship_is_distinguished_from_a_linear_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#LinearityTests",
      "target": "tests/statistical-analysis/test_scripts.py#LinearityTests.test_a_straight_line_relationship_is_reported_as_linear",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_a_lognormal_sample_is_reported_as_non_normal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_a_normal_sample_is_reported_as_normal",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_lists_and_series_are_accepted_as_well_as_arrays",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_the_result_carries_the_test_name_and_a_recommendation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#NormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#NormalityTests.test_the_verdict_follows_the_supplied_alpha",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "target": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_a_higher_threshold_flags_fewer_points",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "target": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_clean_data_yields_no_extreme_outliers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "target": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_the_iqr_method_finds_a_planted_extreme_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "target": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_the_reported_percentage_matches_the_count",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#OutlierTests",
      "target": "tests/statistical-analysis/test_scripts.py#OutlierTests.test_the_zscore_method_finds_the_same_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests.test_each_group_gets_its_own_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests",
      "target": "tests/statistical-analysis/test_scripts.py#PerGroupNormalityTests.test_the_result_is_a_frame_with_one_row_and_an_n_per_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#VarianceTests",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests._frame",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#VarianceTests",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_a_tenfold_spread_difference_fails_levene",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#VarianceTests",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_equal_variances_pass_levene",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#VarianceTests",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_more_than_two_groups_are_supported",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_a_tenfold_spread_difference_fails_levene",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests._frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-analysis/test_scripts.py#VarianceTests.test_equal_variances_pass_levene",
      "target": "tests/statistical-analysis/test_scripts.py#VarianceTests._frame",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#MdeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#PowerCurveTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#PowerTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#RegressionSolverTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "matplotlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "simulate_power",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#MdeTests",
      "target": "tests/statistical-power/test_scripts.py#MdeTests.test_a_larger_sample_detects_a_smaller_effect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#MdeTests",
      "target": "tests/statistical-power/test_scripts.py#MdeTests.test_correlation_mde_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#MdeTests",
      "target": "tests/statistical-power/test_scripts.py#MdeTests.test_regression_mde_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#MdeTests",
      "target": "tests/statistical-power/test_scripts.py#MdeTests.test_the_mde_at_a_solved_n_recovers_the_original_effect",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerCurveTests",
      "target": "tests/statistical-power/test_scripts.py#PowerCurveTests.test_per_group_tests_iterate_the_per_group_n",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerCurveTests",
      "target": "tests/statistical-power/test_scripts.py#PowerCurveTests.test_the_curve_rises_with_sample_size_and_is_saved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerTests",
      "target": "tests/statistical-power/test_scripts.py#PowerTests.test_a_zero_effect_has_power_equal_to_alpha",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerTests",
      "target": "tests/statistical-power/test_scripts.py#PowerTests.test_correlation_power_round_trips_with_its_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerTests",
      "target": "tests/statistical-power/test_scripts.py#PowerTests.test_power_at_the_solved_sample_size_reaches_the_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerTests",
      "target": "tests/statistical-power/test_scripts.py#PowerTests.test_power_is_bounded_and_monotone_in_n",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerTests",
      "target": "tests/statistical-power/test_scripts.py#PowerTests.test_regression_power_is_zero_when_the_model_has_no_residual_df",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#PowerTests",
      "target": "tests/statistical-power/test_scripts.py#PowerTests.test_two_proportions_power_round_trips",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RegressionSolverTests",
      "target": "tests/statistical-power/test_scripts.py#RegressionSolverTests.test_an_undetectably_small_effect_does_not_loop_forever",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RegressionSolverTests",
      "target": "tests/statistical-power/test_scripts.py#RegressionSolverTests.test_the_sample_size_search_stops_at_the_first_adequate_n",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "target": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_an_unknown_test_is_named_in_the_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "target": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_each_test_names_the_parameter_it_is_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "target": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_mde_requires_a_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "target": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_power_requires_a_sample_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#RequiredArgumentTests",
      "target": "tests/statistical-power/test_scripts.py#RequiredArgumentTests.test_test_names_are_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_a_one_sided_test_needs_fewer_subjects",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_an_unequal_allocation_ratio_changes_the_first_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_anova_returns_total_n_not_per_group",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_correlation_matches_the_published_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_higher_power_needs_a_larger_sample",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_round_up_is_the_default_because_a_fraction_of_a_subject_is_not_a_subject",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_smaller_effects_need_larger_samples",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SampleSizeTests",
      "target": "tests/statistical-power/test_scripts.py#SampleSizeTests.test_two_sample_t_test_matches_cohens_canonical_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_a_null_effect_simulates_to_the_alpha_level",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_a_zero_success_run_still_has_a_positive_upper_bound",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_simulated_power_tracks_the_analytic_answer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_simulation_reproduces_from_its_seed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_the_estimate_reports_its_own_uncertainty",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_the_sample_size_search_returns_an_n_that_meets_the_target",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_the_worked_examples_all_produce_a_usable_estimate",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/statistical-power/test_scripts.py#SimulationTests",
      "target": "tests/statistical-power/test_scripts.py#SimulationTests.test_wilson_intervals_bracket_the_estimate_and_stay_in_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#report_with_gpu",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tests/timesfm-forecasting/test_scripts.py#usage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "check_system",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "contextlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "forecast_csv",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "io",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "types",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.cpu_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.mps_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_an_unparseable_vram_figure_falls_back_to_a_safe_batch",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_cpu_only_hosts_are_sized_by_system_memory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_cpu_recommendations_never_decrease_as_memory_grows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_each_tier_boundary_is_inclusive_from_below",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_every_recommendation_is_a_usable_batch_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_the_recommendation_never_decreases_as_vram_grows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_the_vram_tiers_are_the_documented_ladder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_unified_memory_hosts_are_sized_by_system_memory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.cpu_batch",
      "target": "tests/timesfm-forecasting/test_scripts.py#report_with_gpu",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "target": "tests/timesfm-forecasting/test_scripts.py#report_with_gpu",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.mps_batch",
      "target": "tests/timesfm-forecasting/test_scripts.py#report_with_gpu",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_an_unparseable_vram_figure_falls_back_to_a_safe_batch",
      "target": "tests/timesfm-forecasting/test_scripts.py#report_with_gpu",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_cpu_only_hosts_are_sized_by_system_memory",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.cpu_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_cpu_recommendations_never_decrease_as_memory_grows",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.cpu_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_each_tier_boundary_is_inclusive_from_below",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_every_recommendation_is_a_usable_batch_size",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_the_recommendation_never_decreases_as_vram_grows",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_the_vram_tiers_are_the_documented_ladder",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.gpu_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.test_unified_memory_hosts_are_sized_by_system_memory",
      "target": "tests/timesfm-forecasting/test_scripts.py#BatchSizeTests.mps_batch",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests.test_each_status_gets_its_own_icon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CheckResultFormattingTests.test_the_rendered_line_carries_the_name_value_and_status",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.invoke",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_an_unknown_model_is_rejected_by_the_parser",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_the_human_report_names_every_check_and_a_verdict",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_the_json_output_parses_and_names_the_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_an_unknown_model_is_rejected_by_the_parser",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_the_human_report_names_every_check_and_a_verdict",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.test_the_json_output_parses_and_names_the_model",
      "target": "tests/timesfm-forecasting/test_scripts.py#CommandLineTests.invoke",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_column_that_does_not_exist_is_dropped_with_a_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_csv_with_nothing_numeric_stops_the_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_missing_date_column_is_reported_and_forgotten",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_string_column_is_never_forecast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_an_explicit_column_list_is_honoured",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_naming_no_columns_at_all_falls_back_to_autodetection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_numeric_columns_are_detected_and_the_date_column_excluded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_column_that_does_not_exist_is_dropped_with_a_warning",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_column_that_does_not_exist_is_dropped_with_a_warning",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_csv_with_nothing_numeric_stops_the_run",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_missing_date_column_is_reported_and_forgotten",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_missing_date_column_is_reported_and_forgotten",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_string_column_is_never_forecast",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_a_string_column_is_never_forecast",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_an_explicit_column_list_is_honoured",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_an_explicit_column_list_is_honoured",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_naming_no_columns_at_all_falls_back_to_autodetection",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_naming_no_columns_at_all_falls_back_to_autodetection",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_numeric_columns_are_detected_and_the_date_column_excluded",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.load",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.test_numeric_columns_are_detected_and_the_date_column_excluded",
      "target": "tests/timesfm-forecasting/test_scripts.py#CsvLoadingTests.write",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_an_absent_cache_directory_falls_back_to_the_home_volume",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_exactly_enough_space_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_less_free_space_than_the_weights_need_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_the_cache_directory_is_where_the_space_is_measured",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_an_absent_cache_directory_falls_back_to_the_home_volume",
      "target": "tests/timesfm-forecasting/test_scripts.py#usage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_exactly_enough_space_passes",
      "target": "tests/timesfm-forecasting/test_scripts.py#usage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_less_free_space_than_the_weights_need_fails",
      "target": "tests/timesfm-forecasting/test_scripts.py#usage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#DiskCheckTests.test_the_cache_directory_is_where_the_space_is_measured",
      "target": "tests/timesfm-forecasting/test_scripts.py#usage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_each_series_is_forecast_and_keyed_by_its_column",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_gaps_are_dropped_before_the_series_reaches_the_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_the_bands_are_ordered_from_low_to_high",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.test_the_quantile_columns_map_to_the_documented_percentiles",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel",
      "target": "tests/timesfm-forecasting/test_scripts.py#ForecastAssemblyTests.RecordingModel.forecast",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_a_cuda_device_is_reported_with_its_vram",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_apple_silicon_passes_without_a_vram_figure",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_no_accelerator_warns_because_cpu_still_works",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_torch_missing_entirely_warns_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.torch_module",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_a_cuda_device_is_reported_with_its_vram",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.torch_module",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_apple_silicon_passes_without_a_vram_figure",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.torch_module",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.test_no_accelerator_warns_because_cpu_still_works",
      "target": "tests/timesfm-forecasting/test_scripts.py#GpuCheckTests.torch_module",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_each_profile_points_at_its_published_hugging_face_repo",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_no_profile_recommends_less_than_it_requires",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_the_five_hundred_million_model_asks_for_the_most_memory",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ModelProfileTests.test_the_three_documented_checkpoints_are_offered",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_a_daily_history_continues_past_its_last_observation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_an_irregular_history_falls_back_to_step_numbers",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_every_band_column_survives_the_round_trip",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_one_row_per_series_and_step",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_the_json_output_keeps_the_series_names_and_bands",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_without_dates_only_the_step_index_is_written",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_a_daily_history_continues_past_its_last_observation",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_an_irregular_history_falls_back_to_step_numbers",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_every_band_column_survives_the_round_trip",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_one_row_per_series_and_step",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.test_without_dates_only_the_step_index_is_written",
      "target": "tests/timesfm-forecasting/test_scripts.py#OutputWritingTests.write_csv",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests.test_a_missing_package_warns_instead_of_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests.test_a_package_without_a_version_is_still_installed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PackageCheckTests.test_an_installed_package_reports_its_version",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests.test_a_failing_report_stops_the_run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PreflightHandoffTests.test_a_passing_report_hands_over_the_recommended_batch_size",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.interpreter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_a_newer_interpreter_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_the_documented_minimum_of_three_ten_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_three_nine_fails_and_states_the_requirement",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_a_newer_interpreter_passes",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.interpreter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_the_documented_minimum_of_three_ten_passes",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.interpreter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.test_three_nine_fails_and_states_the_requirement",
      "target": "tests/timesfm-forecasting/test_scripts.py#PythonCheckTests.interpreter",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_below_the_minimum_fails_and_explains_the_consequence",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_exactly_the_minimum_warns_rather_than_failing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_exactly_the_recommendation_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_just_under_the_recommendation_still_warns",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_the_reported_value_carries_both_totals",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_the_smaller_model_passes_where_the_larger_one_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_below_the_minimum_fails_and_explains_the_consequence",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_exactly_the_minimum_warns_rather_than_failing",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_exactly_the_recommendation_passes",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_just_under_the_recommendation_still_warns",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.test_the_reported_value_carries_both_totals",
      "target": "tests/timesfm-forecasting/test_scripts.py#RamCheckTests.check",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_cuda_host_is_reported_in_gpu_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_full_disk_fails_the_whole_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_healthy_cpu_host_passes_in_cpu_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_an_apple_silicon_host_is_reported_in_mps_mode",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_an_unknown_model_version_is_not_silently_substituted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_every_documented_resource_is_checked",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_the_json_report_is_serialisable_and_keeps_its_keys",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_too_little_memory_fails_the_whole_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_warnings_alone_do_not_fail_the_report",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "target": "tests/timesfm-forecasting/test_scripts.py#usage",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_cuda_host_is_reported_in_gpu_mode",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_full_disk_fails_the_whole_report",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_a_healthy_cpu_host_passes_in_cpu_mode",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_an_apple_silicon_host_is_reported_in_mps_mode",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_every_documented_resource_is_checked",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_the_json_report_is_serialisable_and_keeps_its_keys",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_too_little_memory_fails_the_whole_report",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/timesfm-forecasting/test_scripts.py#ReportTests.test_warnings_alone_do_not_fail_the_report",
      "target": "tests/timesfm-forecasting/test_scripts.py#ReportTests.run_checks",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tests/treatment-plans/test_scripts.py#load_asset",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tests/treatment-plans/test_scripts.py#write_package",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "check_completeness",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "check_consistency",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "copy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "generate_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "privacy_process_check",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "re",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "timeline_generator",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "validate_traceability",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py",
      "target": "validate_treatment_plan",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "target": "tests/treatment-plans/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "target": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_all_script_help_commands_are_dependency_free",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "target": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_assets_are_generic_json_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "target": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_old_specialty_and_schematic_files_are_absent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "target": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_scripts_have_no_network_dynamic_or_process_features",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StaticSafetyTests",
      "target": "tests/treatment-plans/test_scripts.py#StaticSafetyTests.test_skill_is_versioned_and_under_500_lines",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_complete_synthetic_package_passes_all_checks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_duplicate_json_key_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_excessive_json_depth_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_symlink_input_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_template_is_structurally_valid_but_incomplete",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_unknown_field_fails_closed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests",
      "target": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_url_input_path_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_complete_synthetic_package_passes_all_checks",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_complete_synthetic_package_passes_all_checks",
      "target": "tests/treatment-plans/test_scripts.py#write_package",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_template_is_structurally_valid_but_incomplete",
      "target": "tests/treatment-plans/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#StructureAndBoundsTests.test_unknown_field_fails_closed",
      "target": "tests/treatment-plans/test_scripts.py#load_asset",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_consistency_rejects_reversed_supplied_dates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_generator_creates_six_blocked_templates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_generator_requires_explicit_real_patient_acknowledgment",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_patient_derived_package_requires_qualified_privacy_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_timeline_does_not_expand_frequency_text",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_timeline_uses_only_explicit_dates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests",
      "target": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_traceability_fails_unknown_fact_without_echoing_content",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_consistency_rejects_reversed_supplied_dates",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_patient_derived_package_requires_qualified_privacy_review",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_timeline_does_not_expand_frequency_text",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_timeline_uses_only_explicit_dates",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/treatment-plans/test_scripts.py#WorkflowTests.test_traceability_fails_unknown_fact_without_echoing_content",
      "target": "tests/treatment-plans/test_scripts.py#complete_synthetic_documents",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#_available",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#_available",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "_common",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "ast",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "audit_units",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "check_plausibility",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "convert_units",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "format_result",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "json",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "math",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "propagate_uncertainty",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "scipy",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "stat",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "uncertainty_budget",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._findings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._rules",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_a_standalone_directive_covers_the_next_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_clean_source_produces_no_findings",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_constant_detection_needs_three_significant_digits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_delta_units_silence_the_offset_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_directive_comments_suppress_and_are_counted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_every_rule_fires_on_the_hazard_fixture",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_exit_code_respects_the_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_findings_are_ordered_and_carry_a_remedy",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_magnitude_after_an_explicit_conversion_is_accepted",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_significant_digit_counting",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_suppression_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_the_skills_own_scripts_are_clean",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_unparsable_source_is_reported_not_executed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests._rules",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._findings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_clean_source_produces_no_findings",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._findings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_constant_detection_needs_three_significant_digits",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._rules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_delta_units_silence_the_offset_warning",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._rules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_every_rule_fires_on_the_hazard_fixture",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._rules",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_findings_are_ordered_and_carry_a_remedy",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._findings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#AuditTests.test_magnitude_after_an_explicit_conversion_is_accepted",
      "target": "tests/uncertainty-and-units/test_scripts.py#AuditTests._findings",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests._spec",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_combined_uncertainty_and_effective_dof",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_divisors_follow_the_declared_distribution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_malformed_specs_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_relative_components_need_a_measurand_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_report_is_strict_json_and_renders_markdown",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_small_sample_warning_and_type_a_dof_warning",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_undivided_type_b_normal_component_is_flagged",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_combined_uncertainty_and_effective_dof",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests._spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_report_is_strict_json_and_renders_markdown",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests._spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_small_sample_warning_and_type_a_dof_warning",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests._spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#BudgetTests.test_undivided_type_b_normal_component_is_flagged",
      "target": "tests/uncertainty-and-units/test_scripts.py#BudgetTests._spec",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_help_is_available_without_running_workflows",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_json_output_is_private_and_refuses_overwrite",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_local_paths_reject_urls_and_symlinks",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_no_shadow_modules_network_or_environment_reads",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#CommonSafetyTests.test_skill_directory_ships_no_bytecode_or_tests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_context_is_required_and_named_in_the_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_offset_units_convert_the_value_and_the_difference_apart",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_plain_conversion_reports_a_factor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_spectroscopy_context_converts_and_propagates",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_unit_strings_are_bounded_and_screened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ConversionTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ConversionTests.test_unknown_units_raise_a_cli_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_accepts_arithmetic_and_whitelisted_functions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_reduction_uses_supplied_functions_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_rejects_everything_that_is_not_arithmetic",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#ExpressionParsingTests.test_rejects_unbounded_expressions",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_bad_arguments_are_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_carrying_uncertainty_recomputes_the_decimal_place",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_concise_notation_matches_the_plus_minus_form",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_digits_left_of_the_point_switch_to_scientific",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_exact_values_are_labelled",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_extreme_exponents_avoid_a_run_of_zeros",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_one_significant_digit_is_honoured",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_statement_names_the_coverage_factor",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_value_is_rounded_to_the_uncertainty_decimal_place",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#FormatResultTests.test_warnings_cover_the_reporting_traps",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_coverage_factor_follows_the_t_distribution",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_coverage_factor_matches_the_normal_limit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_distribution_divisors_follow_the_gum",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_infinite_degrees_of_freedom_drop_out",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_numerical_tolerance_is_half_the_last_retained_digit",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_shortest_interval_finds_the_narrowest_window",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#MetrologyMathTests.test_welch_satterthwaite_matches_the_published_formula",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_bands_are_ordered_positive_and_cited",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_catalogue_names_are_unique",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_every_expression_declares_the_inputs_it_uses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_exit_code_respects_the_threshold",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_orders_of_magnitude_has_no_infinities",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_quantity_specifications_are_screened",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityCatalogueTests.test_regimes_are_ordered_and_cover_the_line",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_dimensional_group_result_is_refused",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_near_miss_is_questionable_not_implausible",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_non_positive_magnitude_stays_strict_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_an_empty_request_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_accepts_a_value_inside_the_range",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_flags_an_order_of_magnitude_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_refuses_an_incomparable_dimension",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_constant_names_are_reserved",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_debye_length_matches_the_textbook_value",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_every_catalogue_entry_is_listed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_markdown_report_renders",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_missing_inputs_name_their_dimensionality",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_reynolds_matches_the_hand_computation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_thermal_energy_tracks_scipy_constants",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_unknown_names_list_the_alternatives",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_wrong_dimensionality_is_caught_before_any_number",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_near_miss_is_questionable_not_implausible",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_a_non_positive_magnitude_stays_strict_json",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_an_empty_request_is_rejected",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_accepts_a_value_inside_the_range",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_flags_an_order_of_magnitude_error",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_band_refuses_an_incomparable_dimension",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_constant_names_are_reserved",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_debye_length_matches_the_textbook_value",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_every_catalogue_entry_is_listed",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_markdown_report_renders",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_missing_inputs_name_their_dimensionality",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_reynolds_matches_the_hand_computation",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_thermal_energy_tracks_scipy_constants",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_unknown_names_list_the_alternatives",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests.test_wrong_dimensionality_is_caught_before_any_number",
      "target": "tests/uncertainty-and-units/test_scripts.py#PlausibilityTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests._framework",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_cli_rejects_a_model_with_missing_or_unused_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_correlated_sampling_needs_normal_inputs",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_correlation_reduces_the_uncertainty_of_a_difference",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_end_to_end_report_is_strict_json",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_impossible_correlation_matrix_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_linear_model_matches_quadrature",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_monte_carlo_agrees_with_the_framework_on_a_linear_model",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_nonlinear_model_fails_the_clause_eight_check",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_sensitivity_coefficients_are_analytic_partials",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_variable_specification_parsing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_correlation_reduces_the_uncertainty_of_a_difference",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests._framework",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_linear_model_matches_quadrature",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests._framework",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/uncertainty-and-units/test_scripts.py#PropagationTests.test_sensitivity_coefficients_are_analytic_partials",
      "target": "tests/uncertainty-and-units/test_scripts.py#PropagationTests._framework",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#FontAndMetadataTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#PresetTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#ReportTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tests/venue-templates/test_scripts.py#SearchTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "customize_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "datetime",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "query_template",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py",
      "target": "validate_format",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "target": "tests/venue-templates/test_scripts.py#CatalogueTests.test_checked_date_is_an_iso_day",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "target": "tests/venue-templates/test_scripts.py#CatalogueTests.test_every_template_declares_status_and_requirements",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "target": "tests/venue-templates/test_scripts.py#CatalogueTests.test_every_template_file_is_shipped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "target": "tests/venue-templates/test_scripts.py#CatalogueTests.test_only_the_poster_scaffold_lacks_an_official_source",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CatalogueTests",
      "target": "tests/venue-templates/test_scripts.py#CatalogueTests.test_template_path_resolves_inside_the_skill",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "target": "tests/venue-templates/test_scripts.py#CustomizeTests.test_customizing_a_shipped_template_edits_the_title_and_nothing_else",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "target": "tests/venue-templates/test_scripts.py#CustomizeTests.test_empty_values_never_blank_out_a_placeholder",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "target": "tests/venue-templates/test_scripts.py#CustomizeTests.test_find_template_searches_every_asset_category",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "target": "tests/venue-templates/test_scripts.py#CustomizeTests.test_replacement_stops_at_the_enclosing_brace",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#CustomizeTests",
      "target": "tests/venue-templates/test_scripts.py#CustomizeTests.test_template_is_copied_verbatim_when_nothing_matches",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#FontAndMetadataTests",
      "target": "tests/venue-templates/test_scripts.py#FontAndMetadataTests.test_font_result_covers_missing_binary_empty_and_populated",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#FontAndMetadataTests",
      "target": "tests/venue-templates/test_scripts.py#FontAndMetadataTests.test_metadata_result_flags_identity_fields_for_blind_review",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_content_pages_over_the_limit_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_content_pages_over_total_pages_fails",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_limit_without_a_manual_count_asks_for_one",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_missing_poppler_skips_rather_than_guesses",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_no_limit_reports_information_only",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_within_the_limit_passes",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PageCountDecisionTests",
      "target": "tests/venue-templates/test_scripts.py#PageCountDecisionTests.test_zero_content_pages_is_accepted_not_treated_as_missing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PresetTests",
      "target": "tests/venue-templates/test_scripts.py#PresetTests.test_every_preset_carries_a_limit_source_and_checked_date",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#PresetTests",
      "target": "tests/venue-templates/test_scripts.py#PresetTests.test_preset_names_are_offered_as_cli_choices",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#ReportTests",
      "target": "tests/venue-templates/test_scripts.py#ReportTests.test_report_names_an_absent_source_explicitly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#ReportTests",
      "target": "tests/venue-templates/test_scripts.py#ReportTests.test_report_records_the_source_and_every_result",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#SearchTests",
      "target": "tests/venue-templates/test_scripts.py#SearchTests.test_filters_combine_rather_than_widen",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#SearchTests",
      "target": "tests/venue-templates/test_scripts.py#SearchTests.test_type_filter_restricts_to_one_category",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#SearchTests",
      "target": "tests/venue-templates/test_scripts.py#SearchTests.test_unfiltered_search_returns_the_whole_catalogue",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#SearchTests",
      "target": "tests/venue-templates/test_scripts.py#SearchTests.test_unmatched_query_returns_nothing",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/venue-templates/test_scripts.py#SearchTests",
      "target": "tests/venue-templates/test_scripts.py#SearchTests.test_venue_and_keyword_filters_are_case_insensitive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#ConverterCliTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#QiimeConversionTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#run_script",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "pyarrow",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py",
      "target": "vocab_coverage",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#ConverterCliTests",
      "target": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_kraken_end_to_end_parquet",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#ConverterCliTests",
      "target": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_metaphlan_end_to_end_with_metadata",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#ConverterCliTests",
      "target": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_missing_input_is_an_error",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_kraken_end_to_end_parquet",
      "target": "tests/waypoint-bio/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_metaphlan_end_to_end_with_metadata",
      "target": "tests/waypoint-bio/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#ConverterCliTests.test_missing_input_is_an_error",
      "target": "tests/waypoint-bio/test_scripts.py#run_script",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests",
      "target": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests.test_counts_normalise_to_relative_abundance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests",
      "target": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests.test_lineage_rebuilt_from_indentation",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests",
      "target": "tests/waypoint-bio/test_scripts.py#KrakenConversionTests.test_subranks_and_unclassified_excluded",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests",
      "target": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_deepest_rank",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests",
      "target": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_domain_prefix_is_rewritten_to_kingdom",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests",
      "target": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_pipe_separator_becomes_semicolon",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests",
      "target": "tests/waypoint-bio/test_scripts.py#LineageNormalisationTests.test_strain_and_empty_segments_are_dropped",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests",
      "target": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests.test_genus_rank_selection",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests",
      "target": "tests/waypoint-bio/test_scripts.py#MetaphlanConversionTests.test_species_rows_only_and_renormalised",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#QiimeConversionTests",
      "target": "tests/waypoint-bio/test_scripts.py#QiimeConversionTests.test_biom_banner_taxonomy_column_and_unassigned",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "target": "tests/waypoint-bio/test_scripts.py#StubTokenizer.__init__",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "target": "tests/waypoint-bio/test_scripts.py#StubTokenizer.convert_tokens_to_ids",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "target": "tests/waypoint-bio/test_scripts.py#StubTokenizer.get_vocab",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests",
      "target": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_coverage_weights_by_abundance",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests",
      "target": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_non_waypoint_file_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests",
      "target": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_sample_with_no_known_taxa",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_coverage_weights_by_abundance",
      "target": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#VocabCoverageTests.test_sample_with_no_known_taxa",
      "target": "tests/waypoint-bio/test_scripts.py#StubTokenizer",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests",
      "target": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests.test_duplicate_lineages_are_summed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests",
      "target": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests.test_min_abundance_filter",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests",
      "target": "tests/waypoint-bio/test_scripts.py#WaypointFormatTests.test_zero_total_sample_is_rejected",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tests/xlsx/test_scripts.py#CommandLineTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tests/xlsx/test_scripts.py#MacroSetupTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "os",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "pathlib",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "pytest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "recalc",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "shutil",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "skill_contract",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "subprocess",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "sys",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "tempfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "unittest",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py",
      "target": "zipfile",
      "relation": "imports",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#CommandLineTests",
      "target": "tests/xlsx/test_scripts.py#CommandLineTests._run",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#CommandLineTests",
      "target": "tests/xlsx/test_scripts.py#CommandLineTests.test_no_arguments_prints_usage",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#CommandLineTests",
      "target": "tests/xlsx/test_scripts.py#CommandLineTests.test_the_usage_text_documents_the_force_flag",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#CommandLineTests.test_no_arguments_prints_usage",
      "target": "tests/xlsx/test_scripts.py#CommandLineTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#CommandLineTests.test_the_usage_text_documents_the_force_flag",
      "target": "tests/xlsx/test_scripts.py#CommandLineTests._run",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "target": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_missing_file_is_reported_as_no_risk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "target": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_non_workbook_file_is_reported_as_no_risk_rather_than_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "target": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_workbook_with_no_external_links_is_never_at_risk",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "target": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_workbook_without_the_external_links_part_short_circuits",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "target": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_the_check_reads_the_package_without_modifying_it",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_workbook_with_no_external_links_is_never_at_risk",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_a_workbook_without_the_external_links_part_short_circuits",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalLinkRiskTests.test_the_check_reads_the_package_without_modifying_it",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests",
      "target": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests.test_bracketed_workbook_references_match",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests",
      "target": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests.test_ordinary_local_formulas_do_not_match",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests",
      "target": "tests/xlsx/test_scripts.py#ExternalReferencePatternTests.test_the_reported_location_cap_is_positive",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#MacroSetupTests",
      "target": "tests/xlsx/test_scripts.py#MacroSetupTests.test_setup_is_idempotent",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#MacroSetupTests",
      "target": "tests/xlsx/test_scripts.py#MacroSetupTests.test_the_macro_module_is_written_into_the_profile",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#MacroSetupTests",
      "target": "tests/xlsx/test_scripts.py#MacroSetupTests.test_the_macro_xml_is_well_formed",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#MacroSetupTests",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "target": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_a_missing_soffice_is_reported_clearly",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "target": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_missing_soffice_message_names_libreoffice",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "target": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_timeout_helper_answers_without_raising",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "target": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_timestamp_helper_reports_a_files_mtime",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "relation": "extends",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_a_missing_soffice_is_reported_clearly",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#RecalcGuardTests.test_the_timestamp_helper_reports_a_files_mtime",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "relation": "calls",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.setUp",
      "relation": "contains",
      "confidence": "extracted"
    },
    {
      "source": "tests/xlsx/test_scripts.py#WorkbookTestCase",
      "target": "tests/xlsx/test_scripts.py#WorkbookTestCase.workbook",
      "relation": "contains",
      "confidence": "extracted"
    }
  ]
}
